在scikit-learn中,两个分类器之间的投票是如何工作的?

在进行分类任务时,我使用投票分类器来组合逻辑回归和SVM,并将投票参数设置为soft。结果明显优于各个独立模型。我不太确定自己是否理解了它的工作原理。模型如何在只有两个模型的情况下找到多数票呢?


回答:

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

Logistic Regression(具有内置的predict_proba()方法)和SVC(设置probability=True)都能够估算其输出的类别概率,即它们预测输入属于class-A的概率为a,属于class-B的概率为b。如果a>b,则输出预测类别为A,否则为B。在投票分类器中,将投票参数设置为soft,使得SVM和逻辑回归能够分别计算它们的概率(也称为置信分数)并将其呈现给投票分类器,然后voting classifier对它们进行平均,并输出概率最高的类别。

请确保如果你设置voting=soft,那么你提供的分类器也能够计算这个置信分数。

要查看每个分类器的置信度,你可以这样做:

from sklearn.metrics import accuracy_scorey_pred=classifer_name.predict(X_test) #classifier_name=trained SVM/LogiReg/VotingClassifierprint(classifier_name.__class__.__name__,accuracy_score(y_true,y_pred))

注意:由于计算机浮点数舍入误差,a+b可能看起来不是1,但实际上是1。我无法对其他置信分数如决策函数发表评论,但在使用predict_proba()时确实如此。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注