本文简要介绍python语言中 sklearn.ensemble.StackingClassifier
的用法。
用法:
class sklearn.ensemble.StackingClassifier(estimators, final_estimator=None, *, cv=None, stack_method='auto', n_jobs=None, passthrough=False, verbose=0)
带有最终分类器的估计器堆栈。
堆叠泛化包括堆叠单个估计器的输出并使用分类器来计算最终预测。堆叠允许通过使用每个单独的估计器的输出作为最终估计器的输入来使用它们的强度。
请注意,
estimators_
适合完整的X
而final_estimator_
是使用cross_val_predict
的基本估计器的 cross-validated 预测来训练的。在用户指南中阅读更多信息。
- estimators:(str,估计器)列表
将堆叠在一起的基本估计器。列表的每个元素都定义为字符串元组(即名称)和估计器实例。可以使用
set_params
将估计器设置为 ‘drop’。- final_estimator:估计器,默认=无
将用于组合基本估计器的分类器。默认分类器是
LogisticRegression
。- cv:int,交叉验证生成器或可迭代的,默认=无
确定
cross_val_predict
中用于训练final_estimator
的交叉验证拆分策略。 cv 的可能输入是:- 无,使用默认的 5 折交叉验证,
- 整数,指定(分层)KFold 中的折叠数,
- 用作交叉验证生成器的对象,
- 一个可迭代的产量火车,测试拆分。
对于整数/无输入,如果估计器是分类器并且 y 是二进制或多类,则使用
StratifiedKFold
。在所有其他情况下,使用KFold
。这些拆分器使用shuffle=False
实例化,因此拆分在调用之间将是相同的。有关可在此处使用的各种交叉验证策略,请参阅用户指南。
注意
如果训练样本的数量足够大,那么更大数量的拆分将不会带来任何好处。确实,训练时间会增加。
cv
不用于模型评估,而是用于预测。- stack_method:{‘auto’, ‘predict_proba’,‘decision_function’, ‘predict’},默认='自动'
为每个基本估计器调用的方法。有可能:
- 如果‘auto’,它将尝试按顺序为每个估计器调用
'predict_proba'
、'decision_function'
或'predict'
。 - 否则,为
'predict_proba'
、'decision_function'
或'predict'
之一。如果估算器未实现该方法,则会引发错误。
- 如果‘auto’,它将尝试按顺序为每个估计器调用
- n_jobs:整数,默认=无
并行运行的作业数全部
estimators
fit
。None
表示 1,除非在joblib.parallel_backend
上下文中。 -1 表示使用所有处理器。有关详细信息,请参阅词汇表。- passthrough:布尔,默认=假
当为 False 时,只有估计器的预测将用作
final_estimator
的训练数据。当为 True 时,final_estimator
将根据预测以及原始训练数据进行训练。- verbose:整数,默认=0
详细程度。
- classes_:ndarray 形状 (n_classes,)
类标签。
- estimators_:估算器列表
估计器参数的元素,已安装在训练数据上。如果估算器已设置为
'drop'
,它将不会出现在estimators_
中。- named_estimators_:sklearn.utils.Bunch
按名称访问任何适合的sub-estimators 的属性。
n_features_in_
int拟合期间看到的特征数。
- feature_names_in_:ndarray 形状(
n_features_in_
,) 拟合期间看到的特征名称。仅当基础估计器在合适时公开此类属性时才定义。 .. 版本添加::1.0
- final_estimator_:估计器
给定
estimators_
的输出进行预测的分类器。- stack_method_:str 列表
每个基本估计器使用的方法。
参数:
属性:
注意:
当每个估计器使用
predict_proba
时(即大部分时间用于stack_method='auto'
或专门用于stack_method='predict_proba'
),在二进制分类问题的情况下,每个估计器预测的第一列将被丢弃。事实上,这两个特征将完全共线。参考:
- 1
Wolpert, David H. “堆叠泛化”。神经网络 5.2(1992):241-259。
例子:
>>> from sklearn.datasets import load_iris >>> from sklearn.ensemble import RandomForestClassifier >>> from sklearn.svm import LinearSVC >>> from sklearn.linear_model import LogisticRegression >>> from sklearn.preprocessing import StandardScaler >>> from sklearn.pipeline import make_pipeline >>> from sklearn.ensemble import StackingClassifier >>> X, y = load_iris(return_X_y=True) >>> estimators = [ ... ('rf', RandomForestClassifier(n_estimators=10, random_state=42)), ... ('svr', make_pipeline(StandardScaler(), ... LinearSVC(random_state=42))) ... ] >>> clf = StackingClassifier( ... estimators=estimators, final_estimator=LogisticRegression() ... ) >>> from sklearn.model_selection import train_test_split >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, stratify=y, random_state=42 ... ) >>> clf.fit(X_train, y_train).score(X_test, y_test) 0.9...
相关用法
- Python sklearn StackingRegressor用法及代码示例
- Python sklearn StandardScaler用法及代码示例
- Python sklearn StratifiedGroupKFold用法及代码示例
- Python sklearn StratifiedShuffleSplit用法及代码示例
- Python sklearn StratifiedKFold用法及代码示例
- Python sklearn ShrunkCovariance用法及代码示例
- Python sklearn SelfTrainingClassifier用法及代码示例
- Python sklearn SelectFromModel用法及代码示例
- Python sklearn SparsePCA用法及代码示例
- Python sklearn SpectralEmbedding用法及代码示例
- Python sklearn SelectFpr用法及代码示例
- Python sklearn ShuffleSplit用法及代码示例
- Python sklearn SpectralClustering用法及代码示例
- Python sklearn Sum用法及代码示例
- Python sklearn SpectralBiclustering用法及代码示例
- Python sklearn SVR用法及代码示例
- Python sklearn SelectKBest用法及代码示例
- Python sklearn SimpleImputer用法及代码示例
- Python sklearn SGDOneClassSVM用法及代码示例
- Python sklearn SVC用法及代码示例
- Python sklearn SGDRegressor用法及代码示例
- Python sklearn SequentialFeatureSelector用法及代码示例
- Python sklearn SplineTransformer用法及代码示例
- Python sklearn SelectPercentile用法及代码示例
- Python sklearn SkewedChi2Sampler用法及代码示例
注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.ensemble.StackingClassifier。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。