微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。