两个分类器之间的投票如何在sklearn中起作用?

时间:2018-01-30 19:15:49

标签: python machine-learning scikit-learn classification ensemble-learning

对于分类任务,我使用投票分类器来集成逻辑回归和SVM,并将投票参数设置为soft。结果明显优于每个单独的模型。我不确定我是否理解它是如何工作的。模型如何才能在两个模型之间找到多数投票?

1 个答案:

答案 0 :(得分:6)

假设您有两个课程class-Aclass-B

Logistic Regression(内置 predict_proba()方法)和SVC(设置概率= True)都可以估算其输出上的类概率,即它们预测是否输入 class-A ,概率 a class-B ,概率 b 。如果 a> b ,则输出预测类别为 A ,否则 B 。在投票分类器中,将投票参数设置为soft他们(SVM和LogiReg)单独计算他们的概率(也称为置信度得分)并将其呈现给投票分类器,然后voting classifier平均他们并输出具有最高概率的类。

确保如果设置voting=soft,那么您提供的分类器也可以计算此置信度分数。

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

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

注意 a + b 可能因计算机浮点舍入而无法显示为 1 。但它 1 。我不能说决定函数之类的其他置信度得分,但是使用predict_proba()就是这种情况。