在mlxtend库中,有一个用于集成的集成学习元分类器,称为“ StackingClassifier”。
以下是StackingClassifier函数调用的示例:
sclf = StackingClassifier(classifiers=[clf1, clf2, clf3],
meta_classifier=lr)
这里的meta_classifier是什么?它是做什么用的?
答案 0 :(得分:0)
什么是堆叠?
堆栈是一种集成学习技术,可通过元分类器组合多个分类模型。根据完整的训练集对各个分类模型进行训练;然后,根据集合中各个分类模型的输出-元特征-拟合元分类器。
因此meta_classifier
参数帮助我们选择classifier
以适合各个模型的输出。
示例:
假设您使用了3个二元分类模型,例如LogisticRegression, DT & KNN
进行堆叠。假设0, 0, 1
是模型预测的类。现在我们需要一个classifier
,它将对预测值进行多数表决。该分类器为meta_classifier
。在此示例中,它将选择0
作为预测类。
您也可以将其扩展为prob
个值。
有关更多信息,请参考mlxtend-API
答案 1 :(得分:0)
元分类器是一种可以吸收模型所有预测值的分类器。在您的示例中,您有三个分类器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 :(得分:0)