两个分类器之间的投票在 sklearn 中如何工作?
How does voting between two classifiers work in sklearn?
对于分类任务,我使用投票分类器来集成逻辑回归和 SVM,投票参数设置为 soft
。结果显然优于每个单独的模型。我不确定我是否理解它是如何工作的。模型如何在仅两个模型之间找到多数票?
假设您有两个 classes class-A
和 class-B
Logistic Regression
(有一个内置的predict_proba()方法)和SVC
(设置概率=真)都能够估计class 输出的概率,即他们预测输入是否为 class-A,概率为 a 和 class-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() 就是这种情况。
对于分类任务,我使用投票分类器来集成逻辑回归和 SVM,投票参数设置为 soft
。结果显然优于每个单独的模型。我不确定我是否理解它是如何工作的。模型如何在仅两个模型之间找到多数票?
假设您有两个 classes class-A
和 class-B
Logistic Regression
(有一个内置的predict_proba()方法)和SVC
(设置概率=真)都能够估计class 输出的概率,即他们预测输入是否为 class-A,概率为 a 和 class-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() 就是这种情况。