赞
踩
模型的选择和超参数的调节等等任务对于机器学习算法的开发者来说是一件繁琐的工作,为了使得机器可以自动地设计模型并调优,自动机器学习AutoML便应运而生。
自动化机器学习也称为自动化 ML 或 AutoML,是将机器学习模型开发过程中耗时的反复性任务自动化的过程。 它的主要作用是降低构建和部署机器学习模型的门槛,通过自动执行一系列任务,例如特征选择、模型选择、超参数调优等等,AutoML能够有效地减少人工干预的需求,并提高模型的性能。
AutoML主要是基于神经网络结构搜索(Neural Architecture Search,NAS),通过该算法实现模型的自动生成,其中主要涉及到搜索空间和搜索策略,然后对生成模型的性能进行自动评估。目前NAS在图像分类、目标检测、语音识别、自然语言处理的各种模型中被广泛使用。
使用AutoML通常包括以下步骤:
下面对Auto-Sklearn、AutoKeras、AutoGluon、Google AutoML和Azure自动机器学习共五种AutoML工具进行介绍。
Auto-Sklearn是一个流行的AutoML工具,它建立在Scikit-Learn库之上,提供了自动化模型选择和调优的功能。在实际使用中,可能需要根据数据的特征进行更详细的配置,例如选择不同的度量标准、调整模型的搜索空间等。Auto-Sklearn提供了许多配置选项,允许用户更灵活地定制自动化过程。此外,还可以通过Auto-Sklearn的API访问模型的详细信息,以便更好地了解所选择的最佳模型。更多详细内容可以参考官方Github网站。
Python代码示例:使用Auto-Sklearn对手写数字数据集(Digits)进行分类,可以根据你的任务替换为自己的数据集。请注意,time_left_for_this_task和per_run_time_limit参数用于限制Auto-Sklearn的运行时间。
# 安装Auto-Sklearn
!pip install auto-sklearn
# 导入必要的库
import autosklearn.classification
from sklearn.model_selection import train_test_split
from sklearn import datasets
# 加载示例数据集(如果没有,可以替换为自己的数据集)
X, y = datasets.load_digits(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
# 创建并训练Auto-Sklearn分类器
automl_classifier = autosklearn.classification.AutoSklearnClassifier(time_left_for_this_task=120, per_run_time_limit=30)
automl_classifier.fit(X_train, y_train)
# 在测试集上评估模型性能
accuracy = automl_classifier.score(X_test, y_test)
print(f"Accuracy: {accuracy}")
# 获取Auto-Sklearn所选用的模型信息
print(automl_classifier.show_models())
AutoKeras是一个基于Keras的开源AutoML框架,由Texas A&M大学开发,上手简单,可以尝试各种结构的神经网络结构。更多详细内容可以参考官方Github网站。
Python代码的一个简单示例:
# 安装autokeras
pip install autokeras
# 导入autokeras库
import autokeras as ak
# 创建模型
clf = ak.ImageClassifier()
# 模型训练
clf.fit(x_train, y_train)
# 模型测试
results = clf.predict(x_test)
AutoGluon是另一个开源的AutoML框架,由Apache MXNet社区(亚马逊)开发,上手非常简单,且功能强大。它旨在简化机器学习模型的训练和部署过程,使用户能够轻松构建高性能的模型,而无需深度专业知识。它与更多关注模型和超参数选择的其他AutoML框架不同,AutoGluon可以通过集成多个模型并使它们堆叠在多个层中而获得更优异的表现。更多详细内容可以参考官方Github网站。
Python代码示例:假设你有一个用于二分类的表格数据集,其中class列是目标标签。AutoGluon会自动选择合适的模型并优化超参数,然后返回在测试集上的性能指标和预测结果。
# 安装AutoGluon
!pip install autogluon
# 导入AutoGluon相关模块
from autogluon import TabularPrediction as task
# 加载示例数据集(如果没有,可以替换为自己的数据集)
train_data = task.Dataset('https://autogluon.s3.amazonaws.com/datasets/Inc/train.csv')
test_data = task.Dataset('https://autogluon.s3.amazonaws.com/datasets/Inc/test.csv')
# 定义任务类型为二分类
predictor = task.fit(train_data=train_data, label='class', problem_type='binary')
# 在测试集上评估模型性能
performance = predictor.evaluate(test_data)
# 打印性能指标
print(performance)
# 进行预测
predictions = predictor.predict(test_data)
print(predictions)
Google Cloud AutoML是Google Cloud平台上的一项服务,它提供了强大的自动机器学习功能。请注意,使用Google AutoML需要Google Cloud账户,并且可能涉及费用。以下是开发步骤:
以下是一个简化的Python示例:演示如何使用Google AutoML Vision进行图像分类任务。
from google.cloud import automl_v1beta1
from google.cloud.automl_v1beta1.proto import service_pb2
# 替换为你的项目ID、模型ID和文件路径
project_id = "your-project-id"
model_id = "your-model-id"
file_path = "path/to/your/image.jpg"
# 创建AutoML客户端
client = automl_v1beta1.AutoMlClient()
# 构建模型路径
model_full_id = f"projects/{project_id}/locations/us-central1/models/{model_id}"
# 读取图像文件
with open(file_path, "rb") as content_file:
content = content_file.read()
# 构建图像内容
image = automl_v1beta1.Image(image_bytes=content)
# 构建预测请求
payload = service_pb2.PredictRequest.Params()
payload.image.image_bytes = content
payload = {"image": payload}
request = automl_v1beta1.PredictRequest(name=model_full_id, payload=payload)
# 发送预测请求
response = client.predict(request=request)
# 解析预测结果
for result in response.payload:
print(f"Predicted class: {result.display_name}")
print(f"Confidence: {result.classification.score}")
Azure自动机器学习是微软开发的AutoML框架。如图所示,在训练期间,Azure 自动机器学习会创建多个尝试不同算法和参数的并行管道。 该服务将迭代与特征选择配对的 ML 算法,每次迭代都会生成带有训练评分的模型。 要优化的指标的分数越好,模型就越被视为“适合”数据。 一旦达到试验中定义的退出条件,机器学习就会停止。
Azure自动机器学习框架可以适用于分类、回归、时序预测、计算机视觉和自然语言处理。其中:
自动化机器学习支持默认已启用的系综模型。 系综学习通过组合多个模型而不是使用单个模型,来改善机器学习结果和预测性能。 系综迭代显示为作为的最后一个迭代。 自动化机器学习使用投票和堆叠系综方法来组合模型:
此外, 在 Azure 自动机器学习中,应用缩放和规范化技术来简化特征工程(特征工程是使用数据领域知识创建有助于优化机器学习算法学习效果的特征的过程)。
上述关于Azure自动机器学习的内容参考官方网站,在此仅介绍了它的相关原理和功能,前往官方网站查看更多详细内容,例如,如何安装Azure、数据预处理、模型训练与测试、模型部署、可视化以及监视模型等等,并提供了详细的代码示例。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。