随机森林是基模型为决策树的Bagging集成学习模型。 集成学习的思想是:将若干个弱(基)分类器组合起来,得到一个分类性能显著优越的强分类器。Bagging集成的各弱分类器之前没有强依赖关系,并行生成。
随机森林的生成
- 基分类器(决策树):设训练集大小为
- 从全部样本中有放回的采取个样本作为训练集;(自助法)
- 随机的从全部特征中选择一个子集,每次树进行分裂时,从特征子集中选择最优的;
- Bagging集成
- 多数投票机制得到最终结果。
如何体现随机
- 数据采样随机:在训练每棵决策树时,从全部样本中(个样本)采用自助法采取个样本作为训练集;
- 特征选择随机:在每个结点随机选取所有特征的一个子集,用来计算最佳分割方式。
为什么要随机采样
如果不进行随机抽样,每棵树的训练集都一样,那么最终训练出的树分类结果也是完全一样的,bagging无效。
为什么要有放回抽样
如果不是有放回的抽样,那么每棵树的训练样本都是不同的,都是没有交集的,极端点,每棵树都是刻画了数据的某一方面。
随机森林的优势
- 能够处理很高维度的数据,并且不用做特征选择;
- 在训练完成之后,能够给出哪些特征比较重要;
- 训练过程中,能够检查到特征之间的影响;
- 容易做成并行化方法,速度比较快(训练时,树与树之间相互独立);
- 对于不平衡数据集来说,随机森林可以平衡误差。当存在分类不平衡的情况时,随机森林能提供平衡数据集误差的有效方法。
- 如果有很大一部分的特征遗失,用RF算法仍然可以维持准确度。
- 随机森林抗过拟合能力比较强(虽然理论上说随机森林不会产生过拟合现象,但是在现实中噪声是不能忽略的,增加树虽然能够减小过拟合,但没有办法完全消除过拟合,无论怎么增加树都不行,再说树的数目也不可能无限增加的。)
- 随机森林能够解决分类与回归两种类型的问题,并在这两方面都有相当好的估计表现。(虽然RF能做回归问题,但通常都用RF来解决分类问题)。
随机森林的缺点
- 随机森林在解决回归问题时,并没有像它在分类中表现的那么好,这是因为它并不能给出一个连续的输出。当进行回归时,随机森林不能够做出超越训练集数据范围的预测,这可能导致在某些特定噪声的数据进行建模时出现过度拟合。(PS:随机森林已经被证明在某些噪音较大的分类或者回归问题上回过拟合)。
- 对于许多统计建模者来说,随机森林给人的感觉就像一个黑盒子,你无法控制模型内部的运行。只能在不同的参数和随机种子之间进行尝试。
- 可能有很多相似的决策树,掩盖了真实的结果。
- 对于小数据或者低维数据(特征较少的数据),可能不能产生很好的分类。(处理高维数据,处理特征遗失数据,处理不平衡数据是随机森林的长处)。
- 执行数度虽然比boosting等快(随机森林属于bagging),但比单只决策树慢多了。