机器学习(六)—随机森林Random Forest

1、什么是随机采样?

  Bagging的弱学习器之间的确没有boosting那样的联系。它的特点在“随机采样”。

  随机采样(bootsrap)就是从我们的训练集里面采集固定个数的样本,但是每采集一个样本后,都将样本放回。也就是说,之前采集到的样本在放回后有可能继续被采集到。对于我们的Bagging算法,一般会随机采集和训练集样本数m一样个数的样本。这样得到的采样集和训练集样本的个数相同,但是样本内容不同。如果我们对有m个样本训练集做T次的随机采样,,则由于随机性,T个采样集各不相同。

  注意到这和GBDT的子采样是不同的。GBDT的子采样是无放回采样,而Bagging的子采样是放回采样。

2、什么是袋外数据(Out Of Bag, 简称OOB)?

  对于一个样本,它在某一次含m个样本的训练集的随机采样中,每次被采集到的概率是1/m。不被采集到的概率为11/m。如果m次采样都没有被采集中的概率是(11/m)^m。当m时,(11/m)^m1/e≃0.368。

  也就是说,在bagging的每轮随机采样中,训练集中大约有36.8%的数据没有被采样集采集中,最终使用的数据约为64%。

  对于这部分大约36.8%的没有被采样到的数据,我们常常称之为袋外数据(Out Of Bag, 简称OOB)。这些数据没有参与训练集模型的拟合,因此可以用来检测模型的泛化能力

3、随机森林的生成方法:

  1)对于t=1,2...,T:

      a)对训练集进行第t次随机采样,共采集m次,得到包含m个样本的采样集Dt;

      b)用采样集Dt训练第t个决策树模型Gt(x),在训练决策树模型的节点的时候, 在节点上所有的样本特征中选择一部分样本特征, 在这些随机选择的部分样本特征中选择一个最优的特征来做决策树的左右子树划分;

    2) 如果是分类算法预测,则T个弱学习器投出最多票数的类别或者类别之一为最终类别。如果是回归算法,T个弱学习器得到的回归结果进行算术平均得到的值为最终的模型输出。

  注意:

    (1)RF使用了CART决策树作为弱学习器;

    (2)RF通过随机选择节点上的一部分样本特征,这个数字小于n,从中选择一个最优的特征来做决策树的左右子树划分,这样进一步增强了模型的泛化能力。

4、RF的优缺点:

  RF的主要优点有:

    1) 训练可以高度并行化,对于大数据时代的大样本训练速度有优势。个人觉得这是的最主要的优点。

    2) 由于可以随机选择决策树节点划分特征,这样在样本特征维度很高的时候,仍然能高效的训练模型。

    3) 在训练后,可以给出各个特征对于输出的重要性,特征重要性的选择

    4) 由于采用了随机采样,训练出的模型的方差小,泛化能力强。

    5) 相对于Boosting系列的Adaboost和GBDT, RF实现比较简单。

    6) 对部分特征缺失不敏感。

  RF的主要缺点有:

    1)在某些噪音比较大的样本集上,RF模型容易陷入过拟合。

    2) 取值划分比较多的特征容易对RF的决策产生更大的影响,从而影响拟合的模型的效果。

转载自博客:http://www.cnblogs.com/pinard/p/6156009.html

猜你喜欢

转载自www.cnblogs.com/eilearn/p/8993980.html