随机森林:猜糖豆游戏揭示的机器学习算法-阿里云开发者社区

开发者社区> 大数据文摘> 正文

随机森林:猜糖豆游戏揭示的机器学习算法

简介:

0?wx_fmt=jpeg

还记得那款老的嘉年华游戏吗,大家一起猜测一个罐子里糖豆的数量?虽然准确猜出糖豆的数量需要一点运气和技巧的组合,事实证明,通过平均所有人的各种各样的猜测,平均结果出奇地接近正确答案。

这是一个被称为“众人的智慧(the wisdom of the crowd)”的典型例子,也是机器学习常用的建模策略之一。

前提条件还是有的:你要有数量足够多的不同的数据,每一个数据都在某些程度上包含所需信号,但数据之间没有任何其他维度的相关性(这样数据的误差往往对称分布在真实结果周围),当然还需要一种合适的聚合方式来聚合这些数据(如算一下平均值)。你会发现,经过最后聚集,正确结果会脱颖而出,而数据的误差往往会相互抵消。

在此前我们介绍过的一篇文章《猎杀埃博拉病毒的算法》(点击进入)中,事实也是通过这样一种方法来跟踪埃博拉病毒及宿主。下面,我们会重点介绍这个被称为“随机森林”的机器学习算法。

从猜糖豆游戏到随机森林

回到数糖豆的例子中,满足这些前提条件意味着,一定要有很多人给出猜测(大量的观点和数据),他们猜的都是同一个糖豆罐(猜测的数据必须含有一定维度的信号测量),人们不能彼此交流他们的猜测结果(以保证观点和数据没有其他相关性)。即使有些人只是快速浏览一下瓶子,而另一些人则研究很长一段时间;或者有人只是开个玩笑,猜测一个非常不正确的结果(过高或过低),这些都没有关系。

重要的是,所有的猜测都集中在正确答案的周围。猜测中有正确的的成分,有错误的成分,但正确的成分会互相叠加,错误的成分会相互抵消。即使有人提交比较离谱的低估或高估,随着越来越多的猜测被提交,这些离谱的错误也会相互抵消。

“众人的智慧(wisdom of the crowd)”是随机森林(random forest)建模的主题思想,而随机森林是最流行的机器学习算法之一。随机森林模型的工作原理是训练成百上千个“弱”机器学习算法,称为决策树。 0?wx_fmt=jpeg

决策树通过某些参数的可用数据来运行,通过使用它检测到的模式(pattern),建立一系列的“是或否(Yes/No)”的问题(例如,这样的客户可能会续约吗?),根据问题的回答来分类数据。再回到糖豆的例子,这可以被认为是类似于一个人的推理问题,如“瓶子有多大?”“糖豆有多大?”但决策树本身会受到限制。它们只能使用可用参数的子集来设计一系列的肯定和否定(Yes/No)问题。此外,在回答是/否的问题时,一次只使用一个决策树,使用串联,而不是组合,因此在给出最后答案时,很少能捕捉到参数间微妙的相互作用。

随机森林,在另一方面,采用的是类似于“人群智慧”的决策树集合。每个决策树使用的是不同维度的数据(就像猜糖豆中的单个参加者),然后做出一个决定,最后所有这些决定进行聚集和平均。因为每棵树只能看某些特定参数,单一决策树的预测能力是非常有限的,针对每一个数据点给出正确答案的概率很小。另外,许多决策树看到的都是不重要的特征 - 所谓数据“噪音”。

“好树”与“坏树”

重要的是,在随机森林算法中,我们不只是问一棵树的答案,而是从数百个决策树集合中寻求答案。这里的关键是,那些主要关注噪声(不相关的信息)的决策树往往会是正确/错误的预测概率各占一般(50%,50%),这样他们的选票相互抵消,类似猜糖豆的例子。那些更关注真正相关参数的决策树,预测正确答案的概率比错误答案要高一些。因此,如果我们创造了足够多的决策树构成森林后,“坏树好树”最终各占50%,然后“好树”的决策就决定了最终的好的结果。

0?wx_fmt=jpeg
在猜糖豆的例子中,通过征集大量的猜测,即使很多情况下没有人猜地特别准确,但只要集合这些猜测,我们大多数情况下都可以得到非常准确的结果。

当然,为了达到预期结果,随机林模型还必须满足一些注意事项。首先,所述决策树必须足够不同,这样它们不至于都产生同样的反应。他们必须提出不同问题,并使用不同的亚数据集。如果每一棵树都使用100%相同的参数,他们为每个数据点的投票都一样,相比单一决策树没有什么优势。 (这就是我们所说的过度拟合,即在建立模型的过程中,过多关注一个特定的数据集的噪声而导致不良后果)。在这种情况下,森林算法会关注太多的数据噪声,当你预测新的数据集时,你会看到模型表现很差。

反过来看也是对的:构建的决策树数量太少。由于关注的参数太少,很难得到足够好的数据的整体图像。这意味着,没有决策树有足够的信息来可靠地捕获信号,即使是“弱”信号。由于用于决策的投票人太少,所以最后的聚集结果就不可靠。

所以,关键是要在过拟合及欠拟合之间找到一个很好的平衡。这就是所谓的参数“超调(hyper tuning)”,以保证你的模型的正确性(类似于逻辑回归中的正则化参数,或在径向基核的SVM-RBF kernel SVM的高斯宽度width of a Gaussian)在随机森林的情况下,最重要的超参数是m,该参数规定了总特性中的多少比例部分(用p来表示)可以让每个树来使用。

随机森林如此受欢迎的其中一个原因是,不管数据的种类如何,总有一些非常可靠的工具来引导选择合适的m, 使得随机森林成为最简单有效的算法之一。

原文发布时间为:2015-11-27

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
大数据文摘
使用钉钉扫一扫加入圈子
+ 订阅

官方博客
官网链接