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

机器算法验证 机器学习 算法 助推 堆叠 自动算法
2022-03-13 00:47:09

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

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

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

编辑:在一些答案之后,似乎必须进行一些缩小。举个例子,我们有一列包含分类数据,我们称之为它y,我们想从X虚拟数据或真实数字数据(高度、温度)的数字数据中预测它。我们假设之前已经完成了清洁工作。是否存在可以获取此类数据并输出预测的现有算法?(通过测试多种算法,调整它们,提升等)如果是,它是否具有计算效率(如果我们与普通算法相比,计算是否在合理的时间内完成),你有代码示例吗?

4个回答

如果您事先知道您将输入什么样的数据(“这些是 CPG 的月销售额,带有价格和促销标记,我想要一个点预测”),那么您可以提前调整您的设置,这可能是可能并且已经完成,请参阅某些特定任务的各种“专家系统”。

如果您正在寻找可以获取任何类型的数据并用它做“有用的事情”的东西(“啊,这里我应该识别手写并输出邮政编码,我应该在那里进行欺诈检测,这个输入文件显然是一项信用评分任务”),不,我认为这不会在很长一段时间内发生。

很抱歉,对于很可能作为基于意见的问题而关闭的问题的基于意见的答案。


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

我们有一列包含分类数据,我们称它为,我们想从数字数据中预测它,它可以是虚拟数据,也可以是真实的数字数据yX

这听起来像是随机森林实际上非常擅长的事情。再说一次,像 RFs 这样的“通用”算法可能永远不会击败预先调整到特定类型的算法,例如手写数字或信用违约风险。y

您所描述的内容在某种程度上已经存在,例如在AutoWEKA中,并且正在积极研究中(例如Chalearn 的 AutoML等挑战)。

这通常在超参数优化的子领域中考虑。OptunityHyperoptParamILS等软件包可用于自动优化给定方法的超参数,选择最佳方法。也就是说,此类优化问题并非微不足道,通常需要很长时间才能自动获得最佳模型(或接近最佳模型)。

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

超参数调整和集成模型的进步正在从模型构建中提取很多“艺术”。但是,模型构建的两个重要方面是超参数调整和集成无法处理的,并且会阻止您找到可能的最佳模型。

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

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

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

但是,如果您正在缩小从一组固定模型中找到最佳模型的野心,具有最佳超参数,其中“最佳”被定义为训练集上的最高预测精度,那么是的,这是可能的。

查看caret包中R的示例,了解如何自动调整模型。caret使用网格搜索,它有缺陷,一次只构建一个模型。但是,有一些功能可以比较来自许多不同包的一长串模型的模型和方便的包装R

取决于你问谁。

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

因此,至少有几个人似乎认为自动化数据科学已经存在,至少对于某些应用程序而言。其中一些人(Context Relevant 的客户)显然是为了访问它而付出了代价。