前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >随机森林:猜糖豆游戏揭示的机器学习算法

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

作者头像
大数据文摘
发布2018-05-22 10:19:02
7220
发布2018-05-22 10:19:02
举报
文章被收录于专栏:大数据文摘大数据文摘

关于转载授权

大数据文摘作品,欢迎个人转发朋友圈,自媒体、媒体、机构转载务必申请授权,后台留言“机构名称+转载”,申请过授权的不必再次申请,只要按约定转载即可,但文末需放置大数据文摘二维码。

选文:纪思亮 作者:Bo Moore 编译整理:孙强

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

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

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

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

从猜糖豆游戏到随机森林

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

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

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

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

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

“好树”与“坏树”

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

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

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

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

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

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

文章参考:http://www.galvanize.com

注:本博客文章部分贡献来自Mike Tamir, 他是Galvanize的首席科学家和机器学习专家。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据文摘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档