数据挖掘-随机森林

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

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

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

简要原理

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

  1. 随机选择F个输入特征来生成决策树,让树完全生长,不进行任何修剪,等全部生成完毕之后,使用多数表决的方法来组合预测。
    随机森林的强度和相关性都取决于F的大小,如果F足够小,那么树的相关性减弱,而另一方面,树分类器的强度随着F的增加而提高,作为折中,一般选择,其中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

你可能感兴趣的:(数据挖掘-随机森林)