Azure机器学习教程:使用SDK训练你的第一个模型

Azure机器学习教程:使用SDK训练你的第一个模型

MachineLearningNotebooks Python notebooks with ML and deep learning examples with Azure Machine Learning Python SDK | Microsoft MachineLearningNotebooks 项目地址: https://gitcode.com/gh_mirrors/ma/MachineLearningNotebooks

前言

在Azure机器学习服务中训练模型是数据科学工作流的核心环节。本教程将带你使用Azure机器学习Python SDK完成从数据准备到模型训练的全过程,并展示如何利用Azure机器学习的工作区(Workspace)和实验(Experiment)功能来有效管理机器学习实验。

准备工作

在开始本教程前,你需要确保已完成以下准备工作:

  1. 已创建Azure机器学习工作区
  2. 已设置好开发环境(如本地Python环境或云笔记本环境)
  3. 已安装azureml-core等必要的Python包

连接工作区并创建实验

首先我们需要连接到Azure机器学习工作区:

from azureml.core import Workspace
ws = Workspace.from_config()

from_config()方法会从当前目录的config.json文件中读取工作区配置信息。如果是在云笔记本环境中运行,这个文件通常会自动放在根目录下。

接下来创建一个实验:

from azureml.core import Experiment
experiment = Experiment(workspace=ws, name="diabetes-experiment")

实验是Azure机器学习中的一个重要概念,它代表一组相关的模型运行(称为"runs")。通过实验,我们可以组织和跟踪模型训练过程。

数据准备

本教程使用糖尿病数据集,该数据集包含年龄、性别、BMI等特征,目标是预测糖尿病进展程度:

from azureml.opendatasets import Diabetes
from sklearn.model_selection import train_test_split

x_df = Diabetes.get_tabular_dataset().to_pandas_dataframe().dropna()
y_df = x_df.pop("Y")

X_train, X_test, y_train, y_test = train_test_split(x_df, y_df, test_size=0.2, random_state=66)

我们使用Azure开放数据集(Azure Open Datasets)获取数据,并将其拆分为训练集和测试集。

模型训练

我们将训练一个Ridge回归模型,并测试不同的alpha超参数值:

from sklearn.linear_model import Ridge
from sklearn.metrics import mean_squared_error
import joblib
import math

alphas = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]

for alpha in alphas:
    run = experiment.start_logging()
    run.log("alpha_value", alpha)
    
    model = Ridge(alpha=alpha)
    model.fit(X=X_train, y=y_train)
    y_pred = model.predict(X=X_test)
    rmse = math.sqrt(mean_squared_error(y_true=y_test, y_pred=y_pred))
    run.log("rmse", rmse)
    
    model_name = "model_alpha_" + str(alpha) + ".pkl"
    filename = "outputs/" + model_name
    
    joblib.dump(value=model, filename=filename)
    run.upload_file(name=model_name, path_or_stream=filename)
    run.complete()

这段代码完成了以下重要操作:

  1. 为每个alpha值创建一个独立的运行(run)
  2. 记录alpha值和模型评估指标(RMSE)
  3. 保存模型文件并上传到运行记录中
  4. 完成运行

查看实验结果

训练完成后,我们可以查看实验对象获取Azure机器学习工作室的链接:

experiment

在Azure机器学习工作室中,你可以:

  1. 查看所有运行的汇总信息
  2. 比较不同超参数配置的性能
  3. 可视化训练指标
  4. 下载训练好的模型文件

获取最佳模型

除了通过UI界面,我们也可以通过代码获取表现最好的模型:

minimum_rmse_runid = None
minimum_rmse = None

for run in experiment.get_runs():
    run_metrics = run.get_metrics()
    run_details = run.get_details()
    run_rmse = run_metrics["rmse"]
    run_id = run_details["runId"]
    
    if minimum_rmse is None:
        minimum_rmse = run_rmse
        minimum_rmse_runid = run_id
    else:
        if run_rmse < minimum_rmse:
            minimum_rmse = run_rmse
            minimum_rmse_runid = run_id

print("Best run_id: " + minimum_rmse_runid)
print("Best run_id rmse: " + str(minimum_rmse))

然后下载最佳模型:

from azureml.core import Run
best_run = Run(experiment=experiment, run_id=minimum_rmse_runid)
best_run.download_file(name="model_alpha_0.1.pkl")

资源清理

完成实验后,记得清理不再使用的资源以避免产生额外费用:

  1. 停止不再使用的计算资源
  2. 删除不需要的实验和模型
  3. 如果确定不再使用,可以删除整个资源组

总结

通过本教程,你学会了:

  1. 如何连接Azure机器学习工作区并创建实验
  2. 使用Azure开放数据集加载数据
  3. 训练模型并记录实验指标
  4. 在Azure机器学习工作室中查看和分析实验结果
  5. 以编程方式获取最佳模型

这些基础技能为后续更复杂的机器学习工作流打下了坚实基础。

MachineLearningNotebooks Python notebooks with ML and deep learning examples with Azure Machine Learning Python SDK | Microsoft MachineLearningNotebooks 项目地址: https://gitcode.com/gh_mirrors/ma/MachineLearningNotebooks

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巫清焘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值