随机森林参数调整

资料
https://www.zhihu.com/question/38958781/answer/101915539
作者:董老二

随机森林

先假设我们有N个样本,M个特征,那么在这种情况下我们是如何构建随机森林的:

  • a.构建一棵树,我们利用自助法(bootstrap)从N个样本中选取N个样本,需要注意的是,这N个样本是大概率会有重复的,选取的这N个样本就是根节点待分裂的样本;

  • b.在每个待分裂节点上,我们从M个特征中随机选取m个特征(通常是log2(M)或sqrt(M)的数量,比M小),从这m个属性中根据某种策略(如gini减少或信息增益等)确定分裂属性;

  • c.重复b步骤,直到不能分裂或达到我们设定的阈值(如叶子节点数或树的深度),此时建立了一颗决策树;

  • d.重复上面的a、b、c步骤,直到达到预定树的颗数为止。

随机森林的优点有:

  1. 对于很多种资料,它可以产生高准确度的分类器。
  2. 它可以处理大量的输入变量。
  3. 它可以在决定类别时,评估变量的重要性。
  4. 在建造森林时,它可以在内部对于一般化后的误差产生不偏差的估计。
  5. 它包含一个好方法可以估计遗失的资料,并且,如果有很大一部分的资料遗失,仍可以维持准确度。
  6. 它提供一个实验方法,可以去侦测 variable interactions 。
  7. 对于不平衡的分类资料集来说,它可以平衡误差。
  8. 它计算各例中的亲近度,对于数据挖掘、侦测偏离者(outlier)和将资料视觉化非常有用。
  9. 使用上述。它可被延伸应用在未标记的资料上,这类资料通常是使用非监督式聚类。也可侦测偏离者和观看资料。
  10. 学习过程是很快速的。
  11. 随机森林不会产生过拟合问题。
  12. scikit-learn中,还可以输出参数重要性,这也是决策树和随机森林的优点之一(目前pyspark还不支持输入参数重要性):
print zip(X_train.columns, model.feature_importances_)

随机森林的缺点

随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟。

参数调整

相对而言,调参对随机森林来说,不会发生很大的波动,相比神经网络来说,随机森林即使使用默认的参数,也可以达到良好的结果。

  • max_features:
    随机森林里单个决策树的所使用的最多特征量。
    显然,这个值越高,则随机森林的速度越慢。另外,该值越高,则虽仅森林中的多样性越低,同样会降低预测准确率。

  • n_estimators:
    一般而言,越高速度越慢但是准确率越高。

  • min_sample_leaf
    较小的该值让训练树划分的更精细,也同样对噪声数据越敏感。

  • bootstrap
    是否有放回采样

随机森林Q&A

为什么相关性较强的一些变量会影响随机森林?

在随机森林的步骤中,有一步是要求每次分裂都从随机的m个特征中选择一特征作为分裂特征,这种随机性就是为了使得树与树之间的相关性变低,或者说变得不一样。如果变量集里面出现了两个完全一致(相关性的极端)的变量,那该变量被选到m个变量的机会就会变高,那么构造出来的树就会变得越像,树与树之间的相关性就会变高,那么随机森林的泛化的能力就会变差。换句话说,这些相似的变量挤占了带有其他信息的变量入模的机会,从而使得模型变差。

随机森林会不会过拟和

没有不会过拟和的方法。随机森林也一样。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值