如何在 python 中集成包含所有功能的分类器?

数据挖掘 机器学习 Python nlp scikit-学习 集成建模
2021-09-22 18:01:45

我正在做一个文本分类任务(5000 篇文章由 10 个标签均匀分布)。我探索LinearSVC并得到了80%的准确率。现在我猜想是否可以通过使用ensemble分类SVM器作为基础估计器来提高准确性?

但是,我不知道如何使用ensemble包含所有功能的分类器?请注意,我不想将不同的特征直接组合在一个向量中。

因此,我的第一个问题:为了提高当前的准确性,是否可以使用ensemble分类svm器作为基估计器? 我的第二个问题如何使用ensemble包含所有特征的分类器?

2个回答

Boosting- 是试图添加新模型的集合,这些模型在以前的模型缺乏的地方做得很好。scikit 中的Bagging允许您将基本分类器作为参数发送。浏览 1.11 的链接以了解更多信息!

但是,既然您已经记住,SVM 执行更好的投票分类sklearn.ensemble可以让您为您似乎表现良好的分类器赋予权重。例如,在您的问题中,可以赋予 SVM 更多的权重。它还有另一个参数“投票”。If hard,使用预测的类标签进行多数规则投票 else if soft,根据预测概率之和的 argmax 预测类标签。

是的,当然可以使用 SVM 提高准确性。

首先,我会选择已经准备好的ensemble算法,例如随机森林或 AdaBoost。它们可以包含所有功能并且是强大的预测器。

此外,正如 Hima Varsha 的回答中提到的,scikit-learn 提供voting_classifier了轻松组合算法的功能。但是你可以更进一步,做一些所谓的混合——你在你的数据集上拟合各种算法,然后根据它们的预测,你拟合另一组算法来产生最终预测。它可以很容易地实现,参见这个例子