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

Cle*_*lee 4 python classification machine-learning scikit-learn ensemble-learning

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

Pra*_*mar 7

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

Logistic Regression(有一个内置的predict_proba()方法)和SVC(组概率=真)两者都能够估计类概率上它们的输出即它们预测,如果输入是A类的概率一个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))
Run Code Online (Sandbox Code Playgroud)

注意: 由于计算机浮点舍入,a + b可能看起来不是1.但它是1.我不能说决定函数之类的其他置信度得分,但是使用predict_proba()就是这种情况.