综述
随机森林顾名思义是用随机的方式建立一个森林,森林由很多的决策树组成,决策树之间是没有关联的。随机森林即随机采样样本,也随机选择特征,因此防止过拟合能力更强,能够降低模型的方差,同时具有易解释性、可处理类别特征(例如性别)、易扩展到多分类问题、不需特征归一化或者标准化。
随机性来源
随机森林进一步在决策树训练时加入随机特征选择:如果有 M 个输入变量,每个节点都将随机选择 m(m<M)个特定的变量,然后运用这 m 个变量来确定最佳的分裂点。在决策树的生成过程中,m 的值是保持不变的。m 一般取 M 均方根,因此随机森林即有样本随机性(来自 bagging 的 boostrap sampling)又有特征随机性。
构成
随机森林就是由多棵 CART( Classification And Regression Tree )构成的。对于每棵树,它们使用的训练集是从总的训练集中有放回采样出来的,这意味着,总的训练集中的有些样本可能多次出现在一棵树的训练集中,也可能从未出现在一棵树的训练集中。在训练每棵树的节点时,使用的特征是从所有特征中按照一定比例随机地无放回的抽取的。
训练及预测
随机森林分别训练一系列的决策树,所以训练过程是并行的。因算法中加入随机过程,所以每个决策树又有少量区别。通过合并每个树的预测结果来减少预测的方差,提高在测试集上的性能表现。
对新实例进行预测时,随机森林需要整合其各个决策树的预测结果。回归和分类问题的整合的方式略有不同:分类问题采取投票制,每个决策树投票给一个类别,获得最多投票的类别为最终结果;回归问题每个树得到的预测结果为实数,最终的预测结果为各个树预测结果的平均值。
超参数对模型性能的影响
优点和缺点
优点:
a)随机森林算法能解决分类与回归两种类型的问题,方差和偏差都比较低,泛化性能优越
b)随机森林对于高维数据集的处理能力很好,它可以处理成千上万的输入变量,并确定最重要的变量,因此被认为是一个不错的降维方法。此外,该模型能够输出特征的重要性程度,而且不需要顾虑多重共线性的问题。
c) 可以应对缺失数据
d ) 高度并行化,易于分布式实现
e) 由于是树模型 ,不需要归一化即可直接使用
缺点:
a)随机森林在解决回归问题时并没有像它在分类中表现的那么好,这是因为它并不能给出一个连续型的输出。当进行回归时,随机森林不能够作出超越训练集数据范围的预测。
b)对于许多统计建模者来说,随机森林给人的感觉像是一个黑盒子——你几乎无法控制模型内部的运行,只能在不同的参数和随机种子之间进行尝试
c) 忽略属性之间的相关性
d)算法倾向于观测值较多的类别。
e) 分类特征如果出现某一类较多的情况,那这一类对模型的影响会很大,例如性别,男生如果远远多于女生,那么男生对模型的影响会更大。
参考
[1] 李航. 统计学习方法[M]. 清华大学出版社, 北京, 2012.
[2] 周志华. 机器学习[M]. 清华大学出版社, 北京, 2016.