自动机器学习系统有哪些有趣之处?哪些框架适合AutoML?当前有哪些限制?本文将解答这些问题。
假设我们有一个数据集,希望从中构建一个预测模型。传统机器学习方法需要执行以下一系列操作: - 初步数据处理 - 确定关键特征,构造新特征 - 选择合适的模型 - 调整超参数 - 使用最佳参数进行训练
这一过程可能相当耗时。为了取得更好的结果,我们需要反复测试假设,并不断优化每一步骤。
自动机器学习(AutoML)的目标是简化这些步骤,甚至全部自动化,同时保证预测的准确性。理想的AutoML策略应该能够让任何用户获取原始数据,建立机器学习模型,并以最高的准确性(针对可用样本)进行预测。
这是否意味着不需要数据分析师了呢?当然不是。AutoML技术旨在消除常规操作和手动模型选择,从而让专家能够投入更多时间解决更复杂的问题。
让我们回顾一下机器学习的各个阶段。例如,在准备数据时,可能需要自动化: - 确定各列的数据类型(数值、文本、布尔值等) - 语义内容分析(例如,如果该字段是文本,那么它代表什么:姓名、日期、地理位置等) - 任务检测(聚类、排序等)
特别是在寻找最佳模型超参数的过程中,最常用的两种方法是: - 网格搜索 - 随机搜索
这些方法仅适用于少数超参数。还有其他优化参数的方法,如贝叶斯优化、模拟退火、退火算法等。
接下来,我们介绍几种流行的AutoML框架:
MLBox MLBox专注于数据预处理、模型选择和超参数搜索。相比在Mac或Windows系统上,它在Linux系统上的安装更为简便。
Auto Sklearn 顾名思义,Auto Sklearn是基于流行的scikit-learn库构建的。它可以实现特征描述、模型选择和超参数设定。Auto Sklearn在处理小数据集方面表现良好,但在处理大规模数据集时效果一般。
TPOT TPOT是一个完全自动化的机器学习管道框架,使用遗传算法寻找最佳模型。与Auto Sklearn类似,它也是scikit-learn的扩展,但拥有自己的回归和分类算法。缺点包括它不能与自然语言交互。
H2O H2O AutoML支持传统的机器学习模型和神经网络,尤其适合那些寻找自动化深度学习方法的人。
Auto Keras Auto Keras遵循经典的scikit-learn API设计,但使用强大的神经网络库Keras来搜索模型参数。
Cloud AutoML Cloud AutoML利用神经网络架构,提供一个简单的用户界面来学习和部署模型。不过,该平台是收费的,更适合商业项目。对于研究目的,可以在一年内免费使用有限制的版本。
Uber Ludwig Uber Ludwig项目旨在用最少的代码实现深度学习过程的自动化。该框架仅适用于深度学习模型,而忽略其他经典机器学习模型。数据量依然是深度学习中一个重要因素。
总之,AutoML在教育领域已经取得了显著成果,尤其是在使用高质量标记数据的情况下。然而,在处理复杂的原始数据和优化特征工程(如特征选择)时,AutoML技术仍然面临挑战。