问题描述
我正在尝试使用 Sklearn 的 BaggingClassifier 来定义多个 base_estimator。根据我的理解,有些事情与此类似。
clf = BaggingClassifier(base_estimator=[SVC(),DecisionTreeClassifier()],n_estimators=3,random_state=0)
但是这里的 BaggingClassifier 并没有将列表作为它的 base_estimator。
我假设我可以切换到 StackingRegressor(estimators=)
来手动定义多个估算器。但是列出来会很痛苦,例如 100 个估计量,更不用说会有许多基本估计量的排列和组合。
你能帮我理解如何在 sklearn.BaggingClassifier 中定义多个 base_estimator 吗?
解决方法
您只能将一个估算器传递给 base_estimator
。 BaggingBlassifier
背后的整个想法是在训练数据的随机样本上训练一个模型,以尝试减少其方差。
如果您需要两个或多个估计器,每个估计器都经过随机数据子集的训练,我建议两种不同的选择:
- 从两个独立的装袋分类器创建您自己的投票流程
- 训练两个不同的
BaggingClassifiers
并将它们传递给sklearn.ensemble.StackingClassifier
。