随机森林 Random Forest

随机森林是由决策树通过Bagging策略训练而成的,即:

B a g g i n g + D e c i s i o n T r e e = R a n d o m F o r e s t

随机森林的算法执行过程:
设有训练数据集 S = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) }
其中 x i X R n
弱学习器迭代次数 T
输出强学习器 F ( x )

1、在第 t , t = 1 , 2 , . . . , T 次随机取样中,采 N 次样,得到包含 N 个样本的采样集 D t

2、将采样集 D t 使用CART方法训练第 t 个弱学习器 G t ( x )

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

随机森林算法的优缺点:

优点:

  1. 训练可以高度并行化,对于大样本训练有速度优势;
  2. 由于可以随机选择决策树节点划分特征,这样在样本特征维度很高的时候,仍然能高效的进行模型训练;
  3. 在训练后,可以给出各个特征对于输出的重要性;
  4. 由于采用了随机采样,训练出的模型的方差小,泛化能力强;
  5. 相对于Boosting系列的Adaboost和GBDT, RandomForest实现比较简单;
  6. 对部分特征缺失不敏感。

缺点:

  1. 在某些噪音比较大的样本集上,RF模型容易陷入过拟合;
  2. 取值划分比较多的特征容易对RF的决策产生更大的影响,从而影响拟合的模型的效果;
  3. 相对于基于决策树的Boosting的GBDT算法来说,想要达到一个比较好的效果,弱分类器的个数远高于GBDT,也就是说RandomForest模型在高维大数据集上训练出的模型太大。

猜你喜欢

转载自blog.csdn.net/baishuiniyaonulia/article/details/81040255