AutoML 工作流程2025年3月17日 | 阅读 8 分钟 什么是自动化机器学习?自动化机器学习(AutoML)是将机器学习应用于现实世界问题并实现自动化的一个分支。它有助于使机器学习任务对机器学习专家、研究人员以及数据科学和机器学习方面专业知识较少的人员来说更简单、更易于访问。AutoML 提供各种工具和实践来自动化机器学习模型的选择和微调过程。 自动化机器学习的主要目标是使机器学习这个分支对机器学习爱好者以及那些正在探索数据科学以构建和部署更有效模型的人来说更容易、更熟悉。AutoML 有助于减少构建高效机器学习模型所需的时间和精力。 AutoML 的工作原理AutoML 是一个开源库,有助于简化从探索数据集、处理数据到部署机器学习模型的整个机器学习过程和任务。在传统的机器学习过程中,开发模型的每个过程都是单独完成的。但AutoML 会自动定位机器学习算法,然后使用具有优化解决方案的最佳模型。 AutoML 中选择和实现模型的过程涉及两个不同的概念:
Python 提供了 AutoML 库,用于自动化机器学习过程。可以使用以下命令在 Python 中安装它: 传统机器学习的工作流程从识别问题陈述开始,然后进行数据预处理,包括数据清理、特征工程等,训练数据集并选择最佳模型,然后通过可视化预测结果。这个过程漫长且迭代,耗时很长。需要多次实验和迭代才能达到最佳模型和解决方案。 AutoML 的工作流程从数据收集和预处理开始。然后,它将探索数据并选择最适合目标值与其属性之间关系的最佳算法。 让我们研究一下 AutoML 所涉及的不同步骤。这包括:
数据加载这是 AutoML 的第一步,用于以适当的支持形式加载和读取数据,然后分析数据以检查其是否可用于进一步处理。此步骤也称为数据摄取。它包括数据探索、检查数据集中是否存在空值,并确保数据可用于机器学习任务。 重要的是要考虑,如果模型具有足够的标记数据,则可以使用许多AutoML 工具。因此,此阶段还保证了拥有足够的数据来训练一个强大的模型。 数据预处理数据处理是 AutoML 过程的第二步。它包括将原始数据转换为干净的格式。数据准备或数据预处理包括不同的技术,如数据去重、检查空值、用合适的值替换、缩放和标准化数据。此步骤可确保数据质量,以便用于模型构建。 特征工程此步骤包括用于构建模型的特征选择。它说明了如何提取和处理特征或数据,以及采样和洗牌。 特征工程或数据工程过程可以手动完成,也可以借助深度学习技术自动完成,这些技术可以自动从数据集中提取特征。 数据采样是**将数据集分割**成不同部分的过程:**训练和测试数据。**AutoML 会**随机选择**数据集的某些部分用作训练数据。 数据洗牌包括在训练之前**重新排列原始数据中的数据块**形成多个序列的过程。 模型选择这是第四步,在此步骤中AutoML 选择最佳模型以进行模型构建和训练。 某些模型在特定数据集或特定目标(例如二元分类或时间序列预测)上可能表现更好。当有许多模型时,确定您需要从数据集中获取哪些详细信息以及您的目标至关重要。AutoML 工具会自动选择合适的模型。为此,一些系统采用了一种名为神经架构搜索的尖端技术。 模型训练然后,下一步是**训练模型**。有许多机器学习模型,每个模型都有自己独特的超参数集。一些机器学习模型包括线性回归、决策树、随机森林、神经网络和深度神经网络模型。 不同的模型在数据上进行训练,并选择**准确率最高的最佳模型**进行进一步的改进或调整,从而进行部署。 超参数调整为了提高AutoML 的性能,需要调整超参数。这被称为超参数优化。AutoML 必须为不同的超参数生成预测并选择最佳的。 部署一旦模型构建并修改完成,部署训练好的模型可能会具有挑战性,尤其是在通常需要大量数据工程活动的大规模系统中。 另一方面,AutoML 系统能够通过利用关于如何将模型部署到各种系统和上下文的内置知识,直接建立机器学习管道。 AutoML 中的工具有各种工具用于自动化机器学习过程。它们是:
让我们来了解一下使用 AutoKeras 实现 AutoML 程序 1:一个用于通过数据集预测花的 AutoML 工具实现程序。1. 导入库和数据集 代码 2. 分割数据集 代码 输出 Found 3670 files belonging to 5 classes. Using 2936 files for training. Found 3670 files belonging to 5 classes. Using 917 files for validation. 说明 我们已将数据集分割为测试、训练和验证数据。我们为图像设置了固定大小,可用于训练和预测。我们将20% 的数据**用于训练**,**25% 作为验证数据**。我们发现总共有3670 个文件,其中2936 个用于训练,917 个用于验证。 3. 构建和训练模型 代码 输出 Trial 1 Complete [00h 54m 52s] val_loss: 0.40751439332962036 Best val_loss So Far: 0.40751439332962036 Total elapsed time: 00h 54m 52s INFO:tensorflow:Oracle triggered exit Epoch 1/8 74/74 [==============================] - 534s 7s/step - loss: 0.9473 - accuracy: 0.4101 Epoch 2/8 74/74 [==============================] - 479s 6s/step - loss: 0.3521 - accuracy: 0.6104 Epoch 3/8 74/74 [==============================] - 519s 7s/step - loss: 0.2737 - accuracy: 0.7296 Epoch 4/8 74/74 [==============================] - 485s 7s/step - loss: 0.1841 - accuracy: 0.8535 Epoch 5/8 74/74 [==============================] - 485s 7s/step - loss: 0.1091 - accuracy: 0.9363 Epoch 6/8 74/74 [==============================] - 484s 7s/step - loss: 0.0769 - accuracy: 0.9656 Epoch 7/8 74/74 [==============================] - 453s 6s/step - loss: 0.0742 - accuracy: 0.9700 Epoch 8/8 74/74 [==============================] - 484s 7s/step - loss: 0.0593 - accuracy: 0.9796 INFO:tensorflow:Assets written to: .\image_classifier\best_model\asset 说明 我们使用Auto Keras Image Classifier 模型进行了8 个 epoch 的数据训练,这使得如此庞大的数据集的训练变得非常容易和快速。 4. 模型评估 代码 输出 说明 在这里,我们使用图像分类器(Auto Keras 模型)评估了测试数据。 5. 模型预测
代码 输出 JPEG (320, 240) RGB None (200, 200) RGB ![]() 说明 我们已从数据集中加载了一个样本图像。然后,我们使用训练时设置的大小调整了该图像的大小。Image.open() 中的图像路径将是样本图像的路径。
代码 输出 1/1 [==============================] - 0s 219ms/step 1/1 [==============================] - 0s 57ms/step [['dandelion']] 说明 最后,我们使用 predict 函数预测出该图像是**蒲公英**。 AutoML 的优势使用 AutoML 构建和部署机器学习模型有很多好处。它们包括:
AutoML 的缺点
|
我们请求您订阅我们的新闻通讯以获取最新更新。