本文简要介绍python语言中 sklearn.ensemble.StackingRegressor
的用法。
用法:
class sklearn.ensemble.StackingRegressor(estimators, final_estimator=None, *, cv=None, n_jobs=None, passthrough=False, verbose=0)
带有最终回归器的估计器堆栈。
堆叠泛化包括堆叠单个估计器的输出并使用回归器来计算最终预测。堆叠允许通过使用每个单独的估计器的输出作为最终估计器的输入来使用它们的强度。
请注意,
estimators_
适合完整的X
而final_estimator_
是使用cross_val_predict
的基本估计器的 cross-validated 预测来训练的。在用户指南中阅读更多信息。
- estimators:(str,估计器)列表
将堆叠在一起的基本估计器。列表的每个元素都定义为字符串元组(即名称)和估计器实例。可以使用
set_params
将估计器设置为 ‘drop’。- final_estimator:估计器,默认=无
将用于组合基本估计量的回归量。默认回归器是
RidgeCV
。- cv:int,交叉验证生成器或可迭代的,默认=无
确定
cross_val_predict
中用于训练final_estimator
的交叉验证拆分策略。 cv 的可能输入是:- 无,使用默认的 5 折交叉验证,
- 整数,指定(分层)KFold 中的折叠数,
- 用作交叉验证生成器的对象,
- 一个可迭代的产量火车,测试拆分。
对于整数/无输入,如果估计器是分类器并且 y 是二进制或多类,则使用
StratifiedKFold
。在所有其他情况下,使用KFold
。这些拆分器使用shuffle=False
实例化,因此拆分在调用之间将是相同的。有关可在此处使用的各种交叉验证策略,请参阅用户指南。
注意
如果训练样本的数量足够大,那么更大数量的拆分将不会带来任何好处。确实,训练时间会增加。
cv
不用于模型评估,而是用于预测。- n_jobs:整数,默认=无
为所有
estimators
中的fit
并行运行的作业数。None
表示 1,除非在joblib.parallel_backend
上下文中。 -1 表示使用所有处理器。有关详细信息,请参阅词汇表。- passthrough:布尔,默认=假
当为 False 时,只有估计器的预测将用作
final_estimator
的训练数据。当为 True 时,final_estimator
将根据预测以及原始训练数据进行训练。- verbose:整数,默认=0
详细程度。
- 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_:估计器
累加拟合的基本估计量的回归器。
- stack_method_:str 列表
每个基本估计器使用的方法。
参数:
属性:
参考:
- 1
Wolpert, David H. “堆叠泛化”。神经网络 5.2(1992):241-259。
例子:
>>> from sklearn.datasets import load_diabetes >>> from sklearn.linear_model import RidgeCV >>> from sklearn.svm import LinearSVR >>> from sklearn.ensemble import RandomForestRegressor >>> from sklearn.ensemble import StackingRegressor >>> X, y = load_diabetes(return_X_y=True) >>> estimators = [ ... ('lr', RidgeCV()), ... ('svr', LinearSVR(random_state=42)) ... ] >>> reg = StackingRegressor( ... estimators=estimators, ... final_estimator=RandomForestRegressor(n_estimators=10, ... random_state=42) ... ) >>> from sklearn.model_selection import train_test_split >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, random_state=42 ... ) >>> reg.fit(X_train, y_train).score(X_test, y_test) 0.3...
相关用法
- Python sklearn StackingClassifier用法及代码示例
- 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.StackingRegressor。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。