在进行分类任务时,我使用投票分类器来组合逻辑回归和SVM,并将投票参数设置为soft
。结果明显优于各个独立模型。我不太确定自己是否理解了它的工作原理。模型如何在只有两个模型的情况下找到多数票呢?
回答:
假设你有两个类别class-A
和class-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()时确实如此。