OpenMLOps实战用Jupyter、MLFlow和Prefect训练你的第一个葡萄酒质量预测模型【免费下载链接】OpenMLOps项目地址: https://gitcode.com/gh_mirrors/op/OpenMLOpsOpenMLOps是一个强大的开源机器学习运维平台它集成了Jupyter、MLFlow和Prefect等工具帮助数据科学家和开发者轻松构建、训练和部署机器学习模型。本文将带你一步步使用OpenMLOps平台通过Jupyter进行数据处理和模型训练利用MLFlow跟踪实验结果并借助Prefect实现工作流自动化最终完成一个葡萄酒质量预测模型的构建。准备工作获取OpenMLOps项目首先你需要将OpenMLOps项目克隆到本地环境。打开终端执行以下命令git clone https://gitcode.com/gh_mirrors/op/OpenMLOps克隆完成后你可以在项目目录中找到丰富的教程和示例资源我们将在后续步骤中用到这些资源。数据准备探索葡萄酒数据集在开始训练模型之前我们需要获取并了解用于训练的数据。OpenMLOps的教程中提供了一个葡萄酒质量数据集包含了多种葡萄酒的理化指标和对应的质量评分。从图中可以看到数据集包含了固定酸度、挥发性酸度、柠檬酸、残留糖分等多个特征以及最后一列的质量评分。我们的目标是根据这些特征预测葡萄酒的质量。你可以在项目的tutorials/wine-quality.ipynb文件中找到完整的数据分析和预处理代码。模型训练使用Jupyter构建预测模型Jupyter是OpenMLOps平台中用于交互式开发的核心工具。通过Jupyter你可以方便地编写代码、可视化数据并训练模型。1. 启动Jupyter环境按照项目文档中的说明启动Jupyter服务后创建一个新的Python notebook。首先导入必要的库from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score from sklearn.model_selection import train_test_split from sklearn.linear_model import ElasticNet import pandas as pd import numpy as np2. 数据获取与预处理使用以下代码从UCI机器学习数据库获取葡萄酒质量数据def fetch_data(): csv_url http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv data pd.read_csv(csv_url, sep;) return data data fetch_data() data.head()3. 模型训练与评估我们使用ElasticNet模型进行训练并定义评估指标def eval_metrics(actual, pred): rmse np.sqrt(mean_squared_error(actual, pred)) mae mean_absolute_error(actual, pred) r2 r2_score(actual, pred) return rmse, mae, r2 def train_model(data, alpha0.5, l1_ratio0.5): train, test train_test_split(data) train_x train.drop([quality], axis1) test_x test.drop([quality], axis1) train_y train[[quality]] test_y test[[quality]] lr ElasticNet(alphaalpha, l1_ratiol1_ratio, random_state42) lr.fit(train_x, train_y) predicted_qualities lr.predict(test_x) rmse, mae, r2 eval_metrics(test_y, predicted_qualities) print(Elasticnet model (alpha%f, l1_ratio%f): % (alpha, l1_ratio)) print( RMSE: %s % rmse) print( MAE: %s % mae) print( R2: %s % r2)实验跟踪用MLFlow管理模型训练过程MLFlow是OpenMLOps中用于实验跟踪和模型管理的重要组件。它可以帮助你记录不同实验的参数、指标和模型结果方便比较和复现。1. 创建MLFlow实验访问MLFlow界面点击Create Experiment按钮创建一个名为Wine Quality Prediction的实验。2. 修改代码以集成MLFlow在训练函数中添加MLFlow相关代码用于记录实验参数、指标和模型import mlflow def train_model(data, mlflow_experiment_id, alpha0.5, l1_ratio0.5): mlflow.set_tracking_uri(http://mlflow.mlflow:5000) train, test train_test_split(data) train_x train.drop([quality], axis1) test_x test.drop([quality], axis1) train_y train[[quality]] test_y test[[quality]] with mlflow.start_run(experiment_idmlflow_experiment_id): lr ElasticNet(alphaalpha, l1_ratiol1_ratio, random_state42) lr.fit(train_x, train_y) predicted_qualities lr.predict(test_x) (rmse, mae, r2) eval_metrics(test_y, predicted_qualities) print(Elasticnet model (alpha%f, l1_ratio%f): % (alpha, l1_ratio)) print( RMSE: %s % rmse) print( MAE: %s % mae) print( R2: %s % r2) mlflow.log_param(alpha, alpha) mlflow.log_param(l1_ratio, l1_ratio) mlflow.log_metric(rmse, rmse) mlflow.log_metric(r2, r2) mlflow.log_metric(mae, mae) mlflow.sklearn.log_model(lr, model)3. 运行实验并查看结果使用不同的参数运行多次实验然后在MLFlow界面中查看结果train_model(data, mlflow_experiment_id1, alpha0.3, l1_ratio0.3) train_model(data, mlflow_experiment_id1, alpha0.5, l1_ratio0.5)从结果中可以清晰地看到不同参数组合下模型的性能指标帮助你选择最佳模型。工作流自动化用Prefect实现模型训练流程Prefect是OpenMLOps中的工作流管理工具它可以帮助你自动化机器学习流程实现定期数据获取、模型训练和评估。1. 定义Prefect任务将数据获取和模型训练函数转换为Prefect任务from prefect import task task def fetch_data(): csv_url http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv data pd.read_csv(csv_url, sep;) return data task def train_model(data, mlflow_experiment_id, alpha0.5, l1_ratio0.5): # 训练模型的代码同上2. 创建Prefect工作流定义一个完整的工作流包含数据获取和模型训练步骤并设置调度间隔from prefect import Flow, Parameter from prefect.schedules import IntervalSchedule from datetime import timedelta schedule IntervalSchedule(intervaltimedelta(minutes2)) with Flow(train-wine-quality-model, schedule) as flow: data fetch_data() train_model(datadata, mlflow_experiment_id1, alpha0.3, l1_ratio0.3)3. 部署和运行工作流将工作流部署到Prefect服务器它将按照设定的调度自动运行。在Prefect界面中你可以查看工作流的执行情况和依赖关系。这个简单的DAG有向无环图展示了我们的工作流先执行数据获取任务然后执行模型训练任务。总结与下一步通过本文的实战教程你已经学会了如何使用OpenMLOps平台中的Jupyter、MLFlow和Prefect工具来构建一个葡萄酒质量预测模型。你可以在modules/目录中找到更多关于这些工具的配置和部署细节。下一步你可以尝试优化模型参数提高预测 accuracy探索其他机器学习算法如随机森林或神经网络学习如何将训练好的模型部署到生产环境可参考tutorials/deploy-model-seldon.mdOpenMLOps提供了一个完整的机器学习运维生态系统帮助你从数据探索到模型部署的全流程管理。开始你的机器学习之旅吧【免费下载链接】OpenMLOps项目地址: https://gitcode.com/gh_mirrors/op/OpenMLOps创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
OpenMLOps实战:用Jupyter、MLFlow和Prefect训练你的第一个葡萄酒质量预测模型
OpenMLOps实战用Jupyter、MLFlow和Prefect训练你的第一个葡萄酒质量预测模型【免费下载链接】OpenMLOps项目地址: https://gitcode.com/gh_mirrors/op/OpenMLOpsOpenMLOps是一个强大的开源机器学习运维平台它集成了Jupyter、MLFlow和Prefect等工具帮助数据科学家和开发者轻松构建、训练和部署机器学习模型。本文将带你一步步使用OpenMLOps平台通过Jupyter进行数据处理和模型训练利用MLFlow跟踪实验结果并借助Prefect实现工作流自动化最终完成一个葡萄酒质量预测模型的构建。准备工作获取OpenMLOps项目首先你需要将OpenMLOps项目克隆到本地环境。打开终端执行以下命令git clone https://gitcode.com/gh_mirrors/op/OpenMLOps克隆完成后你可以在项目目录中找到丰富的教程和示例资源我们将在后续步骤中用到这些资源。数据准备探索葡萄酒数据集在开始训练模型之前我们需要获取并了解用于训练的数据。OpenMLOps的教程中提供了一个葡萄酒质量数据集包含了多种葡萄酒的理化指标和对应的质量评分。从图中可以看到数据集包含了固定酸度、挥发性酸度、柠檬酸、残留糖分等多个特征以及最后一列的质量评分。我们的目标是根据这些特征预测葡萄酒的质量。你可以在项目的tutorials/wine-quality.ipynb文件中找到完整的数据分析和预处理代码。模型训练使用Jupyter构建预测模型Jupyter是OpenMLOps平台中用于交互式开发的核心工具。通过Jupyter你可以方便地编写代码、可视化数据并训练模型。1. 启动Jupyter环境按照项目文档中的说明启动Jupyter服务后创建一个新的Python notebook。首先导入必要的库from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score from sklearn.model_selection import train_test_split from sklearn.linear_model import ElasticNet import pandas as pd import numpy as np2. 数据获取与预处理使用以下代码从UCI机器学习数据库获取葡萄酒质量数据def fetch_data(): csv_url http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv data pd.read_csv(csv_url, sep;) return data data fetch_data() data.head()3. 模型训练与评估我们使用ElasticNet模型进行训练并定义评估指标def eval_metrics(actual, pred): rmse np.sqrt(mean_squared_error(actual, pred)) mae mean_absolute_error(actual, pred) r2 r2_score(actual, pred) return rmse, mae, r2 def train_model(data, alpha0.5, l1_ratio0.5): train, test train_test_split(data) train_x train.drop([quality], axis1) test_x test.drop([quality], axis1) train_y train[[quality]] test_y test[[quality]] lr ElasticNet(alphaalpha, l1_ratiol1_ratio, random_state42) lr.fit(train_x, train_y) predicted_qualities lr.predict(test_x) rmse, mae, r2 eval_metrics(test_y, predicted_qualities) print(Elasticnet model (alpha%f, l1_ratio%f): % (alpha, l1_ratio)) print( RMSE: %s % rmse) print( MAE: %s % mae) print( R2: %s % r2)实验跟踪用MLFlow管理模型训练过程MLFlow是OpenMLOps中用于实验跟踪和模型管理的重要组件。它可以帮助你记录不同实验的参数、指标和模型结果方便比较和复现。1. 创建MLFlow实验访问MLFlow界面点击Create Experiment按钮创建一个名为Wine Quality Prediction的实验。2. 修改代码以集成MLFlow在训练函数中添加MLFlow相关代码用于记录实验参数、指标和模型import mlflow def train_model(data, mlflow_experiment_id, alpha0.5, l1_ratio0.5): mlflow.set_tracking_uri(http://mlflow.mlflow:5000) train, test train_test_split(data) train_x train.drop([quality], axis1) test_x test.drop([quality], axis1) train_y train[[quality]] test_y test[[quality]] with mlflow.start_run(experiment_idmlflow_experiment_id): lr ElasticNet(alphaalpha, l1_ratiol1_ratio, random_state42) lr.fit(train_x, train_y) predicted_qualities lr.predict(test_x) (rmse, mae, r2) eval_metrics(test_y, predicted_qualities) print(Elasticnet model (alpha%f, l1_ratio%f): % (alpha, l1_ratio)) print( RMSE: %s % rmse) print( MAE: %s % mae) print( R2: %s % r2) mlflow.log_param(alpha, alpha) mlflow.log_param(l1_ratio, l1_ratio) mlflow.log_metric(rmse, rmse) mlflow.log_metric(r2, r2) mlflow.log_metric(mae, mae) mlflow.sklearn.log_model(lr, model)3. 运行实验并查看结果使用不同的参数运行多次实验然后在MLFlow界面中查看结果train_model(data, mlflow_experiment_id1, alpha0.3, l1_ratio0.3) train_model(data, mlflow_experiment_id1, alpha0.5, l1_ratio0.5)从结果中可以清晰地看到不同参数组合下模型的性能指标帮助你选择最佳模型。工作流自动化用Prefect实现模型训练流程Prefect是OpenMLOps中的工作流管理工具它可以帮助你自动化机器学习流程实现定期数据获取、模型训练和评估。1. 定义Prefect任务将数据获取和模型训练函数转换为Prefect任务from prefect import task task def fetch_data(): csv_url http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv data pd.read_csv(csv_url, sep;) return data task def train_model(data, mlflow_experiment_id, alpha0.5, l1_ratio0.5): # 训练模型的代码同上2. 创建Prefect工作流定义一个完整的工作流包含数据获取和模型训练步骤并设置调度间隔from prefect import Flow, Parameter from prefect.schedules import IntervalSchedule from datetime import timedelta schedule IntervalSchedule(intervaltimedelta(minutes2)) with Flow(train-wine-quality-model, schedule) as flow: data fetch_data() train_model(datadata, mlflow_experiment_id1, alpha0.3, l1_ratio0.3)3. 部署和运行工作流将工作流部署到Prefect服务器它将按照设定的调度自动运行。在Prefect界面中你可以查看工作流的执行情况和依赖关系。这个简单的DAG有向无环图展示了我们的工作流先执行数据获取任务然后执行模型训练任务。总结与下一步通过本文的实战教程你已经学会了如何使用OpenMLOps平台中的Jupyter、MLFlow和Prefect工具来构建一个葡萄酒质量预测模型。你可以在modules/目录中找到更多关于这些工具的配置和部署细节。下一步你可以尝试优化模型参数提高预测 accuracy探索其他机器学习算法如随机森林或神经网络学习如何将训练好的模型部署到生产环境可参考tutorials/deploy-model-seldon.mdOpenMLOps提供了一个完整的机器学习运维生态系统帮助你从数据探索到模型部署的全流程管理。开始你的机器学习之旅吧【免费下载链接】OpenMLOps项目地址: https://gitcode.com/gh_mirrors/op/OpenMLOps创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考