自动化机器学习是一个梦想吗?


12

当我发现机器学习时,我看到了不同的有趣技术,例如:

  • 使用以下技术自动调整算法grid search
  • 打通的相同的“类型”的不同算法的组合更准确的结果,那就是boosting
  • 通过对不同算法的组合得到更准确的结果(但不是同一个类型的算法),这就是stacking
  • 可能还有更多我仍要发现...

我的问题是:所有这些部分。但是,是否有可能将它们组合在一起,以形成一种算法,该算法通过充分利用所有技术中的优势来将输入的清洁数据作为输入并输出良好的结果?(当然,专业数据科学家的工作效率可能会降低,但他会比我更好!)如果是,您是否有示例代码,或者您知道可以做到这一点的框架吗?

编辑:经过一些答案后,似乎必须进行一些缩小。让我们举个例子,我们有一列包含分类数据,我们称之为它,y并且我们希望从X虚拟数据或实际数值数据(高度,温度)的数值数据进行预测。我们假设以前已经清洁过。是否存在可以获取此类数据并输出预测的现有算法?(通过测试多种算法,对其进行调整,增强等),如果是,它的计算效率是否很高(如果与正常算法进行比较,是否可以在合理的时间内完成计算),您是否有代码示例?


1
可能要等到强大的AI才能出现。
gung-恢复莫妮卡

1
关于自动调整,您可能对阅读机器学习中的超参数搜索感兴趣。网格搜索是优化超参数的一种糟糕方法。
马克·克莱森

2
难道 必须使用这么多的格式
Sycorax说恢复莫妮卡

2
有些产品声称它们可以满足您的描述,例如Crystal Ball。我个人不信任他们,但正如您所写:他们比
不了解

1
对于预测auto.arima(来自forecast图书馆)可能比人类更好-Rob Hyndman在演讲中多次提到。因此,在某些领域成功应用了一些“自动学习”。
蒂姆

Answers:


7

如果您事先知道要输入什么样的数据(“这些是CPG的每月销售情况,包含价格和促销标记,并且我希望获得积分预测”),那么您可以提前调整设置,这很可能是可能且已经完成,请参见各种“专家系统”以完成某些特定任务。

如果您正在寻找可以接收任何类型的数据并对其进行“有用的操作”(“啊,在这里我应该识别手写并输出邮政编码,那么我应该进行欺诈检测,并且此输入文件显然是是一项信用评分任务”),不,我认为这种情况不会长期存在。

抱歉,对于以观点为基础的问题很可能会以观点为基础的答案。


编辑以解决已编辑的问题:

yX

y


感谢您,我已经编辑了我的问题,第一部分“接受任何输入并将结果扔给我”,您的答案确实很有见地,第二部分“针对特定类型的问题和数据格式,找到我结果”。
Pholochtairze 2015年

鉴于深度学习在各种问题上的巨大成功,不确定最后一段是否仍然成立。这些方法绝对是通用的,但是它们在多个应用程序领域(例如计算机视觉和NLP)中保存记录。有人可能会争辩说,任务之间的架构有所不同,但是从理论上讲,一个完全连接的深度网络的性能至少与卷积网络一样好,只是适当的训练方法仍然难以捉摸。
马克·克莱森

@MarcClaesen:我要说的是,仍然需要特定领域的专业知识,这就是“只有适当的培训方法仍然难以捉摸”。
Stephan Kolassa,2015年

7

您所描述的内容在某种程度上已经存在,例如在AutoWEKA中,并且正在积极地进行重新组织(例如,诸如Chalearn的AutoML之的挑战)。

通常在超参数优化的子字段中考虑这一点。诸如OptunityHyperoptParamILS之类的软件包可用于自动优化给定方法的超参数,选择哪种方法恰好是最佳方法。也就是说,这样的优化问题并非微不足道,通常需要很长时间才能自动获得最佳模型(或接近最佳模型)。

您可以在http://optunity.readthedocs.org/en/latest/notebooks/notebooks/sklearn-automated-classification.html上找到使用Optunity自动确定最佳学习算法优化其超参数的示例。


4

超参数调整和集成模型的进步使模型构建失去了很多“技术”。但是,模型构建有两个重要方面,超参数调整和集成无法处理,这将使您无法找到最佳的模型。

首先,某些类型的算法更适合对某些类型的数据建模。例如,如果变量之间存在交互,则加性模型不会找到它们,但决策树会找到它们。了解模型在不同数据集上的行为方式并选择正确的数据集,可能需要有关领域的知识才能找到最佳的建模算法。

其次,特征工程和特征提取是模型构建的真正“艺术”。您的问题假设数据集已经准备好。但是,您不应该假设数据集是您要建模的最佳代表。这始终是一个开放的问题。在许多情况下,数据集很复杂,您可以整天设计功能,但是可能会给算法带来越来越多的噪音。要知道要添加的功能,您必须知道从统计角度来看哪些功能有意义,从领域专家的角度来看哪些功能有意义。

基于这两个原因,我得出的结论是,不,您将无法找到一种算法,该算法可以自动找到最佳模型。这也是为什么我对软件供应商的推销工具表示怀疑,这些工具将取代对数据科学家的需求。

但是,如果您希望从具有最佳超参数的固定模型集中找到最佳模型,而“最佳”被定义为训练集上的最高预测精度,那么可以。

签出caret软件包,R作为如何自动调整模型的示例。caret使用有缺陷的网格搜索,并且一次只能构建一个模型。但是,有一些功能可以比较模型和方便的包装器,以获取来自许多不同包装的一长串模型R


我同意,我们离全自动机器学习还有很长的路要走,但是并不是出于您指定的原因。两件事:(i)从给定的集合中找到最佳模型(+优化其超参数)已经可能的,并且(ii)由于深度学习的进步,特征工程和特征提取正在失去重要性。我们目前缺乏的主要内容是将先验知识和特定领域的常识相结合的自动化方法。
马克·克莱森

我想除了帮助(i)找到最佳模型和(ii)找到最佳功能外,“现有知识和特定领域的常识”如何才能改善机器学习过程。我试图在倒数第二段中区分真实模型和最佳模型(最大准确性)。
brandco

发现建模过程中的明显缺陷,例如错误的标签和/或信息泄漏,如何处理丢失的数据,确定实际的学习任务(加上合适的得分/损失函数)并通常进行完整的数据清除(是我参与过的所有实际问题的主要工作)。
马克·克莱森

2

取决于您问谁。

我最近在Context Relevant上听到了Scott Golder的演讲。他们的产品本质上是一个功能和模型选择机器人。基本的基础模型是逻辑回归,但是系统基本上使用机器学习来找出特征选择,降维,正则化等正确组合,以生成准确的预测。这是一次令人印象深刻的演讲,而且所有细节都是专有的。显然,他们的客户包括大型金融公司,并且该系统可以处理任意大量的数据集。

那么,至少有一些人似乎认为自动化数据科学已经存在,至少对于某些应用程序而言。而且其中一些人(与Context Relevant相关的客户)显然是通过鼻子来支付访问费用。


1

不,这不是梦。我们已经在H2O机器学习库中实现了这一点(您提到的所有技术的结合,包括堆叠的合奏)。您可以阅读有关它的更多信息,并在此处找到R和Python中的代码示例。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.