专栏首页CSDN技术头条随机森林不可思议的有效性

随机森林不可思议的有效性

对于机器学习从业者而言,有自己最喜欢的算法是很常见的。可能这有点不太合乎常理,因为没有一个算法能够完全地主导所有的应用,而且机器学习算法的性能很大程度上依赖于应用程序和数据集的维度。甚至对于一个给定的问题和数据集,由不同算法训练而得到的一个组合模型往往会优于单个模型。尽管如此,人们还是有自己最喜欢的算法。有些人喜欢SVM,因为它们有着优美的公式或者是可直接使用的高质量算法实现;也有些人喜欢决策规则,因为它们的简单性和可解释性;还有些人则因为神经网络的灵活性而痴迷于它。

我所喜欢的算法就是(你可能已经猜到了)Random Forest(随机森林),而且它属于第二种常用的建模技术(首选项是线性模型),我通常会在所有给定的数据集上都尝试一下。

这里有几个原因

  • 随机森林几乎不需要输入准备。它们可以处理二元特征,分类特征,数字特征,并且不需要任何缩放处理。
  • 随机森林可实现隐式特征选择,并且提供一个很好的特征重要性指标。
  • 随机森林训练速度非常快。它的一个特色就是当性能优化时,恰巧会提高模型精度,反之亦然。随机特征子集设置的目的在于多样化单个树,同时也是一个出色的性能优化!此外,特征调整部分被认为是,在任何给定的节点下,都可以让你在有着成千上万个特征的数据集中轻松的工作。(如果你的数据集有很多行,此方法同样适用于行采样)。
  • 随机森林很难超越。尽管你通常可以找到一个模型,该模型在任何给定的数据集上都可以超越随机森林(一般是神经网络或者一些boosting算法),但是这样的模型并不多,而且和随机森林相比,建立和调整这些模型所需要的时间通常更长。这也是为什么仅仅把它们当作优秀的参考模型的原因。
  • 真的很难建立一个糟糕的随机森林模型!因为随机森林对特定的超参数的使用并不是非常敏感,它们不需要做大量的调整和修改就可以得到一个体面的模型,只要使用大量的树,实验结果就不会显得糟糕。大多数Random Forest的实现对于可选的参数都有一个合理的默认值。
  • 通用性。随机森林适用于各种各样的建模工作,它们可以很好的处理回归任务和分类任务(甚至产生体面的校正的概率分数),尽管我在聚类方面没有尝试过,但它同样可以用于聚类分析。
  • 简洁性。如果不是模型产生的,那么就是学习算法自身带有的特性。基本的RF学习算法只需要几行代码就可以实现。对于这一点确实有点讽刺意味,但也有一种优雅的感觉。
  • 大量优秀、免费以及开源的实现。你可以在几乎所有主要的机器学习库或工具箱中找到很好的实现。R,scikit-learn和Weka就是因为有着特别好的实现而备受关注。
  • 似乎所有的这些都还不够,Random Forest能够以并行方式轻松的成长。而对于boosted模型和大的神经网络,则不能。

这个来自scikit-learn美观的可视化结果证实了决策森林的建模能力。

缺点?

  • 随机森林的主要劣势在于模型大小。你可能需要数百兆的内存才能轻松地结束一个森林,而且评估的速度也很慢。
  • 另外一点,有些人可能会发现一个问题,也就是随机森林模型其实是个很难去解释的黑盒子。

一些参考资料:

Leo Breiman发表的一篇论文,他是随机森林算法描述的发明者。

这里还有Rich Caruana等人发表的另一篇论文,内容讲的是在各种不同的数据集上评估不同的监督学习算法。

原文链接:The Unreasonable Effectiveness of Random Forests(译者/刘帝伟 审校/赵屹华、朱正贵、李子健 责编/周建丁)

译者简介: 刘帝伟,中南大学软件学院在读研究生,关注机器学习、数据挖掘及生物信息领域。

本文分享自微信公众号 - CSDN技术头条(CSDN_Tech)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-09-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • AI人才薪酬看涨,你的工作还好吗?

    金九银十的黄金跳槽季,来看看这张招聘网站的截图。图上显示,当前一些知名互联网公司关于 IT 研发岗位的招聘行情。应届毕业生都比我这个有几年写 bug 经验的码农...

    CSDN技术头条
  • 开发者成功使用机器学习的十大诀窍

    在提供发现埋藏数据深层的模式的能力上,机器学习有着潜在的能力使得应用程序更加的强大并且更能响应用户的需求。精心调校好的算法能够从巨大的并且互不相同的数据源中提取...

    CSDN技术头条
  • AI人才薪酬看涨,背后有什么鸡贼?

    图上显示,当前一些知名互联网公司关于 IT 研发岗位的招聘行情。应届毕业生都比我这个有几年写 bug 经验的码农赚得多了!!

    CSDN技术头条
  • 随机森林不可思议的有效性

    用户1737318
  • 谷歌Waymo与DeepMind合作,开发出新训练方法提高自动驾驶训练质量和效率

    日前据媒体报道,Alphabet旗下的Waymo公司和DeepMind公司进行了合作,他们开发出一种模拟进化论的新训练方法,以此提高训效率和质量。

    镁客网
  • python实现elastcsearch中timestampe(long)类型的date_histogram聚合测试

    由于老版本的elasticsearch不支持date类型,因此之前的存储(5.0版本)都用了timestamp来进行设计。

    sparkexpert
  • Facebook面试官:如何突围大厂算法面试?

    “给你a、b两个文件,他们各存放50亿条URL,其中每条URL各占用64字节,内存限制是4G,请你编写代码找出a、b文件中相同的URL”。这是某家大公司在201...

    ACM算法日常
  • 新手入门 | 算法书籍推荐

    公众号设立以来,很多同学都在问如何入门、提高,以及有什么好的算法书籍可以学习。这周空闲时间我就大概在网上整理了一下,由于每个人的性格、学习习惯都不...

    ACM算法日常
  • “狙击”高端市场,“全场景”会是智能家居的突围路径吗?

    在家居市场,智能化的风口吹了许久,但是最终的模式却也一直“悬而未决”。未来,智能家居市场将如何发展,各个厂商依旧还在探寻最适合目标用户与自家的路径。

    曾响铃
  • 《你不知道的JavaScript》:js类型的注意点

    可以使用typeof来查看值的类型,它返回的是类型的字符串值。但有一种类型和它的字符串值并不一一对应:

    前端_AWhile

扫码关注云+社区

领取腾讯云代金券