机器学习之随机森林
机器学习之随机森林
随机森林是bagging算法的代表,使用了CART树作为弱分类器,将多个不同的决策树进行组合,利用这种组合 来降低单棵决策树的可能带来的片面性和判断不准确性。对于普通的决策树,是在所有样本特征中找一个最优特征来做决策树的左右子树划分,而随机森林会先通过自助采样的方法(bootstrap)得到N个训练集,然后在 单个训练集上会随机选择一部分特征,来选择一个最优特征来做决策树的左右子树划分,最后得到N棵决策树,对于分类问题,按多数投票的准则确定最终结果,对于回归问题,由多棵决策树的预测值的平均数作为最终结果。随机森林的随机性体现在两方面,一个是选取样本的随机性,一个是选取特征的随机性,这样进一步增强了模型的泛化能力。
随机森林的优缺点?
优点:
训练可以高度并行化,训练速度快,效率高。
两个随机性的引入,使得随机森林不容易过拟合,具有很好的抗噪声能力。
由于每次不再考虑全部的特征属性,二是特征的一个子集,所以相对于bagging计算开销更小,效率更高。
对于数据的适应能力强,可以处理连续型和离散型的变量,数据无需规范化。
可以输出变量的重要程度,被认为是一种不错的降维方法。
缺点:
在某些噪声较大的分类问题和或回归问题上容易过拟合。
模型的可解释性比较差,无法控制模型内部的运行。
对于小数据或者低维数据,效果可能会不太好。
随机森林为什么不容易过拟合?
随机森林由很多棵树组合在一起,单看每一棵树可以是过拟合的,但是既然是过拟合,就会拟合到非常小的细节,随机森林通过引入随机性,让每一棵树过拟合的细节不同,再将这些树组合在一起,过拟合的部分就会抵消掉,不过随机森林还是可能会出现过拟合的现象,只是出现的概率相对较低。
随机森林输出特征重要性的原理?
随机森林对于特征重要性的评估思想:判断每个特征在随机森林中的每颗树上做了多大的贡献,然后取个平均值,最后比一比特征之间的贡献大小。其中关于贡献的计算方式可以是基尼指数或袋外数据错误率。基于基尼系数:如果特征X出现在决策树J中的结点M,则计算节点M分枝前后的Gini指数变化量,假设随机森林由N棵树,则计算N次的Gini系数,最后将所有的Gini系数做一个归一化处理就得到了该特征的重要性。
基于袋外数据错误率:袋外数据指的是每次随机抽取未被抽取达到的数据,假设袋外的样本数为O,将这O个数据作为测试集,代入已生成好的随机森林分类器,得到预测的分类结果,其中预测错误的样本数为X,则袋外数据误差为X/O,这个袋外数据误差记为errOOB1,下一步对袋外数据的特征A加入噪声干扰,再次计算袋外误差errOOB2,假设随机森林由N个分类器,则特征A的重要性为:sum(errOOB2- errOOB1)/N,其依据就是,如果一个特征很重要,那么其变动后会非常影响测试误差,如果测试误差没有怎么改变,则说明特征A不重要。
- 点赞
- 收藏
- 关注作者
评论(0)