对于分类任务,我使用投票分类器来集成逻辑回归和SVM,并将投票参数设置为soft
。结果明显优于每个单独的模型。我不确定我是否理解它是如何工作的。模型如何才能在两个模型之间找到多数投票?
答案 0 :(得分:6)
假设您有两个课程class-A
和class-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()就是这种情况。