为什么软投票中,不能用不同算法模型的预测水平也就是score来进行权重赋予呢?

来源:13-2 Soft Voting Classifier

猫多余

2023-04-03

如题,在讲软性投票之前,我先想到的就是题目中的思路,但是实际并不是这样。那我的想法可行吗?和官方的想法的差异会不会很大呢?

写回答

1回答

liuyubobobo

2023-04-04

抱歉,我没有理解你的问题。


“我先想到的就是题目中的思路”题目中的思路是指什么思路?


“实际并不是这样。那我的想法可行吗”你的想法是什么?


“和官方的想法的差异会不会很大呢?”官方的想法又指什么?


==========


对于分类问题,score 反应的是在一组数据中的准确率,也就是一组数据有 n 个样本,这个算法正确判断了 m 个,那么 score 就是 m / n。


按照这个定义,我们最终训练好的 soft voter,里面集成的每一个算法,可能准确率都是 90%(基于训练数据集),那么按照你的想法,因为所有的模型的准确率都是 90%,他们的权重应该是一样的。可是面对一个具体的样本,每个模型判断这个样本是 A 还是 B 的概率可能是不同的(虽然他们的准确率都是 90%。)对于分 A 还是分 B 这个问题,我们更关心是 A 还是 B 的概率。


但是你的想法非常好,我们确实可以再多一层权重,用模型在训练集上的准确率作为另一层权,去细化集成算法给出的结果。


比如我们的 soft voting 包含两个模型 x 和 y。

模型 x 判断样本是 A 的概率是 90%,B 的概率是 10%,但是模型 x 的准确率只有 60%;

模型 y 判断样本是 A 的概率是 30%,B 的概率是 70%,但是模型 y 的准确率有 90%;

那么我们确实可以先按照模型 x 和 y 的准确率,给两个模型一个权值 0.4 和 0.6,

然后计算出两个模型判断是 A 的概率是 0.9 * 0.4 + 0.3 * 0. 6 = 0.54;B 的概率是 0.1 * 0.4 + 0.7 * 0.6 = 0.46。用这个结果作为最终的判断依据。


继续加油!:)

1
4
liuyubobobo
回复
猫多余
如我的回答所说,只是用模型的 score 是不合理的。首要需要考量的是每个模型给出的分类概率。两个模型的 score 都是 90%,但是对于一个分类,一个概率是 99%,另一个概率是 51%,你的方式将给这两个模型同样的权值,这是不合理的。实际上扔给 soft voter 里的模型的 score 差距不应该很大。一个 score 是 30% 的模型本身就不应该扔给 soft voter(参考这么低的准确率的模型没什么意义。)。
2023-04-06
共4条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5765 学习 · 2428 问题

查看课程