数据挖掘-随机森林

随机森林(RandomForest)是一类专门为决策树分类器设计的组合方法,关于组合方法可以参考https://www.jianshu.com/p/9e4db2759866
中提到的组合方法相关内容。

决策树的内容参考https://www.jianshu.com/p/15574050fdd2

随机森林采用装袋的方式来有放回的抽样取得训练集。

简要原理

创建随机的多个训练集之后,对每一个训练集生成一个决策树,将这些决策树组合起来形成随机森林。
生成树的方法有如下几种:

  1. 随机选择F个输入特征来生成决策树,让树完全生长,不进行任何修剪,等全部生成完毕之后,使用多数表决的方法来组合预测。
    随机森林的强度和相关性都取决于F的大小,如果F足够小,那么树的相关性减弱,而另一方面,树分类器的强度随着F的增加而提高,作为折中,一般选择F=log_2d+1,其中d为所有输入的特征数。
  1. 如果d的数目太小,那么很难选择一个独立的随机特征集来建立决策树,那么可以创建输入特征的线性组合,在每一个节点,新特征通过随机选择L个输入特征来创建,这些输入特征用区间[-1,1]熵的均匀分布产生的系数进行线性结合,每个节点产生F个这种随机组合的新特征。

  2. 在决策树的每一个节点,从F个最佳化分钟随机选择一个。随机森林分类效果(错误率)与两个因素有关:

森林中任意两棵树的相关性:

  • 相关性越大,错误率越大;
  • 森林中每棵树的分类能力:每棵树的分类能力越强,整个森林的错误率越低。

减小特征选择个数F,树的相关性和分类能力也会相应的降低;增大F,两者也会随之增大。所以关键问题是如何选择最优的F(或者是范围),这也是随机森林唯一的一个参数。

袋外错误率(OOB)

构建随机森林的另一个关键问题就是如何选择最优的F(特征个数),要解决这个问题主要依据计算袋外错误率oob error(out-of-bag error)

随机森林有一个重要的优点就是,没有必要对它进行交叉验证或者用一个独立的测试集来获得误差的一个无偏估计。它可以在内部进行评估,也就是说在生成的过程中就可以对误差建立一个无偏估计。

我们知道,在构建每棵树时,我们对训练集使用了不同的bootstrap sample(随机且有放回地抽取)。所以对于每棵树而言(假设对于第k棵树),大约有1/3的训练实例没有参与第k棵树的生成,它们称为第k棵树的oob样本。

而这样的采样特点就允许我们进行oob估计,它的计算方式如下:

(note:以样本为单位)

1)对每个样本,计算它作为oob样本的树对它的分类情况(约1/3的树);

2)然后以简单多数投票作为该样本的分类结果;

3)最后用误分个数占样本总数的比率作为随机森林的oob误分率。
oob误分率是随机森林泛化误差的一个无偏估计,它的结果近似于需要大量计算的k折交叉验证。

简而言之,就是把原样本中没有被抽样到的样本x代入到某个对应的决策树中(该决策树肯定是没有抽到x的),之后也用随机森林的方式多数表决求得分类,把所有样本中错误分类的占比作为OOB错误率。

结合训练集和测试集的思想来对比就可以了。

例子

描述:根据已有的训练集已经生成了对应的随机森林,随机森林如何利用某一个人的年龄(Age)、性别(Gender)、教育情况(Highest Educational Qualification)、工作领域(Industry)以及住宅地(Residence)共5个字段来预测他的收入层次。

  收入层次 :

Band 1 : Below $40,000

Band 2: $40,000 – 150,000

Band 3: More than $150,000

随机森林中每一棵树都可以看做是一棵CART(分类回归树),这里假设森林中有5棵CART树,总特征个数N=5,我们取F=1(这里假设每个CART树对应一个不同的特征)。

  CART 1 : Variable Age

image.png

  CART 2 : Variable Gender

image.png

  CART 3 : Variable Education

image.png

  CART 4 : Variable Residence

image.png

  CART 5 : Variable Industry

image.png

我们要预测的某个人的信息如下:

1. Age : 35 years ; 2. Gender : Male ; 3. Highest Educational Qualification : Diploma holder; 4. Industry : Manufacturing; 5. Residence : Metro.

根据这五棵CART树的分类结果,我们可以针对这个人的信息建立收入层次的分布情况:

image.png

最后,我们得出结论,这个人的收入层次70%是一等,大约24%为二等,6%为三等,所以最终认定该人属于一等收入层次(小于$40,000)。

随机森林算法的特点

该算法具有良好的普适性,无论是分类、多分类、回归都可以做,而且准确率很高,对噪声更加鲁棒,同时运行效率比AdaBoost更好。

参考:https://blog.csdn.net/yangyin007/article/details/82385967

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

推荐阅读更多精彩内容