随机森林的原理与实现

随机森林的基本描述:

由于单一的决策树一般都会有过拟合的问题,因此一些研究人员通过特定的方式构建多个决策树的方法来增加模型中的偏差(bias),从而解决模型过拟合的问题。由于在构建树的过程中使用了一些随机化的方法,而且又包括了很多的树,因此这个模型被称为了随机森林。

随机森林既可以用于分类,又可以用于回归。用于分类时,给定的输入样例必须作为每一棵树的输入,最后统计每一棵树所预测的类型中哪个类型是最多的(majority vote),样本就被预测为那种类型;用于回归时,输入样例也是要作为每一棵树的输入,然后对每一棵树的输出值求平均,得到输入样例的预测值。

事实上,随机森林还能用于非监督性学习,这是因为随机森林具有一个特性:能够测量每个实例之间的接近度(proximity),通过这样的特性我们可以对无标签的数据进行聚类,这是随机森林最重要的特性。两个实例接近度的计算是通过让两个实例遍历森林中的每一棵树,统计它们处于相同叶子节点的次数,将总次数除以树的总数就是两个实例的接近度。

通过实例的接近度测量,随机森林还能应用于寻找离群值。

另外,随机森林还能计算出输入数据集中各个特征的重要性,通过对特征重要性的测量我们就可以实现某种程度的维度下降。基本的测量步骤是对当前测量的特征的各个值进行重新排列,然后使用oob(out-of-bag)数据对每一棵树计算排列前后正确分类的实例的数目,使用排列前的正确分类实例数目减去排列后正确分类实例数目。统计所有树这个减法值的平均值就能得到特征重要性的原始值。

其次地,随机森林解决数据集中数据缺失,数据集类别数目不平衡等问题。


随机森林的基本实现方法:

①通过放回采样的方法在原数据集中进行采样,每构造一棵树就要采样一次。

②使用采样后的数据集,根据给定的树深和叶子数据量大小等参数要求来构造决策树。与一般的决策树构造不同,模型还有一个参数用于指定在进行节点分割的时候,只选取多少个特征进行最优分割的计算。因此在构造决策树每一次进行节点分割的时候,我们必须随机选取指定数量的特征用于计算最优分割特征以及特征值,以这个特征和特征值进行分割,从而构造出一个决策树。另外,是否分割的标准是根据基尼不纯度来判断的。这是向模型加入偏差(bias)的重要步骤。

③重复以上两步直到构造完了指定数量的决策树。


随机森林的性能测量方法:

①可以使用k-折交叉验证的方法。

②使用oob误差估计。由于在每棵树构造的过程中都会有没有被采样的数据,这些数据也被称为out-of-bag数据(oob数据),使用oob数据在对应的树上计算出预测值。对于每一个作为oob的实例,统计它在预测类型最多的作为该实例的类型。最后计算出误差率。


随机森林所涉及到的参数:

①最重要的就是在每一次分割需要用到的特征数目。

②对原数据集进行放回取样的样本数。

③所构造的每一个决策树的最大深度,以及叶子节点所包含的最大实例数。

④要构造的树的数目。


参考资料:

随机森林的详细描述  https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm

随机森林的具体实现  https://machinelearningmastery.com/implement-random-forest-scratch-python/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值