python机器学习——随机森林

综述

随机森林顾名思义是用随机的方式建立一个森林,森林由很多的决策树组成,决策树之间是没有关联的。随机森林即随机采样样本,也随机选择特征,因此防止过拟合能力更强,能够降低模型的方差,同时具有易解释性、可处理类别特征(例如性别)、易扩展到多分类问题、不需特征归一化或者标准化。

随机性来源

随机森林进一步在决策树训练时加入随机特征选择:如果有 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.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值