机器学习入门之 — Adaboost

Adaboost 的思想

Adaboost的想法是通过多个弱分分类器,组成一个效果很好的分类器。
对于第一个分类器分类错误的点,他们的权重变大,使得后面的分类器不得不去关注这些权值更大的点。然后,多个分类器累加在一起,实现一个比较好的效果。

Adaboost 一个例子
  • 基本的步骤是:
  1. 求每个点的权重
  2. 求一个基分类器
  3. 求在这个基分类器上面的误差
  4. 得出基分类器的权重
  5. 更新每个点的权重,跳到step1

我们按照这个例子,走一遍流程。

  • step1 计算权重
    对于刚开始,数据的每个权值都是 1/10。即 D1=(w11,w12,.....,w110),每一个的权重都是1/10 。

  • step2 计算基分类器
    (在这里做了一个简单的假设,就是基分类器是一个弱分类器,由x<v 或 x>v 产生)。在权重分布是D1的数据集上面,v=2.5是一个最好的情况。所以,基分类器是:


  • step3 计算当前分类器的误差
    误差的计算公式是:


    仔细一看,不就是对分类错误的点的权重求和吗?嗯嗯,是的!
    于是,这个的有三个点被分类错误,每一个点的权重都是0.1,所以分类错误的权重是0.1*3 = 0.3

  • step4 求解当前基分类器的权重


    那么这个的权重是:


  • step5 更新训练数据的权值分布



    公式里面的Zm指的是:


这个公式看起来稍稍复杂一点,但是细看一下也不是很复杂。对于当前点的权重的更新,我们写一段小代码,求解一下。

import math 

def creatdataset():
    x=[0,1,2,3,4,5,6,7,8,9]
    y=[1,1,1,-1,-1,-1,1,1,1,-1]
    return x,y

#a指的是基分类器的权重
def update_weight(a,weight,x,y,y_pre):
    res=[]
    for i in range(0,10):
        res.append(weight[i] * math.exp(-a*y[i]*y_pre[i]))
    new_weight = [float(ele)/sum(res) for ele in res]
    return new_weight

if __name__=="__main__":
    #原始的权重
    weight = [0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1]
    #数据集
    x,y= creatdataset()
    #基分类器的分类效果
    y_pre = [1,1,1,-1,-1,-1,-1,-1,-1,-1]
    # 更新权重
    new_weight = update_weight(0.4236,weight,x,y,y_pre)

    print (new_weight)
输出结果:
[0.07143206644239734, 0.07143206644239734, 0.07143206644239734,
 0.07143206644239734, 0.07143206644239734,  0.07143206644239734, 
 0.1666585116344062, 0.1666585116344062, 0.1666585116344062, 
 0.07143206644239734]

这个是第一个分类器的分类效果。我们再往下计算。重复进行刚才的计算。

对于第二个分类器:

对于第三个分类器:



(sign函数是一个分段函数)

这就是adaboost的一个例子。这个多个弱分类器组合出一个强分类器的优点是可以明显提高模型的泛化能力(也就是不会出现决策树那样的过拟合的情况)。


参考文献:
《统计学习方法》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容