项目的自动 ML 与手动 ML

数据挖掘 机器学习 深度学习 数据挖掘 预测建模 自动
2022-03-06 05:23:38

最近有人向我介绍了一个基于genetic programming名为的 AUTO ML 库tpot感谢@Noah Weber。我有几个问题

1)当我们有AUTO ML时,为什么人们通常花时间在Feature selection或预处理等?我的意思是他们至少减少了搜索空间/特征空间

2)我的意思是,它们至少在一定程度上减少了我们的工作,我们可以从 AUTO ML 解决方案的输出中工作,并在需要时进一步调整。我们实际上不必通过手动键入我们可能需要的值范围来执行 gridsearchCV。对?

3)它有什么缺点吗?我知道这可能是黑匣子,但对于数据分析,它们不是更容易吗?计算机科学家,可能不喜欢它。当然,我们需要一些知识才能微调模型、解释结果等

4) 与 AUTO ML 相比,进行手动 ML 的优势是什么

5)我们是否有可能进一步改进结果?我的意思是一旦我们得到 Auto ML 的输出

你能帮我理解这个吗?

2个回答

1) 特征选择应由 AutoML 完成,另一方面,预处理通常由用户完成,以便对数据有意义。

2) AutoML 负责超参数化。

3)我主要发现的缺点是计算量非常大。从我在 Kaggle 中看到的情况来看,大多数获胜的解决方案都使用手动 ML,而不是 AutoML。

4)对我来说,其中一个优点是有时它会找到一个我没有尝试(或想过)的好算法,并且它避免了我花费一些编码时间。此外,它碰巧可以很好地组合不同的模型。

5) 您可以在自己身边进行手动 ML,然后与您的个人 ML 模型和 AutoML 进行集成。这并不能保证改进,但它可以提高你的表现。

您可以查看H20 AutoML,我引用了文档,我相信它在这种情况下会有所帮助,以便对它有一个直觉:

尽管 H2O 让非专家很容易尝试机器学习,但仍然需要相当多的数据科学知识和背景来产生高性能的机器学习模型。众所周知,深度神经网络对于非专家来说很难正确调整。为了让机器学习软件真正可供非专家使用,我们设计了一个易于使用的界面,该界面可以自动化训练大量候选模型的过程。H2O 的 AutoML 也可以成为高级用户的有用工具,它提供了一个简单的包装函数来执行大量与建模相关的任务,这些任务通常需要多行代码,并让他们腾出时间专注于其他方面数据科学管道任务,例如数据预处理,

您还可以查看 Bojan Tunguz 的博客,他在其中定义了 AutoML 的各个阶段:

  • 0级:没有自动化。您编写自己的 ML 算法。从头开始。在 C++ 中。

  • 级别 1:使用高级算法 API。Sklearn、Keras、Pandas、H2O、XGBoost 等。

  • 第 2 级:自动超参数调整和集成。基本型号选择。

  • 第 3 级:自动(技术)特征工程和特征选择、技术数据增强、GUI。

  • 第 4 级:自动领域和特定问题的特征工程、数据增强和数据集成。

  • 第 5 级:完全 ML 自动化。能够在没有任何输入或指导的情况下提出解决机器学习难题的超人策略。与人类用户的完全对话式交互。

没有一种适合所有解决方案的尺寸。

AutoML 很酷,但您不会使用它获得量身定制的最佳解决方案。

原因是 DS 有一个“艺术”组件。当然理论上你可以把所有东西放在一个巨大的优化框架中并找到最佳参数,但实际上这将永远存在。也许有了量子计算机,这会改变,但目前我们必须使用一些启发式方法、理论和以前的经验来将最优配置归零。

因此,您可以使用它来帮助您思考,甚至​​质疑它,但如果您正在制作量身定制的解决方案,您将无法使用 autoML 获得最佳结果。根据不同的领域,这可能意味着很多。例如,F1 分数差异为 0.2+- 可能意味着数百万美元的欺诈费用。你真的想尽量减少这种情况。