软投票是什么?集成模型按概率平均来做决定
软投票(Soft Voting)是集成学习中把多个分类模型的预测结果组合起来的一种方法。它不是简单地统计每个模型投给了哪个类别,而是把各个模型预测的每个类别的概率加起来求平均,最后选择平均概率最高的那个类别作为最终结果。与之相对的方法叫硬投票。
硬投票和软投票
假设有三个模型判断一张图片是猫还是狗。硬投票只看每个模型的最终结论,少数服从多数:如果两个模型说是猫,一个说是狗,最终结果就是猫。软投票则看每个模型有多大的把握。比如:模型一认为是猫的概率是 0.55,模型二认为是猫的概率是 0.52,模型三认为是猫的概率只有 0.10,也就是有 0.90 的把握认为是狗。按硬投票,两票对一票,结果是猫;但按软投票,猫的平均概率是(0.55 加 0.52 加 0.10)除以 3,约等于 0.39,狗的平均概率约为 0.61,结果是狗。在这个例子中,前两个模型都只是勉强倾向于猫,几乎拿不定主意,而第三个模型非常确定是狗,软投票考虑了这种信心上的差别。
为什么软投票往往更好
软投票利用了比硬投票更多的信息:硬投票只知道每个模型的结论,而软投票还知道每个模型对这个结论有多大的把握。一个非常自信的正确预测,可以压过几个犹豫不决的错误预测。因此,在各个模型给出的概率比较可靠的情况下,软投票通常比硬投票效果更好。
加权软投票
如果各个模型的水平不一样,还可以给它们分配不同的权重:表现更好的模型权重更大,在平均概率时占更大的分量。权重通常可以根据各个模型在验证集上的表现来确定。
使用时需要注意
软投票要求每个模型都能输出类别的概率,而不仅仅是一个类别结论。一些模型,比如原始的支持向量机,默认并不输出概率,需要额外进行概率校准。另外,不同模型给出的概率可能在“校准”程度上差别很大:有的模型习惯给出非常极端的概率,比如 0.99;有的模型给出的概率总是很温和,比如 0.6。如果不加以校准,过于自信的模型可能会主导软投票的结果,即使它并不一定更准确。因此,在使用软投票之前,最好先检查各个模型的概率是否可靠,必要时用温度缩放、普拉特缩放等方法进行校准。在 scikit-learn 等机器学习库中,投票分类器可以直接通过参数选择使用硬投票还是软投票。随机森林在预测时对各棵树的类别概率求平均,本质上也是一种软投票。