2020机器学习随机森林(上)

machine_learning.jpg

随机森林

今天的分享内容是随机森林,在集成学习中虽然相对简单,但是简单不等于其不使用,其实简单以为便于解释和稳定。既然叫做随机森林,又是集成模型,那么他基础当然就是决策树。决策树好处就是易于构建、易于使用和解释。但是因为决策树的精准度不高这个问题,所以我们通常首选的预测工具不会考虑决策树。精准度问题主要反映在决策树可以在训练数据集有良好表现,因其泛化能力不强而在测试集上表现一般。

所以才有了随机森林随机森林通过灵活方式将简单决策树组合在一起,这样做好处就是可以大大提供决策树的精准度。

  • 构建随机深林
  • 如何使用随机深林
  • 评估随机深林精准度

构建自提升数据集

这里要简答说一下 bootstrap 这个词,通常在集成学习中翻译成自提升,翻译是依靠自己力量的;自己做的。可以理解为利用现有资源来进行改善优化。

Chest Pain Good Blood Circ. Blocked Arteries Weight Heart Diseas
No No No 125 No
Yes Yes Yes 180 Yes
Yes Yes No 210 No
Yes No Yes 167 Yes

今天我们用数据集有点过小,但是我们目的是将随机森林讲清楚,介于这个目的也够用了。

要创建与原始数据集样本数量相同的(自提升)数据集,只需从原始数据集中随机选择样本。值得注意的是我们随机选取是允许重复选取同一样本数据的。

Chest Pain Good Blood Circ. Blocked Arteries Weight Heart Diseas
Yes Yes Yes 180 Yes
No No No 125 No
Yes No Yes 167 Yes
Yes No Yes 167 Yes

上面数据就是我们从原有数据集中随机地有放回地抽取数据组成数据集,注意最后两个样本是一样的。这样就创建了自提升数据集,是不是很简单。

随机选取特征

这样我们就通过随机选取样本得到了一个新的数据集。那么现在就可以以使用自提升数据集来创建决策树,但在每个步骤中,也是通过随机一定数量数据的特征(也就是表的列)进行训练决策树。

在这个例子中,暂时只考虑两特征(列)数据作为,在构建决策树根节点时,我们通常做法是会考虑数据所有特征来计算他们的信息增益率或 Gini 指数的大小来作为选取哪个节点作为根节点依据。

而在随机森林中,我们不会考虑所有特征,只是先随机选取Good Blood Circ.Blocked Arteries 作为根节点的候选特征,我们假设 Good Blood Circulation 这个特征可以很好完成数据分类。

Chest Pain Good Blood Circ. Blocked Arteries Weight Heart Diseas
Yes Yes Yes 180 Yes
No No No 125 No
Yes No Yes 167 Yes
Yes Yes No 210 No

首先根根节点选择 good circ。发现这个特征可以很好将数据集进行分类得到很好的精准度,然后去掉已经使用过特征,在剩余的特征进行随机选取作为下一步的创建分支。

到现在大家已经看出来所谓随机就是

  • 随机选取数据样
  • 随机选取数据特征

来构建决策树分类器

重复之前步骤,基于在原有数据集上随机选取来创建一个新的自提升数据集,并在随机选取特征来构建新的决策树。

通过自提升样本,和随机选取特征的方法,我们可以创检很多不同的决策树。这样从另一方面我们可以通过不同数据增加了决策树的见识,也可以说是一种数据增强的方式。

随机森林的使用

我们得到新的样本,然后将数据丢到我们构建第一颗决策树,然后第一颗决策树给出 yes 的估计。然后重复上面步骤,每一个构建的决策树都会给出数据的估计。

Chest Pain Good Blood Circ. Blocked Arteries Weight Heart Diseas
Yes No No 168 ???

假设最终我们得到结果,就是每颗决策树给出估计如下表

Yes No
5 1

随机林中的所有决策树会对新的样本进行预测,最后通过随机森林对分类进行投票,投票最多的预测可以作为随机森林做出的预测结果。

这样集成基于自提升数据创建分类器来以投票方式给出估计的模型叫做装袋算法(Bagging) ,Bagging 词源于 Boostrapping 和 aggregate

typically about 1/3 of the original data does not end up in the bootstrapped dataset

通常,大约1/3的原始数据不会在引导数据集中结束

Chest Pain Good Blood Circ. Blocked Arteries Weight Heart Diseas
Yes Yes No 210 No

这条数据就没有出现在之前数据集中,那么这些没有被选中的样本叫做袋外数据(Out-Of-Bag),正是因为这些数据没有加入新数据集,我们便可以利用这些数据来验证刚刚创建好的决策树,也就是验证数据集�

最终我们可以通过是否正确估计这些袋外数据的分类的比例来作为衡量随机森林的精确度的一个依据,也叫做袋外误差(Out-Of-Bag Errro)

那么这些袋外误差仅是告诉随机森林预测的好坏还是不够的,我们希望这些数据有助于构建出精准度高决策树,所以我们可以通过通过袋外误差来决定我们随机选择特征数量,具体地说如何我们先随机选取 2 特征来构建决策树看一看袋外误差怎么样,然后再选取 3 特征来构建随机森林看看其袋外误差怎么样,最后根据结果来调整选取的数量。

参考 StatQuest

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

推荐阅读更多精彩内容