随机森林(RF)详解

随机森林(Random Forests

本文旨在介绍随机森林结构生成的同时,介绍所带来的优缺点。

随机森林是一种重要的基于Bagging的集成学习方法,可以用来做分类、回归等问题。它的组成是由多个弱学习器组成,CART(分类回归树)。

RF的生成过程是由一个到多个CART的生成构成。主要过程如下:

通过对训练数据样本以及属性进行有放回的抽样(针对某一个属性随机选择样本)这里有两种,一种是每次都是有放回的采样,有些样本是重复的,组成和原始数据集样本个数一样的数据集;另外一种是不放回的抽样,抽取出大约60%的训练信息。由此生成一颗CART树,剩下的样本信息作为袋外数据,用来当作验证集计算袋外误差测试模型;把抽取出的样本信息再放回到原数据集中,再重新抽取一组训练信息,再以此训练数据集生成一颗CART树。这样依次生成多颗CART树,多颗树组成森林,并且他们的生成都是通过随机采样的训练数据生成,因此叫随机森林。

RF可以用于数据的回归,也可以用于数据的分类。回归时是由多颗树的预测结果求均值;分类是由多棵树的预测结果进行投票。(后面细讲)

正式由于它的随机性,RF有极强的防止过拟合的特性。由于他是由CART组成,因此它的训练数据不需要进行归一化,因为每课的建立过程都是通过选择一个能最好的对数据样本进行选择的属性来建立分叉,因此有以上好处的同时也带来了一个缺点,那就是忽略了属性与属性之间的关系。

分类:

如果cart树是分类数,那么采用的计算原则就是gini指数。随机森林基于每棵树的分类结果,采用多数表决的手段进行分类

基尼指数( CART算法 —分类树) 
定义:基尼指数(基尼不纯度):表示在样本集合中一个随机选中的样本被分错的概率。Gini指数越小表示集合中被选中的样本被分错的概率越小,也就是说集合的纯度越高,反之,集合越不纯。 
即 基尼指数(基尼不纯度)= 样本被选中的概率 * 样本被分错的概率 
 
说明:

1、pk表示选中的样本属于k类别的概率,则这个样本被分错的概率是(1-pk)

2、样本集合中有K个类别,一个随机选中的样本可以属于这k个类别中的任意一个,因而对类别就加和。

当为二分类是,Gini(P) = 2p(1-p)

样本集合D的Gini指数 :假设集合中有K个类别,则:

 

回归:

如果是回归树,则cart树是回归树,采用的原则是最小均方差。即对于任意划分特征(属性)A,对应的任意划分点s两边划分成的数据集D1和D2,求出使D1和D2各自集合的均方差最小,同时D1和D2的均方差之和最小所对应的特征和特征值划分点。表达式为: 


其中,c1为D1数据集的样本输出均值,c2为D2数据集的样本输出均值。 cart树的预测是根据叶子结点的均值,因此随机森林的预测是所有树的预测值的平均值。

 


解释:

DecreaseGINI

对于分类问题(将某个样本划分到某一类),也就是离散变量问题,CART使用Gini值作为评判标准。定义为Gini=1-∑(P(i)*P(i)),P(i)为当前节点上数据集中第i类样本的比例。例如:分为2类,当前节点上有100个样本,属于第一类的样本有70个,属于第二类的样本有30个,则Gini=1-0.7×07-0.3×03=0.42,可以看出,类别分布越平均,Gini值越大,类分布越不均匀,Gini值越小。在寻找最佳的分类特征和阈值时,评判标准为:argmax(Gini-GiniLeft-GiniRight),即寻找最佳的特征f和阈值th,使得当前节点的Gini值减去左子节点的Gini和右子节点的Gini值最大。

Decrease Accuracy

记录当前的的测试误差为误差1,随机改变OOB样本的第j列:保持其他列(属性)不变,对第j列中的值进行随机的上下置换,得到误差2。至此,我们可以用误差1-误差2来刻画属性j的重要性。当然这里loss function可以自己定。这里的大致思想就是,如果一个变量j足够重要,那么改变它会极大的增加测试误差;反之,如果改变它测试误差没有增大,则说明该变量不是那么的重要。

 

总结:

随机森林有许多优点:

·       具有极高的准确率

·       随机性的引入,使得随机森林不容易过拟合

·       随机性的引入,使得随机森林有很好的抗噪声能力

·       因为是由多个弱学习器(CART)组成,每一个CART的生成是随机,因此能处理很高维度的数据,并且不用做特征选择。

·       能补全缺失的数据。

·       能处理分类不平衡的数据集。

·       既能处理离散型数据,也能处理连续型数据,数据集无需规范化。

·       训练速度快,可以得到变量重要性排序,包括重要程度(重要程度根据Decrease GINI 和DecreaseAccuracy两个指标判断(后面解释))。

·       在训练的同时,利用袋外数据作为测试集自动实现模型测试,不需要额外的测试集。

·       容易实现并行化,因为每课树的训练和建立是相对独立的。

随机森林的缺点:

·       对低维数据集和样本量较小的数据集效果不好。

·       当随机森林中的决策树个数很多时,训练时需要的空间和时间会较大。

·       忽略了属性之间的联系对最终结果的影响。


你可能感兴趣的:(M,L,深度学习,深度学习,机器学习,人工智能)