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



我看了scikit learn的文档,但我不清楚VotingClassifier的引擎盖下使用了什么样的分类方法?是逻辑回归、支持向量机还是某种树方法?

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

编辑:

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

第二级分类器使用第一级分类器的预测作为输入。所以我的问题是,这个二级分类器使用什么方法?这是逻辑回归吗?还是别的什么?我能换一下吗?

概述

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用法。当谈到VotingClassifier如何"投票"时,您可以指定voting='hard'voting='soft'。有关更多详细信息,请参阅下面的段落。

投票

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

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

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

分类器1->分类器1->分类2->分类1分类器3->分类2 VotingClassifier(投票="hard")将对样本进行分类作为"类1"基于多数类标签。

来源:scikit学习多数类标签多数硬投票

加权平均概率(软投票)

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

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

来源/点击此处阅读更多:scikit学习加权平均概率软投票

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

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

如果你想让你的元模型更智能,可以尝试使用adaboost、gradientBoosting模型。

相关内容

  • 没有找到相关文章

最新更新