自动机器学习(AutoML)是一种自动化流程,旨在实现从数据摄取到模型预测的整个机器学习过程。通过AutoML,即使是不具备机器学习专业知识的人也能轻松地建立有效的模型。本文介绍了几种流行的AutoML框架,并探讨了它们如何通过自动化部分或全部机器学习管道来简化任务。
Mercari是一款在日本非常流行的购物应用,它一直在使用谷歌的AutoML Vision来对上传的照片进行分类。据Mercari称,他们自己训练的模型在品牌识别上达到了75%的精度,而AutoML Vision的高级模型则凭借5万张训练图片达到了91.3%的精度,提高了约16%。鉴于这一显著成果,Mercari已将AutoML集成到其系统中。
AutoML通过使不同背景的人都能开发出机器学习模型,从而改变了人们对基于机器学习解决方案的看法,Mercari的应用实例就是最好的证明。
近年来,机器学习在各个领域都取得了重大进展。金融服务、医疗保健、零售业、交通等领域都在不同程度上运用了机器学习系统,并取得了良好的效果。然而,尽管机器学习系统的成功案例越来越多,许多公司在部署这些模型时仍然面临困难。首要问题在于需要建立一支由经验丰富的数据科学家组成的团队,而这需要大量的资金投入。AutoML为解决这一问题提供了可能,它尽可能地自动化了机器学习管道,从而降低了人力需求。
AutoML的主要优势可以概括为以下几点: - 提高工作效率:通过自动执行重复性任务,数据科学家可以专注于更关键的问题。 - 减少错误:自动化流程有助于避免人工操作中可能出现的错误。 - 推动机器学习的普及:AutoML使得更多人能够利用机器学习技术,促进了技术的民主化。
MLBox是一个强大的自动化机器学习Python库,它提供了快速的数据预处理、特征选择、超参数优化等功能。它已经在Kaggle竞赛中得到了验证,并且表现优异。
MLBox包含三个主要组件:数据预处理、模型优化和预测。
目前,MLBox仅兼容Linux系统,未来会支持Windows和MacOS。
bash
sudo apt-get install build-essential
pip install cmake
pip install mlbox
在房价回归问题上使用MLBox的自动机器学习功能。
Auto-Sklearn是一个基于Scikit-learn构建的自动化机器学习软件包。它能够自动选择算法并调整超参数,还支持特征工程方法,如独热编码、数字特征标准化等。
Auto-Sklearn通过贝叶斯优化来自动选择和优化模型。它结合了元学习和自动集成技术,以进一步提高性能。
Auto-Sklearn目前仅适用于Linux系统。
bash
curl https://raw.githubusercontent.com/automl/auto-sklearn/master/requirements.txt | xargs -n 1 -L 1 pip install
pip install auto-sklearn
使用Auto-Sklearn拟合简单的回归模型。
TPOT是一个基于遗传算法的Python自动化机器学习工具,它扩展了Scikit-learn框架,能够探索数千种可能的管道并找到最佳的模型。
TPOT通过遗传算法寻找最优的机器学习管道,但无法处理自然语言输入和分类字符串。
bash
pip install tpot
使用TPOT进行MNIST数字分类任务。
H2O是一个完全开源的分布式内存机器学习平台,支持R和Python,提供广泛的统计和机器学习算法。H2O包括一个自动机器学习模块,能够自动化特征工程、模型验证、模型选择和部署。
请访问H2O的官方文档下载并安装。
使用H2OAutoML类进行模型训练和评估。
AutoKeras是一个基于Keras的开源软件库,用于自动化搜索深度学习模型的架构和超参数。它设计遵循Scikit-Learn API,易于使用。
bash
pip install autokeras
在MNIST数据集上使用AutoKeras进行训练和评估。
Cloud AutoML是Google推出的一系列机器学习产品,利用Google先进的迁移学习和神经架构搜索技术,帮助开发者训练出符合特定业务需求的高质量模型。它提供了一个图形用户界面,方便用户训练、评估、改进和部署模型。
TransmogrifAI是Salesforce开发的一个开源自动化机器学习库,主要用于结构化数据的处理。它运行在Apache Spark之上,特别适合快速训练高质量模型,且只需要少量的手动调节。
先决条件是安装Java和Spark。
bash
git clone https://github.com/salesforce/TransmogrifAI.git
cd TransmogrifAI && ./gradlew compileTestScala installDist
使用TransmogrifAI预测泰坦尼克号的幸存者。
AutoML的核心目标是自动化重复的任务,如管道创建和超参数调整,从而让数据科学家能够更加专注于业务问题。随着AutoML的广泛应用和技术的进步,它将成为机器学习领域的重要组成部分,推动机器学习技术的普及和发展。