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

Nic*_*ick 3 python-3.x scikit-learn ensemble-learning

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

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

编辑:

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

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

Tim*_*Tim 5

一般的

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')
Run Code Online (Sandbox Code Playgroud)

在此处阅读有关用法的更多信息: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