机器学习实战——第七章:AdaBoost元算法

本系列目的在于总结每一个分类器的特点(优点、缺点、使用数据类型、使用时的注意事项等)。相关代码自己搜。


python:建议使用2.7

python常用函数库:NumPy、scikit-learn等

python集成环境:anaconda


毕业季,玩了20天。


优点:

1、最好的监督学习方法:泛化错误率低,易实现,无参数调整。


缺点:

1、对离群点敏感


使用数据类型:

1、离散型(确保类别标签为+1和-1,而不是+1和0)



使用时注意事项:

0、自举汇聚法(bootstrap aggregating),也称为bagging方法,是在从原始数据集选择S欠后得到S个新数据集的一种技术。新数据集和原数据集的大小相等。每个数据集都是通过在原始数据集中随机选择一个样本来进行替换而得到的。这里的替换就意味着可以多次地选择同一样本。这一性质就允许新数据集中可以有重复的值,而原始数据集的某些值在新集合中则不再出现。在S个数据集建好之后,将某个学习算法分别作用于每个数据集就得到了S个分类器。当我们要对新数据进行分类时,就可以应用这S个分类器进行分类。与此同时,选择分类器投票结果中最多的类别作为最后的分类结果。

1、boosting:boosting分类的结果是基于所有分类器的加权求和结果的,因此boosting与bagging不太一样。bagging中的分类器权重是相等的,而boosting中的分类器权重并不相等,每个权重代表的是其对应分类器在上一轮迭代中的成功度。boosting方法拥有多个版本,本章将只关注其中一个最流行的版本AdaBoost

2、AdaBoost是adaptive boosting的缩写,其运行过程如下:训练数据中的每个样本,并赋予其一个权重,这些权重构成了向量D。一开始,这些权重都初始化成相等值。首先在训练数据上训练出一个弱分类器并计算该分类器的错误率,然后在同一数据集上再次训练弱分类器。在分类器的第二次训练当中,将会重新调整每个样本的权重,其中第一次分对的样本的权重将会降低,而第一次分错的样本的权重将会提高。为了从所有弱分类器中得到最终的分类结果,AdaBoost为每个分类器都分配了一个权重值alpha,这些alpha值是基于每个弱分类器的错误率进行计算的。每个弱分类器的结果以其对
应的alpha值作为权重,所有这些弱分类器的结果加权求和就得到了最后的结果。错误率E的计算公式为:E=分类错误的样本数/总样本数。alpha计算公式为:alpha=1/2*ln( (1-E)/E )。正确分类的样本的权重调整公式为:D=D*e^(-alpha)/sum(D),错误分类的样本的权重调整公式为:D=D*e^(alpha)/sum(D)。在计算出D之后,AdaBoost又开始进入下一轮迭代。AdaBoost算法会不断地重复训练和调整权重的过程,直到训练错误率E=0或者弱分类器的数目达到用户的指定值为止。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值