03 集成学习 - Boosting - AdaBoost算法原理

02 集成学习 - 特征重要度、Extra Tree、TRTE、IForest、随机森林总结

八、Boosting 提升学习

提升学习是一种机器学习技术,可以用于回归分类问题。它每一步产生弱预测模型 (如决策树),并加权累加到总模型中。如果每一步的弱预测模型的生成都是依据损失函数的梯度方式的,那么称为梯度提升(Gradient Boosting)。

提升技术的意义: 如果一个问题存在弱预测模型,那么可以通过Boosting技术得到一个强预测模型

常见的模型有: Adaboost、Gradient Boosting(GBT/GBDT/GBRT)、XGBoost、LightGBM。

Boosting的算法思路

不同模型在Boosting处理过程中的差异体现在根据效果更改数据这一步。


回顾: 随机森林算法
1、随机有放回抽样,选取S个数据集,建立S个模型。
2、在每一个基模型构建过程中,对于划分决策树时,随机选择K个特征进行划分。

随机森林算法本身(bagging方法),不会对原有数据集中的数据内容进行改变,只是对数据集进行随机抽样。

01 集成学习 - 概述、Bagging - 随机森林、袋外错误率


提升学习算法:
bagging算法不会更改原有数据的值,但是在Boosting算法中会根据模型训练的结果,通过某种算法,对原有数据的值进行更改,再建立下一个模型。

九、AdaBoost算法原理

百度百科说得挺好:
https://baike.baidu.com/item/adaboost/4531273?fr=aladdin

Adaptive Boost 是一种迭代算法。每一轮迭代后生成一个新的学习器,然后对样本进行预测。 预测对的权重减小,预测错的权重增加。权重越高在下一轮的迭代中占的比重就越大,即越难区分的样本在样本中会越重要。

整个迭代当错误率足够小,或迭代次数到一定次数停止。

下图虚线代表每次预测的分割线,预测成功的点会变小,预测失败的点会变大。一共进行了6次迭代。

迭代示例

上述是对样本层面的调整,下面看看对模型的调整。

注意,为了方便区分,本文对一概念做个定义上的区分:对样本比重的调整本文统称为权重,对模型比重的调整本文称为权值。

Adaboost算法将基分类器的线性组合作为强分类器,同时给分类误差率较小的基分类器以大的权值,给分类误差率较大的基分类器以小的权值。构建的线性组合为:

GmG(x): 基分类器;α m : 权值;

最终分类器是在线性组合的基础上,f(x) 很有可能是一个连续的值,那么如果对连续值进行分类操作?我们可以用Sign函数进行转换。


补充知识:
sign(x)或者Sign(x)叫做符号函数,在数学和计算机运算中,其功能是取某个数的符号(正或负):
当x>0,sign(x)=1; 当x=0,sign(x)=0; 当x<0, sign(x)=-1;

Sign函数

最终的强学习器

f(x)可能是连续值,经过sign函数处理后,最终得到的G(x)的取值不是1就是-1。这是Adaboost算法中必要重要的一环,目前对于Adaboost算法了解到这个程度即可。

最终强学习器G(x)的损失函数:

损失函数

损失函数(代价函数越小越好),反应了模型的好坏。这是一个示性函数(0,1损失函数)。
考虑单个样本的情况:即当满足 G(x)≠y 时,说明预测错了取1。G(x)=y,说明预测对了取0。
最后累加n个样本对应的取值,求平均值。

如果4个样本,最后I(G(x)≠y) 计算后的值分别问:0,0,1,0;说明3个预测对了,一个预测错了,即loss=1/4;

PS:这里的取值不是连续的,下面介绍连续取值的损失函数:


解析:先来考虑单个损失情况。注意:下面这个式子是恒成立的,我们一步一步来分解该公式。

单个样本

1、当预测值不等于真实值,即G(x)≠y的时候,说明真实值和预测值是异号的 => yG(x) < 0;又∵G(x) = sign(f(x)),f(x)是正的时候,G(x)=1。f(x)是负的时候,G(x)=-1。∴ f(x)和G(x)是同号的。所以 => yf(x) < 0;

2、当预测值等于真实值,即G(x)=y的时候, yf(x) > 0;

3、-yf(x) 是e指数函数的自变量。

3、观察下面e的指数函数图:
当x<0时,ex 的取值为 (0,1);
当x=0时,ex=1;
当x>0时,ex 的取值为 (1,+);

4、 结合上述公式进行推导:
令 -yG(x) = k,
当G≠y时,k>0, 得: e^k 取值 (1,+),此时 I(G≠y)=1;
当G=y时,k<0, 得: e^k 取值 (0,1),此时 I(G≠y)=0;
无论如何,I(G≠y) < e^k;

上图单个样本的恒不等式得证。

e的指数函数

将单个样本的恒不等式进一步推演到整个样本的范围,不等式依然恒成立:

损失函数

例子:
1号样本预测准确,左式=0,右式= (0,1)
2号样本预测错误,左式=1,右式= (1,+∞)
3号样本预测准确,左式=0,右式= (0,1)
1~3号样本加和,左边<右边;

最终推论: 当右边式子达到最小值的时候,左边的式子也能达到最小,此时损失函数最小。这个公式的优点在于我们能构建出一个连续的损失函数,和上面提到的0\1损失函数等价,都可以衡量系统的好坏。


进一步思考:

如上图所示:
第一轮:最初我们根据样本训练,得到了弱学习器①。α1×弱学习器① = 强学习器①。
第二轮:上一轮预测错误的样本加大权重,正确的缺少权重,训练得到弱学习器②。α1×弱学习器①+α2×弱学习器② = 强学习器②
....

第k-1轮的强学习器

1、第k轮的强学习器可以用k-1轮的学习器+第k轮的弱学习器×权值来代替:

第k轮的强学习器

2、将fk(x)代入损失函数:

3、得:由第m步生成的基模型和第m步基模型的权值两个未知量,构成的损失函数

损失函数

进一步思考:

我们构建损失函数的目的是让损失函数值最小。即让上面得到的公式:由第m步生成的基模型和第m步基模型的权值两个未知量,构成的损失函数 最小。

当我们建立第m个模型的时候,前面m-1个模型必然已经构建完成。所以fm-1(x)是已知量,我们认为这部分公式是一个常数,对于求损失函数的最小值没有影响。

1、使下列公式达到最小值的αm和Gm就是AdaBoost算法的最终求解值。

2、G这个分类器在训练过程中,就是为了让误差率最小,所以可以认为G越小就是误差率约小。

其中I(y≠G)代表预测错误的次数 : 想让损失函数最小,自然意味着希望预测错误率越小越好。

ξm=P(G≠y) 是误差率,即预测值不等于真实值的概率。预测错误的个数/整个样本数量。

求解Gm的目标

3、对于αm而言,通过求导然后令导数为0,可以得到公式(log对象可以以e为底也可以以2为底):

αm是第m个基学习器的权值。权值和误分率ξm有关。
(1-ξm) / ξm : 当误分率越小的时候,这个公式值越大。ln后的值也越大。α
m权值也就越大。

这个思路也我们最初求权值的思想一致:要为每个基模型附权,错误率越小权值越大。

这个公式的推导过程比较复杂,暂时记住这个结论即可。

04 集成学习 - Boosting - AdaBoost算法构建

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

推荐阅读更多精彩内容