首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是mlxtend中StackingClassifier函数中的元分类器?

什么是mlxtend中StackingClassifier函数中的元分类器?
EN

Stack Overflow用户
提问于 2018-09-10 09:39:02
回答 3查看 4.8K关注 0票数 2

在mlxtend库中,有一个用于堆叠的集成学习元分类器,称为"StackingClassifier“。

下面是一个StackingClassifier函数调用的示例:

代码语言:javascript
复制
sclf = StackingClassifier(classifiers=[clf1, clf2, clf3], 
                          meta_classifier=lr)

这里的meta_classifier是什么?它是用来做什么的?

EN

回答 3

Stack Overflow用户

发布于 2018-09-10 10:07:13

什么是堆叠?

堆叠是一种集成学习技术,通过元分类器组合多个分类模型。基于完整的训练集训练单个分类模型;然后,基于集成中单个分类模型的输出-元特征-拟合元分类器。

来源:StackingClassifier-mlxtend

因此,meta_classifier参数可以帮助我们选择适合各个模型输出的classifier

示例

假设您已经使用了3个二进制分类模型,例如LogisticRegression, DT & KNN用于堆叠。假设0, 0, 1是模型预测的类。现在我们需要一个classifier,它将对预测值进行多数投票。这个分类器就是meta_classifier。在本例中,它将选择0作为预测类。

您还可以将其扩展到prob值。

有关更多信息,请参阅mlxtend-API

票数 3
EN

Stack Overflow用户

发布于 2019-06-12 13:28:11

元分类器是一个接受模型的所有预测值的分类器。在你的例子中,你有三个分类器clf1,clf2,clf3,假设clf1是朴素贝叶斯,clf2是随机森林,clf3是svm。现在,对于数据集中的每个数据点x_i,您的所有三个模型都将运行h_1(x_i),h_2(x_i),h_3(x_i),其中h_1,h_2,h_3对应于clf1,clf2,clf3的函数。现在,这三个模型将给出三个预测的y_i值,所有这些都将并行运行。现在,使用这些预测值训练一个模型,该模型称为元分类器,在您的情况下是逻辑回归。

因此,对于新的查询点(x_q),它将计算为h^'(h_1(x_q),h_2(x_q),h_3(x_q)),其中h^'(h破折号)是计算y_q的函数。

元分类器或集成模型的优势在于,假设clf1的准确率为90%,clf2的准确率为92%,clf3的准确率为93%。因此,最终模型的准确率将高于93%,这是使用元分类器进行训练的。这些堆叠分类器在kaggle补全中广泛使用。

票数 2
EN

Stack Overflow用户

发布于 2020-07-26 19:16:03

meta_classifier只是一个分类器,它通过使用这些预测作为特征,在所有预测中做出最终预测。因此,它采用各种分类器预测的类,并选择最终一个作为您需要的结果。

下面是StackingClassifier的一个不错而简单的演示:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52250025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档