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

How does voting between two classifiers work in sklearn?

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

假设您有两个 classes class-Aclass-B

Logistic Regression(有一个内置的predict_proba()方法)和SVC(设置概率=真)都能够估计class 输出的概率,即他们预测输入是否为 class-A,概率为 aclass-B,概率为b。如果 a>b 那么它输出预测 class is A otherwise B .In a voting classifier 将投票参数设置为 soft 使它们(SVM 和 LogiReg)能够单独计算它们的概率(也称为置信度分数)并将其呈现给投票 classifier,然后voting classifier 对它们进行平均并输出 class 的概率最高。

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

要查看每个 classifier 的置信度,您可以执行以下操作:

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() 就是这种情况。