使用随机森林:在121数据集上测试179个分类器

如果你不知道用什么方法去解决你的问题,你应该尝试一些

也许,你只需要尝试随机森林,或者是高斯支持向量机

在最近的研究中,这两个算法与近200种其他算法在100多个数据集上的平均值相比较,它们的效果最好。

在这篇文章中,我们将回顾这个研究,并考虑一些测试算法在我们机器学习问题上的应用。

我们是否需要数百个分类器Thomas Leth-Olsen的 照片,保留了一些权利

我们是否需要数百个分类器?

论文的标题是“ 我们是否需要数百个分类器来解决真实的世界分类问题?“,并于2014年10月在”机器学习研究杂志 “上发表。

在本文中,作者通过了121个标准数据集评估了来自UCI机器学习库的 来自17个类别(族)的179个分类器。

作为一种口味,这里列出了所研究的算法族以及每个族中算法的数量。

  • 判别分析(DA):20个分类器
  • 贝叶斯(BY)方法:6个分类器
  • 神经网络(NNET):21个分类器
  • 支持向量机(SVM):10个分类器
  • 决策树(DT):14个分类器。
  • 基于规则的方法(RL):12个分类器。
  • 提升(BST):20个分类器
  • 装袋(BAG):24个分类器
  • 堆叠(STC):2个分类器。
  • 随机森林(RF):8个分类器。
  • 其他乐团(OEN):11个分类器。
  • 广义线性模型(GLM):5个分类器。
  • 最近邻法(NN):5个分类器。
  • 偏最小二乘和主成分回归(PLSR):6
  • Logistic和多项式回归(LMR):3个分类器。
  • 多元自适应回归样条(MARS):2个分类器
  • 其他方法(OM):10个分类器。

这是一个巨大的研究。

一些算法在计算最后的得分前被调整,并且使用4则交叉验证来评估算法。

他们发现随机森林(特别是R中的并行随机森林)和高斯支持向量机(特别是来自libSVM)的表现最好。

从论文摘要:

最有可能是最好的分类器是随机森林(RF)版本,其中最好的(在R中实现并通过插入符号访问)在84.3%的数据集中精度超过90%,最大达到了94.1%。

关于本文的HackerNews讨论中,Kaggle的Ben Hamner对袋装决策树的深刻表现进行了确凿的评论:

这与我们运行数百个Kaggle比赛的经验是一致的:对于大多数分类问题,合奏决策树(随机森林,梯度提升机器等)在一些数据类别变化时表现的最好。

获取免费的算法思维导图

方便的机器学习算法思维导图示例

我已经创建了一个按照类型组织的60多个算法的方便的思维导图。

下载它,打印并使用它

免费下载

要非常小心地准备数据

有些算法仅适用于分类数据,其他算法需要数值型数据。一些算法可以处理你扔给它们的任何东西。UCI机器中的数据集通常是标准化的,但是不足以在原始状态下用于这样的研究。

这已经在“ 关于为分类器准备数据的论述一文中指出。

在这篇评论中,作者指出,被测试的相关数据集中的分类数据被系统地转换成数值,但是以一种可能阻碍一些算法进行测试的方式。

由于将分类属性转换为数值和对所执行的数据集进行标准化,所以高斯支持向量机可能表现良好。

不过,我赞扬作者在接受这个挑战方面的勇气,这些愿意接受后续研究的人士可能会解决这些问题。

作者还指出,看起来像公民科学努力的OpenML项目面临同样的挑战。

为什么要这样的研究?

这个沿着无自由午餐定理(NFLT)的方向进行的研究很容易被唾弃。

当所有问题的平均值相同时,所有算法的性能是相同的。

我不喜欢这个说法。NFLT要求你没有先验知识。你不知道你正在做什么问题,或者你正在尝试什么算法。这些条件是不实际的。

