02_集成学习(Ensemble Learning)里的投票

在所有集成学习方法中,最直观的是多数投票。因为其目的是输出基础学习者的预测中最受欢迎(或最受欢迎)的预测。多数投票是最简单的集成学习技术,它允许多个基本学习器的预测相结合。与选举的工作方式类似,该算法假定每个基础学习器都是投票者,每个类别都是竞争者。为了选出竞争者为获胜者,该算法会考虑投票。将多种预测与投票结合起来的主要方法有两种:一种是硬投票,另一种是软投票。我们在这里介绍两种方法。
在这里插入图片描述

  • 硬投票

硬投票通过假设投票最多的类别是获胜者,结合了许多预测。在具有两个类别和三个基础学习器的简单情况下,如果目标类别至少具有两票,则它将成为集成法的最后输出。例如,假设有三个不同的基础学习器,他们以一定的概率预测一个样本是否属于三个类别之一(如下表)
在这里插入图片描述
在此示例中,A类拥有两票,而C类只有一票。根据硬投票,A类将是集成法最后的预测。这是结合许多基础学习器的一种相当稳健的方法,尽管它没有考虑到基础学习器选择某些课程是因为它们可能仅略胜于其他课程。

  • 软投票

软投票考虑了预测类别的可能性。为了结合预测结果,软投票计算每个类别的平均概率,并假设获胜者是具有最高平均概率的类别。在三个基础学习器和两个类别的简单情况下,我们必须考虑预测概率对于每个班级,并将其平均分配给三个学习器。
使用前面的示例,并取表1中每一列的平均值,我们可以对其进行扩展,并为平均概率添加一行。下表显示了每个学习器为每个类别预测的概率以及平均概率。
在这里插入图片描述
每个学习器为每个类别预测的概率以及平均概率可以看到,A类的平均概率为0.3,B类的平均概率为0.36,C类的平均概率为0.34,这使B类成为赢家。注意,任何基础学习器都不会选择B类作为预测类,但是通过组合预测的概率,B类会作为预测之间的最佳结果而出现。为了使软投票比硬投票更有效,基本分类器必须针对样本属于特定类别的概率产生良好的估计。如果概率没有意义(例如,如果一个类别的概率始终为100%,而其他所有类别的概率始终为0%),则软投票可能比硬投票结果更差。

讲完了原理,下面演示一些Python的实现。

Hard/Soft Voting实现

  • 硬投票的实现 (不用sklearn自带的函数)
  • 硬投票的实现 (用sklearn自带的函数)
  • 软投票的实现 (用sklearn自带的函数)

先加载模块

from sklearn import datasets, linear_model, svm, neighbors
from sklearn.metrics import accuracy_score
from numpy import argmax

加载乳腺癌的数据

breast_cancer = datasets.load_breast_cancer()
x, y = breast_cancer.data, breast_cancer.target

硬投票的实现 (不用sklearn自带的函数)

初始化基础学习器

learner_1 = neighbors.KNeighborsClassifier(n_neighbors=5)  
learner_2 = linear_model.Perceptron(tol=1e-2, random_state=0)
learner_3 = svm.SVC(gamma=0.001)

生成训练集和验证集

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值