random forest 是弱决策模型。 所谓弱决策, 就是集中很多意见,不论意见的可信度到底如何。正所谓三个臭皮匠顶一个诸葛亮,在很多情况下你会发现它的表现可能比一个专家的意见更有效。
为什么 random forest 有如此奇效呢?
根据 the law of large numbers, 如果尝试次数足够大,那么答案会趋于稳定值(回想大家都知道的扔硬币实验)。假设我们的每一个子集 classifier 都只能达到 51% 的正确率,但我们说不定能指望 majority class 的正确率达到 75%!然而这个前提是每一个类别都毫无关系,不产生 correlated errors. 但我们都很清楚这不太可能,因为我们使用的是相同的一组数据,那么训练结果必然会产生一些相似的误差,从而降低准确率。
random forest 的流程【拿 majority vote (hard voting) 举例】: training set 里分出来很多子集,每一个子集都单独训练。最后取投票(vote)最多的那个子集的结果。
与 hard voting 相对的 soft voting
soft voting 相对与 hard voting 会给有信心的决策(highly confident votes)更多权重(weights),正确率也会相对提高。
random forest 中涉及到的术语:
ensemble:a group of predictors (上面例子中的乌合之众)
我们采访到了 George Pachitariu (LinkedIn),他是 trivago 的 Data Engineer. 他在 trivago 有四年的 data engineer 的工作经验。
George 提到了在 2016 年,也就是他在 trivago 工作一年多的时候,写过一个很有趣的文章:Lessons I learned this year (在 Facebook 上的文章) 其中有一点,我有同感,就是 "Keeping trust is hard",或者说维系别人对你的系统的信任,是需要付出非常多的努力的。比如你有一个系统来为 BI 提供每天更新的数据,如果这个系统经常出问题,那么大家就开始对这个系统变得不信任了,为了维持信任,可能是晚上加班及时修好 bug, 或者早上早起修 bug.
George 重点提到了 Apache foundation,这个社区维护着很多工具集,例如 Hadoop projects: Hive, Spark, Kafka, 等等。通过阅读这些 Pull Requests 和评论,我们可以学习到很多东西,换句话说,整个这个 foundation 就像一个俱乐部一样,我们可以跟这些在这个领域摸爬滚打十几年的大佬学习。
Science/Math/Statistics
[@necogy 提供] [讨论此话题]
Random forest 简介
random forest 是目前非常流行的一种机器学习模型。
random forest 是弱决策模型。 所谓弱决策, 就是集中很多意见,不论意见的可信度到底如何。正所谓三个臭皮匠顶一个诸葛亮,在很多情况下你会发现它的表现可能比一个专家的意见更有效。
为什么 random forest 有如此奇效呢?
根据 the law of large numbers, 如果尝试次数足够大,那么答案会趋于稳定值(回想大家都知道的扔硬币实验)。假设我们的每一个子集 classifier 都只能达到 51% 的正确率,但我们说不定能指望 majority class 的正确率达到 75%!然而这个前提是每一个类别都毫无关系,不产生 correlated errors. 但我们都很清楚这不太可能,因为我们使用的是相同的一组数据,那么训练结果必然会产生一些相似的误差,从而降低准确率。
random forest 的流程【拿 majority vote (hard voting) 举例】: training set 里分出来很多子集,每一个子集都单独训练。最后取投票(vote)最多的那个子集的结果。
与 hard voting 相对的 soft voting
soft voting 相对与 hard voting 会给有信心的决策(highly confident votes)更多权重(weights),正确率也会相对提高。
random forest 中涉及到的术语: ensemble:a group of predictors (上面例子中的乌合之众)
在机器学习中,ensemble 的意思大概分两种,一是algorithm,比如说我们使用同一组数据,用不同方法来跑。或者反过来,只用一种方法,但把数据分为很多组,单独训练。最后把所有结果集中起来。虽然单独的子集训练结果 bias 是比拿所有数据来训练要高的(抽样误差),然而最后通过这种方式 bias 和 variance 都可以同时被降低。
error 的调整: Bias–variance tradeoff
Technology
[@emptymalei 提供] [讨论此话题]
我们采访到了 George Pachitariu (LinkedIn),他是 trivago 的 Data Engineer. 他在 trivago 有四年的 data engineer 的工作经验。
George 提到了在 2016 年,也就是他在 trivago 工作一年多的时候,写过一个很有趣的文章:Lessons I learned this year (在 Facebook 上的文章) 其中有一点,我有同感,就是 "Keeping trust is hard",或者说维系别人对你的系统的信任,是需要付出非常多的努力的。比如你有一个系统来为 BI 提供每天更新的数据,如果这个系统经常出问题,那么大家就开始对这个系统变得不信任了,为了维持信任,可能是晚上加班及时修好 bug, 或者早上早起修 bug.
George 重点提到了 Apache foundation,这个社区维护着很多工具集,例如 Hadoop projects: Hive, Spark, Kafka, 等等。通过阅读这些 Pull Requests 和评论,我们可以学习到很多东西,换句话说,整个这个 foundation 就像一个俱乐部一样,我们可以跟这些在这个领域摸爬滚打十几年的大佬学习。
Communication/Visualization
[@emptymalei 提供] [讨论此话题]
Data visualization society 是最近才成立的一个跟数据可视化有关的社区。
在数据可视化领域,一般的社区都是跟某个工具有关的,例如跟 d3.js 有关的,或者跟 Tableau 有关的,这样使得整个数据可视化领域被不同的社区分割,所以并不是特别理想的状态。Data visualization society 就是要解决这样一个多方割据的问题,把整个领域的人连接起来。
加入社区目前是免费的,除了邮件组,还有一个 Slack 社区。Slack 社区很活跃,是一个互助和分享氛围浓厚的社区。
如果想要分享你的视角或者经历或者建议,可以通过 Discussions 来提交,或者参与讨论,也可以写邮件给我们:hi@getdataweekly.com
来自 GetDataWeekly.com