在本文中,作者列出了该项目的四个目标:

  • 为选定的数据集合选择全局最佳分类器
  • 根据其准确性对每个分类器和家族进行排序
  • 对于每个分类器,要确定其达到最佳准确度的概率,以及其准确度与最佳准确度之间的差异
  • 要评估改变数据集属性(复杂性,#模式,#类和#输入)的分类器行为,

研究的作者承认,我们想要解决的实际问题是所有可能问题的一个子集,有效算法的数量不是无限的,而是可以管理的。

本文是一个声明,确实我们可能有一些关于一套已知(但很小)问题的最常用(或实现)算法套件的能力。(很像20世纪90年代中期的STATLOG项目

实践中:选择一个中间地带

在开始之前,您无法知道哪个算法(或算法配置)在您的问题上表现良好,甚至是最好。

你必须尝试多种算法,你必须在那些展示他们挑选问题结构的能力上加倍努力。

我称之为“ 点检”,并又强烈意愿将数据驱动方式去运用到机器学习上

在这项研究的背景下,点检是介于选择你最喜欢的算法和测试所有知道的算法之间的中间地带。

  1. 选择你最喜欢的算法。快速但受限于任何你最喜爱的算法或库恰好是对这个问题合适的。
  2. 点检查十几种算法。一个平衡的方法能使你注意到表现更好的算法。
  3. 测试所有已知/实现的算法。十分耗时的方法,但是有时候能给出意外的结果。

你使用什么方法取决于你掌握的时间和资源。请记住,在一个问题上试用算法只是通过问题的工作过程的一步。

测试所有算法需要一个强大的测试工具。这不能被低估。

当我过去尝试过这些时,我发现大多数算法都会挑出问题中的大部分结构。我发现他是一个头重脚轻的分布,并且在重的头部的区别总是非常次要的。

这是一个你想变得有意义的小区别。因此,您需要在没有数据遗漏(交叉验证折叠内的数据缩放/变换等)的情况下,投入大量的前期时间来设计强大的测试工具(交叉验证,很多折叠,也许是单独的验证数据集)

现在我认为这是理所当然的应用问题。我甚至不关心哪个算法出现了。我把精力集中在数据准备和整合足够好的现有模型上

本文的版权归 molybdenum 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能

机器学习(四)——梯度下降算法解释以及求解

机器学习(四) ——梯度下降算法解释以及求解θ (原创内容,转载请注明来源,谢谢) (本文接机器学习(二)的内容) 一、解释梯度算法 ? 梯度算法公式以及简化的...

23950
来自专栏企鹅号快讯

上海设专项资金支持人工智能创新发展

近日,上海市经济和信息化委员会联合上海市财政局印发了《上海市人工智能创新发展专项支持实施细则》(以下简称《细则》)。根据《细则》,专项资金重点支持的方向包括拓展...

20280
来自专栏企鹅号快讯

哪种芯片架构将成为人工智能时代的开路先锋

【IT168 评论】如果用刀来比喻芯片,通用处理器好比一把瑞士军刀,人工智能时代好比要拿刀来切肉,瑞士军刀可以拿来用,但它并非是为切肉设计的,所以效果并非最好。...

21960
来自专栏企鹅号快讯

IDC+BIM,或将带来数据中心新革命

IDC+BIM,或将带来数据中心新革命。你是选择做这场革命的推动者、追随者,还是旁观者? 一、什么是BIM? 美国国家BIM标准对BIM的定义很清晰: 1.一个...

42970
来自专栏blackheart的专栏

[程序设计语言]-01:引言

1.机器语言>汇编语言>高级语言 语言是人与人的一种交流工具,就比如我现在用汉语来写这篇博文来交流探讨技术问题;程序设计语言也是如此,只是交流对象不是人而是机器...

19160
来自专栏企鹅号快讯

抢饭碗的来了,毕业干哪行都可能没前途!

科技时代,我们更加怀念温暖邂逅的时光 全文共2553字,预计阅读时长3分钟 ? 这年头,找一份好工作简直比找对象还难,为了混口饭吃,几千万人假装在生活。但现在人...

25060
来自专栏企鹅号快讯

全球首个机器人公民索菲亚亮相2017双12知商节 引爆全场知识产权新高潮

近日,一场精彩绝伦的全球知商盛会——2017双12知商节国际知商高峰论坛在广州隆重举行。来自政界、商界、产业界、学术界的大咖齐聚一堂,面对面探讨知识产权未来发展...

20590
来自专栏企鹅号快讯

机器学习(三)——k-近邻算法基础

机器学习(三) ——k-近邻算法基础 (原创内容,转载请注明来源,谢谢) 一、概述 k近邻算法(kNN),是监督学习的一种,主要用于分类,通过测量不同特征值之间...

246100
来自专栏企鹅号快讯

TESLA V100如何让质疑GPU的流言“失声”

【IT168 评论】GPU在人工智能来临的前夜火了,很多人的眼光也聚焦到了英伟达身上,随之而来的,流言也就多了起来。有人认为,GPU在人工智能的应用存在一定的局...

25990
来自专栏企鹅号快讯

如何处理 Python 入门难以进步的现象?

如何处理 Python 入门难以进步的现象? 问题描述: 看视频看呀看呀看, 看完了,基础的都懂了 然后就想写点东西 可是无从下手呀,我以为基础不扎实,又去看视...

25360

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励