【发布时间】:2018-07-09 18:46:06
【问题描述】:
对于分类任务,我使用投票分类器来集成逻辑回归和支持向量机,投票参数设置为soft。结果明显优于每个单独的模型。我不确定我是否理解它是如何工作的。模型如何仅在两个模型之间找到多数票?
【问题讨论】:
标签: python machine-learning scikit-learn classification ensemble-learning
对于分类任务,我使用投票分类器来集成逻辑回归和支持向量机,投票参数设置为soft。结果明显优于每个单独的模型。我不确定我是否理解它是如何工作的。模型如何仅在两个模型之间找到多数票?
【问题讨论】:
标签: python machine-learning scikit-learn classification ensemble-learning
假设你有两个类 class-A 和 class-B
Logistic Regression( 有一个内置的 predict_proba() 方法) 和 SVC(set probability=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() 就是这种情况。
【讨论】:
floating point 结束部分。