scikit-learn 的 VotingClassifier 中使用的分类器是啥?

Posted

技术标签:

【中文标题】scikit-learn 的 VotingClassifier 中使用的分类器是啥?【英文标题】:What is the classifier used in scikit-learn's VotingClassifier?scikit-learn 的 VotingClassifier 中使用的分类器是什么? 【发布时间】:2019-06-09 13:16:02 【问题描述】:

我查看了 scikit-learn 的文档,但我不清楚在 VotingClassifier 的底层使用了哪种分类方法?是逻辑回归、SVM 还是某种树方法?

我对改变底层使用的分类器方法的方法很感兴趣。如果 Scikit-learn 不提供这样的选项,是否有可以轻松与 scikit-learn 集成的 python 包提供这样的功能?

编辑:

我的意思是用于第二级模型的分类器方法。我非常清楚第一级分类器可以是 scikit-learn 支持的任何类型的分类器。

二级分类器使用一级分类器的预测作为输入。所以我的问题是——这个二级分类器使用什么方法?是逻辑回归吗?或者是其他东西?可以改吗?

【问题讨论】:

我在下面回答了你的问题。如果我的回答对您有帮助,请告诉我。 @TimH 谢谢,但不幸的是,你的帖子没有回答我的问题。请查看编辑。 二级分类器是什么意思? 【参考方案1】:

一般

VotingClassifier 不限于一种特定的方法/算法。您可以选择多种不同的算法并将它们组合成一个 VotingClassifier。请参阅下面的示例:

iris = datasets.load_iris()
X, y = iris.data[:, 1:3], iris.target

clf1 = LogisticRegression(...)
clf2 = RandomForestClassifier(...)
clf3 = SVC(...)

eclf = VotingClassifier(estimators=[('lr', clf1), ('rf', clf2), ('svm', clf3)], voting='hard')

在此处阅读有关用法的更多信息:VotingClassifier-Usage。 当涉及到 VotingClassifier 如何“投票”时,您可以指定 voting='hard'voting='soft'。有关详细信息,请参阅下面的段落。

投票

多数类别标签(多数/硬投票)

在多数投票中,特定样本的预测类别标签 是代表类的大多数(模式)的类标签 每个分类器预测的标签。

例如,如果给定样本的预测是

分类器 1 -> 分类器 1 分类器 2 -> 分类器 1 分类器 3 -> 分类器 2 VotingClassifier(投票='hard')将对样本进行分类 根据多数类标签作为“1 类”。

来源:scikit-learn-majority-class-labels-majority-hard-voting

加权平均概率(软投票)

与多数投票(硬投票)相比,软投票返回的是 类标签作为预测概率之和的 argmax。

可以通过权重为每个分类器分配特定的权重 范围。当提供权重时,预测的类 收集每个分类器的概率,乘以 分类器权重,取平均值。然后派生出最终的类标签 来自具有最高平均概率的类标签。

来源/阅读更多:scikit-learn-weighted-average-probabilities-soft-voting

【讨论】:

感谢您的详细帖子,但不幸的是,它没有回答我的问题。我编辑了 OP 以使我的问题更清楚。【参考方案2】:

VotingClassifier 不适合第一级分类器输出的任何元模型。 它只是通过模式(如果投票是硬的)或平均概率(如果投票是软的)聚合第一级中每个分类器的输出。

简单来说,VotingClassifier 不会从第一级分类器中学到任何东西。它只合并单个分类器的输出。

如果您希望元模型更智能,请尝试使用 adaboost、gradientBoosting 模型。

【讨论】:

以上是关于scikit-learn 的 VotingClassifier 中使用的分类器是啥?的主要内容,如果未能解决你的问题,请参考以下文章

[机器学习与scikit-learn-3]:scikit-learn模型地图与模型选择

scikit-learn:如何使用拟合概率模型?

scikit-learn学习基础知识四

sklearn (scikit-learn) 逻辑回归包——设置训练的分类系数。

Sklearn 速查

Scikit-Learn 逻辑回归严重过拟合数字分类训练数据