BaggingClassifier 可以在 Sklearn 中手动定义多个 base_estimator 吗?

问题描述

我正在尝试使用 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_estimatorBaggingBlassifier 背后的整个想法是在训练数据的随机样本上训练一个模型,以尝试减少其方差。

如果您需要两个或多个估计器,每个估计器都经过随机数据子集的训练,我建议两种不同的选择:

  1. 从两个独立的装袋分类器创建您自己的投票流程
  2. 训练两个不同的 BaggingClassifiers 并将它们传递给 sklearn.ensemble.StackingClassifier