机器学习实战 AdaBoost算法 python3实现 R语言实现

机器学习实战里面对各种算法的解释都比较详尽,但是python的更新导致里面部分代码运行错误。在搜集了众多资料后发现并没有人跑来把机器学习实战这本书的python3写一下。可能大佬们觉得这小菜一碟,所以我在学习的时候把代码整理了一下放到这里希望可以帮助一些和我一样刚刚开始学习python,但是拿着一堆python2的代码无从下手的小码农们。

本文原理部分来自网络。

如有错误欢迎指正。

其实AdaBoost算法可以看做有一个老师在看着你做作业,你做错了就打你一下,那么你下次在遇到相同的题的时候就会特别小心,错的概率就小了。慢慢的你就可以把每一道题都做对了,这个时候老师就可以下班了。当然,这个老师不会再你做对的时候给你块糖吃。

一、原理 2

二、 Boosting算法的发展历史 7

三、 Adaboost 举例 8

四、Python实现 11

1.构建弱分类器 11

2.完整Adaboost算法的实现 14

3.测试算法:基于AdaBoost的分类 17

4.在一个难数据集上应用AdaBoost 18

5.AdaBoostSVM 20

五、R语言实现 20

 


一、原理

AdaBoostAdaptive Boosting,自适应提升)算法是由来自AT&T实验室的FreundSchapire1995年首次提出,该算法解决了早期Boosting算法的一些实际执行难题,而且该算法可以作为一种从一系列弱分类器中产生一个强分类器的通用方法。正由于AdaBoost算法的优异性能,FreundSchapire因此获得了2003年度的哥德尔奖(Gödel Prize,该奖是在理论计算机科学领域中最负盛名的奖项之一)。

假设我们有一个集合{(x1, y1),(x2, y2), …, (xN,yN)},每一个数据项xi是一个表示事物特征的矢量,yi是一个与其相对应的分类yi∈{-1, 1},即xi要么属于-1,要么属于1AdaBoost算法通过M次迭代得到了一个弱分类器集合{ k1, k2,…, kM},对于每一个数据项xi来说,每个弱分类器都会给出一个分类结果来,即km(xi)∈{-1, 1}。这M个弱分类器通过某种线性组合(式1所示)就得到了一个强分类器Cm,这样我们就可以通过Cm来判断一个新的数据项xk是属于-1,还是1。这就是一个训练的过程。

二、 Boosting算法的发展历史

Boosting算法是一种把若干个分类器整合为一个分类器的方法,在boosting算法产生之前,还出现过两种比较重要的将多个分类器整合 为一个分类器的方法,即boostrapping方法和bagging方法。我们先简要介绍一下bootstrapping方法和bagging方法。

1bootstrapping方法的主要过程

  主要步骤:

i)重复地从一个样本集合D中采样n个样本

ii)针对每次采样的子样本集,进行统计学习,获得假设Hi

iii)将若干个假设进行组合,形成最终的假设Hfinal

iv)将最终的假设用于具体的分类任务

2bagging方法的主要过程 -----bagging可以有多种抽取

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值