Boost-Adaboost

我们知道boost系列是强依赖关系, 有这个依赖, 各个学习器之间还有这些问题没有解决:

  • 如何计算学习的误差率e
  • 如何得到弱学习器的权重\alpha
  • 如何更新样本权重?
  • 使用何种结合策略?

Adaboost

假定这里给一个二分类的数据集:
T={(x_1,y_1),(x_2,y_2),...,(x_m,y_m)}
我们先来看一下Adaboost的步骤

  1. 输入数据T
  2. 初始化训练数据的权重分布:
    D_1=(w_{11},w_{12},...,w_{1m}), W_{1i}= \frac{1}{m}, i=1,2,...,m
  3. k=1,2,...,K:
  • 使用具有权值分布的D_k训练集进行学习, 得到基本的分类器:
    G_k(x):X-> \{-1,1\}
  • 计算G_k(x)在训练数据集上的误差率
    e_k=P(G_k(x_i)\not=y_i)=\sum_{i=1}^{m}w_{ki}I(G_k(x_i)\not=y_i)
  • 计算G_k(x)的系数:
    \alpha_m=\frac{1}{2} \log \frac{1-e_m}{e_m}
  • 更新训练集的权重分布:
    D_{k+1}=(w_{k+1,1},w_{k+1,2},...,w_{k+1,i})
    w_{k+1,i}=\frac{w_{ki}}{Z_k} e^{-\alpha_ky_iG_k(x_i)},i=1,2,3..m
    此处Z_k是规范化因子:
    Z_k=\sum_{i=1}^{m}w_{ki}e^{(-\alpha_my_iG_k(x_i))}
  1. 构建基本的纤性分类器组合:
    f(x)=\sum_{k=1}^{K}\alpha_kG_k(x)

Adaboost的损失函数

Adaboost损失函数采用指数损失, 指数损失比较少见
L(y,f(x))=e^{-yf(x)}
下面来推导一下其损失函数, 该算法为加法模型, 学习算法为前向分步算法, 前向分步算法其实就是: 通过前一轮学习器的学习, 来更新后一个弱学习器的训练集权重,按照上面的定义, 各轮学习器为:
f_{k-1}(x)=\sum_{k=1}^{K-1} \alpha_kG_k(x)
f_{k}(x)=\sum_{k=1}^{K} \alpha_kG_k(x)
显然, f_k(x)=f_{k-1}(x)+\alpha G_k(x)是成立的
利用前向分布, 我们可以得到每个新的子分类器的损失函数为:
L(\alpha_k, G_k(x))=argmin \sum_{i=1}^{m}e^{-y_i(f_{k-1}(x)+\alpha_{k} G_{k}(x))}
w_{ki}=e^{-y_if_{k-1}(x)},它的值不依赖于\alpha或者G_k,仅依赖于f_{k-1}(x),
将其代入损失函数得到:
L(\alpha_k, G_k(x))=argmin \sum_{i=1}^{m}w_{ki}e^{-y_i\alpha_k G_k(x)}
我们知道y_iG_k(x)其实是一个输出, 我们可以用一个指示函数I代替, 那么我们得到
L(\alpha_k, G_k(x))=argmin \sum_{i=1}^{m}w_{ki}e^{-y_i\alpha_kI(y_i\not=G_k(x))}
我们对\alpha求偏导:
\alpha_k=\frac{1}{2}\log \frac{1-e_k}{e_k}
最终, e_k求实我们的分类误差率
上面提到的四个问题, 基本上都已经解决了, 那么Adaboost如何处理回归问题?
回归问题, 基本上只用修改误差就可以了

  1. 首先我们计算其在训练集上的最大误差
    E_k=max|y_i-G_k(x_i)|
  2. 计算每个样本上的误差:
  • 如果是线性误差:
    e_{ki}=\frac{|y_i-G_k(x_i)|}{E_k}
  • 平凡误差: 略
  1. 计算误差率
    e_k=\sum_{i=1}^{m}w_{ki}e_{ki}
    其他步骤都是一样的

Adaboost正则化

为了防止Adaboost过拟合,我们通常也会加入正则化项:
没有加正则化:
f_k(x)=f_{k-1}(x)+\alpha G_k(x)
加了正则化v:
f_k(x)=f_{k-1}(x)+v\alpha G_k(x)
v的取值范围在0~1之间, 更小的v代表我们需要更多的迭代次数

总结

理论上任何学习器都可以用于Adaboost.但一般来说,使用最广泛的Adaboost弱学习器是决策树。对于决策树,Adaboost分类用了CART分类树,而Adaboost回归用了CART回归树。
Adaboost的主要优点有

  • Adaboost作为分类器时,分类精度很高
  • 在Adaboost的框架下,可以使用各种回归分类模型来构建弱学习器,非常灵活。
  • 作为简单的二元分类器时,构造简单,结果可理解。
  • 不容易发生过拟合
    Adaboost的主要缺点有
  • 对异常样本敏感,异常样本在迭代中可能会获得较高的权重,影响最终的强学习器的预测准确性
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 228,386评论 6 532
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 98,504评论 3 416
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 176,324评论 0 374
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 62,968评论 1 311
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 71,733评论 6 410
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 55,194评论 1 324
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 43,259评论 3 441
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 42,412评论 0 288
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 48,947评论 1 336
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 40,779评论 3 354
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 42,978评论 1 369
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 38,521评论 5 359
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,217评论 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 34,647评论 0 26
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 35,886评论 1 286
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 51,658评论 3 391
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 47,963评论 2 373