在scikit-learn中,两个分类器之间的投票是如何工作的?

在进行分类任务时,我使用投票分类器来组合逻辑回归和SVM,并将投票参数设置为soft。结果明显优于各个独立模型。我不太确定自己是否理解了它的工作原理。模型如何在只有两个模型的情况下找到多数票呢?


回答:

假设你有两个类别class-Aclass-B

Logistic Regression(具有内置的predict_proba()方法)和SVC(设置probability=True)都能够估算其输出的类别概率,即它们预测输入属于class-A的概率为a,属于class-B的概率为b。如果a>b,则输出预测类别为A,否则为B。在投票分类器中,将投票参数设置为soft,使得SVM和逻辑回归能够分别计算它们的概率(也称为置信分数)并将其呈现给投票分类器,然后voting classifier对它们进行平均,并输出概率最高的类别。

请确保如果你设置voting=soft,那么你提供的分类器也能够计算这个置信分数。

要查看每个分类器的置信度,你可以这样做:

from sklearn.metrics import accuracy_scorey_pred=classifer_name.predict(X_test) #classifier_name=trained SVM/LogiReg/VotingClassifierprint(classifier_name.__class__.__name__,accuracy_score(y_true,y_pred))

注意:由于计算机浮点数舍入误差,a+b可能看起来不是1,但实际上是1。我无法对其他置信分数如决策函数发表评论,但在使用predict_proba()时确实如此。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注