机器学习笔记(14):集成学习

本文来自之前在Udacity上自学机器学习的系列笔记。这是第14篇,介绍了监督学习中的集成学习。

什么是集成学习
如果我们要对邮件进行判断,是否属于垃圾邮件。首先,我们有一大堆做好分类的邮件数据集。通过观察属于垃圾邮件的数据,每次观察一部分,可以得到一个关于垃圾邮件的规则。比如说,规则一是垃圾邮件有关于“促销”的文字;规则二是邮件包含了“尼日利亚王子”;规则三邮件内容很短,只有两行文字等。最后,我们将这些规则合并起来,组成一个总的判断规则来对邮件进行判断。这种方法就是集成学习。

综上,集成学习就是将多个学习器结合起来构成一个总的更强的学习器。集成学习需要解决两个问题,第一个是如何得到多个的学习器,我们称之为基学习器;第二个是得到了多个学习器后如何结合起来。

一般有两类比较流行的集成方法,分别是Bagging和Boosting。Bagging的多个学习器之间没有强关联,而且采用均值合并的集成方式;Boosting的多个学习器之间有强关联,而且采用加权平均的集成方式。

Bagging
Bagging,又叫做Bootstrap Aggregation,具体做法是,从从训练集中随机抽取一部分样本,使用适合的基学习器训练后,将样本放回并重复抽取和训练的步骤,直至得到多个学习器后,对测试集数据进行预测,得到多个结果,通过均值合并的方式得到最终预测结果。

比如说下图的数据点。红色是训练集,绿色是测试集。我们随机选择5个包含5个训练集样本点的子集,然后计算三阶多项式拟合曲线。得到5条曲线后,进行均值合并得到图示的红色表示出来的三阶多项式曲线。而蓝色表示的是按照线性回归得到的四阶多项式拟合曲线。相比较两者后发现,虽然蓝色线比红色线在训练集上的表现更好,但是红色线在测试集上的表现更好。这是因为,红色线所代表的集成方法通过随机选择不同子集的数据进行均值合并,避免了受到训练集个别数据的影响而产生的过拟合。

image.png

Bagging模型中典型的代表是随机森林(RandomForest,RF)模型。

Boosting
Boosting的中心思想是选择“难”的数据,集成则是用到加权平均。与Bagging相比,这里的基学习器存在强关联,后一个基学习器是基于前一个基学习器的。Boosting选择“难”数据的过程,就是基于上一个基学习器,对预测结果不好的数据增加权重,来构造下一个基学习器。

在介绍具体做法前,先认识两个概念。

误差
在之前的线性回归等模型中,评价指标是使用预测值与实际值之间的误差的平方和计算得出。并不会考虑每个预测样本的权重,或者说每个预测样本的权重都是一样的。这里的误差概念考虑了样本的权重,权重系数定义为:

P_D(h(x) \neq c(x))

比如说有四个数据点,其中两个预测有误差,分配的权重都是1/20,那么这个值就是1/10。如果不考虑权重,而是1/2。

弱学习器(Weak Learner)
弱学习器的定义是,不管权重分布如何,学习器得到的结果都会不小于1/2。即
\forall D, \quad P(h(x) \neq c(x)) \leq \frac{1}{2} - \epsilon

结合上面的误差和弱学习器的定义,我们可以写出Boosting的伪代码为:
给定数据集{(x_i, y_i)}i=1,2,\ldots, ny_i \in (-1, 1),对于每一个时间步t \in (1, T),构建一个数据的权重分布D_t,寻找弱学习器h_t(x),使得\epsilon_t=P_{D_t}(h_t(x) \neq y_c)。最后输出H_{final}

其中,数据的权重分布D_t具体做法是:首先设置D_1= \frac{1}{n},然后令D_{t+1}=\frac{D_t e^{-\alpha_t y_i h_t(x_i)}}{z_t},其中\alpha_t=\frac{1}{2} ln \frac{1-\epsilon_t}{\epsilon_t},其中z_t是一个归一化因子。

最终输出H_{final}则是基于\alpha_t的加权平均,定义为H_{final}=sgn(\sum_t \alpha_t h_t(x))

上述具体的推导可以参考这篇论文的介绍:

http://ww.web.stanford.edu/~hastie/Papers/SII-2-3-A8-Zhu.pdf

大概意思就是,boosting在每一轮构建基学习器时,都会用上所有的训练集数据。一开始给出初始均等的权重假设进行学习,然后每一轮构建的基学习器,通过计算可以得到相应的预测结果、误差。然后将学习器、预测结果和误差作为输入给到下一轮的基学习器的构建。这个时候,预测结果差的会相应地加大权重进行学习。最后,根据各个基学习器的预测结果按照具体定义的权重系数进行加权平均。然后将得到的结果输入到一个阈值函数,得到一个相应的类别。

比如说,对下图方形区域的数据点进行分类,分别进行了三次的基学习器学习,最终可以得到一个“折线”形式的决策边界,将数据点分隔开来。

image.png

上述提到的模型可以参考sklearn的文档和代码说明

https://scikit-learn.org/stable/modules/ensemble.html#

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

推荐阅读更多精彩内容