AutoML 的优点可归纳为三大要点:
- 通过自动执行的重复性任务来 提高工作效率。这使得数据科学家能够更多地关注问题而不是模型。
- 自动化 ML 管道还有助于 避免 可能因手动引入的 错误。
- 最后,AutoML 是向 机器学习民主化 迈出的一步,它使所有人都能使用 ML 的功能。
AutoML 框架
让我们来看看一些流行的框架,这些框架的趋势是自动化部分或整个机器学习的管道。这个清单不可能太详尽,我尽力涵盖那些正在被大规模使用的框架。
MLBox 是一个功能强大的自动化机器学习 Python 库。根据官方文档,该库提供以下功能:
- 快速读取,分布式数据预处理 / 清洗 / 格式化。
- 高可靠性的特征选择,泄漏检测,准确的 超参数优化
- 用于分类和回归的最先进的预测模型(深度学习,堆叠,LightGBM,......)
- 具有模型解释的预测
- 已经在 Kaggle 上进行了测试并且表现良好。(参见 Kaggle “Two Sigma Connect:Rental ListingInquiries”| Rank:85/2488)
MLBox 的主程序包包含 3 个子包,用于自动执行以下任务:
- 预处理:用于读取和预处理数据
- 优化: 用于测试和 交叉验证 模型
- 预测: 用于预测。
安装
目前,MLBox 仅兼容 Linux,很快就会支持 Windows 和 MacOS。
#gcc
sudo apt-get install build-essential
#cmake
pip install cmake
pip install mlbox
演示
在著名的 房价 回归(House Prices Regression)问题上运行“MLBox”的自动 ML 包。
完整的源代码:https://www.kaggle.com/axelderomblay/running-mlbox-auto-ml-package-on-house-prices
Auto-Sklearn
Auto-Sklearn 是一个基于 Scikit-learn 构建的自动化机器学习软件包。Auto-Sklearn 让机器学习的用户从算法选择和超参数调整中解放出来。它包括 特征工程 方法,如独热编码(One-Hot)、数字特征标准化、PCA 等。该模型使用 sklearn 估计器处理分类和回归问题。
基于树的管道优化工具(TPOT)
TPOT 是一个 Python 自动化机器学习工具,利用遗传算法来优化机器学习管道。TPOT 扩展了 Scikit-learn 框架,使用了自己的回归器和分类器方法。TPOT 的工作原理是探索数千条可能的管道,并为数据找到最好的一个。
H2O
H2O 是 H20.ai 公司的完全开源的分布式内存机器学习平台。H20 同时支持 R 和 Python,支持最广泛使用的统计和机器学习算法,包括梯度提升(Gradient Boosting)机器、广义线性模型、深度学习模型等。
H2O 包括一个自动机器学习模块,使用自己的算法来构建管道。它对特征工程方法和模型超参数采用了穷举搜索,优化了管道。
H2O 自动化了一些最复杂的数据科学和机器学习工作,例如特征工程、模型验证、模型调整、模型选择 和 模型部署。除此之外,它还提供了自动可视化以及机器学习的解释能力(MLI)。
AutoKeras
Auto-Keras 是 DATA Lab 构建的一个用于自动化机器学习的开源软件库。基于 Keras 深度学习框架,Auto-Keras 提供了自动搜索深度学习模型的体系结构和超参数的功能。
API 的设计遵循 Scikit-Learn API 的经典设计,因此使用起来非常简单。当前版本提供了在深度学习过程中自动搜索超参数的功能。
Auto-Keras 的趋势是通过使用自动 神经架构搜索(NAS)算法简化 ML 过程。NAS 基本上用一组自动调整模型的算法,替代了深度学习工程师 / 从业者。
Cloud AutoML
Cloud AutoML 是来自 Google 的一套机器学习产品,利用 Google 最先进的 迁移学习 和神经架构搜索(NAS)技术,让具有有限的机器学习专业知识的开发人员能够训练出特定的业务需求的高质量模型。
Cloud AutoML 提供了一个简单的图形用户界面(GUI),可根据自己的数据来训练、评估、改进和部署模型。目前,该套件提供以下 AutoML 解决方案:
TransmogrifAI
TransmogrifAI 是 Salesforce 的一个开源自动化机器学习库。该公司的旗舰 ML 平台名为 爱因斯坦,也由 TransmogrifAI 驱动。它是一个端到端的 AutoML 库,用于 Scala 编写的结构化数据,运行在 Apache Spark 之上。在以下场景中,TransmogrifAI 特别有用:
快速训练高质量机器学习模型,只需极少的手动调节
构建模块化、可重用、强类型的机器学习工作流
AutoML 的未来
从本质上讲,AutoML 的目的是自动化重复的任务,如管道创建和超参数调整,以便数据科学家在实际中可以将更多的时间花在手头的业务问题上。
AutoML 还在于让所有人都能使用这项技术,而不仅仅少数人才能用。AutoML 和数据科学家可以联合起来加速 ML 的发展过程,从而实现机器学习的真正效率。
AutoML 是否成功取决于它的使用率和在这个领域所取得的进展。很明显,AutoML 是机器学习未来的一个重要组成部分。