跳到主要内容

在 Alteryx 中使用 PyCaret 进行机器学习

在 Alteryx 中使用 PyCaret 进行机器学习

通过 PyCaret 在 Alteryx Designer 中训练和部署机器学习模型的逐步教程

介绍

在本教程中,我将向您展示如何使用 PyCaret(一种Python中的开源、低代码机器学习库)在非常流行的ETL工具 Alteryx 中训练和部署机器学习流程。本教程的学习目标包括:

👉 什么是 PyCaret 以及如何入门?

👉 什么是 Alteryx Designer 以及如何设置?

👉 在 Alteryx Designer 中训练端到端的机器学习流程,包括数据准备(如缺失值填充、独热编码、缩放、转换等)。

👉 部署训练好的流程,并在ETL过程中生成推断。

PyCaret

PyCaret 是一个内置于 Python 中的开源、低代码机器学习库和端到端模型管理工具,用于自动化机器学习工作流程。PyCaret 以易用性、简单性以及快速高效地构建和部署端到端机器学习流程而闻名。要了解更多关于 PyCaret 的信息,请访问他们的 GitHub

Alteryx Designer

Alteryx Designer 是由 **Alteryx** 开发的专有工具,用于自动化分析的每一个步骤,包括数据准备、混合、报告、预测分析和数据科学。您可以访问任何数据源、文件、应用程序或数据类型,并体验到一个拥有260多个拖放构建块的自助服务平台的简单性和强大性。您可以从这里下载 Alteryx Designer 的一个月免费试用版本。

https://www.alteryx.com

教程前提条件:

在本教程中,您需要两样东西。第一样是 Alteryx Designer,这是一个桌面软件,您可以从这里下载。第二样是 Python。获取 Python 最简单的方法是下载 Anaconda Distribution。要下载,请点击这里

👉我们现在准备好了

打开 Alteryx Designer,然后点击 文件 → 新建工作流

Alteryx Designer 中的新建工作流

在顶部,有一些工具,您可以将其拖放到画布上,并通过连接每个组件来执行工作流。

数据集

在本教程中,我使用了 PyCaret 仓库中名为 insurance 的回归数据集。您可以从这里下载数据。

示例数据集

我将创建两个独立的 Alteryx 工作流。第一个用于模型训练和选择,第二个用于使用训练好的流程对新数据进行评分

👉 模型训练和选择

让我们首先从**输入数据工具**中读取 CSV 文件,然后是一个**Python 脚本**。在 Python 脚本中执行以下代码:

# 安装 pycaret
from ayx import Package
Package.installPackages('pycaret')

# 从输入数据工具中读取数据
from ayx import Alteryx
data = Alteryx.read("#1")

# 初始化设置,准备数据
from pycaret.regression import *
s = setup(data, target = 'charges', silent=True)

# 模型训练和选择
best = compare_models()

# 存储结果,打印并保存
results = pull()
results.to_csv('c:/users/moezs/pycaret-demo-alteryx/results.csv', index = False)
Alteryx.write(results, 1)

# 完成最佳模型并保存
best_final = finalize_model(best)
save_model(best_final, 'c:/users/moezs/pycaret-demo-alteryx/pipeline')

该脚本从 pycaret 中导入回归模块,然后初始化设置函数,该函数自动处理 train_test_split 和所有数据准备任务,如缺失值填充、缩放、特征工程等。compare_models 使用 kfold 交叉验证训练和评估所有估算器,并返回最佳模型。

pull 函数调用模型性能指标作为一个数据框,然后将其保存为 results.csv 文件,并写入 Alteryx 中 Python 工具的第一个锚点(这样您就可以在屏幕上查看结果)。

最后,save_model 将整个转换流程(包括最佳模型)保存为 pickle 文件。

训练工作流程 当您成功执行此工作流时,将生成pipeline.pkl和results.csv文件。您还可以在屏幕上查看最佳模型的输出以及它们的交叉验证指标。

results.csv文件包含以下内容:

这些是所有模型的交叉验证指标。在这种情况下,最佳模型是_Gradient Boosting Regressor_。

👉 模型评分

现在我们可以使用pipeline.pkl对新数据集进行评分。由于我没有一个单独的没有标签的insurance.csv数据集,我将删除目标列即_charges_,然后使用训练好的pipeline生成预测结果。

评分工作流程

我使用了Select Tool来删除目标列_charges_。在Python脚本中执行以下代码:

# 从输入工具读取数据
from ayx import Alteryx
data = Alteryx.read("#1")

# 加载pipeline
from pycaret.regression import load_model, predict_model
pipeline = load_model('c:/users/moezs/pycaret-demo-alteryx/pipeline')

# 生成预测结果并保存为csv
predictions = predict_model(pipeline, data)
predictions.to_csv('c:/users/moezs/pycaret-demo-alteryx/predictions.csv', index=False)

# 在Alteryx中显示
Alteryx.write(predictions, 1)

当您成功执行此工作流时,将生成predictions.csv文件。

predictions.csv

即将推出!

下周我将深入探讨PyCaret的更高级功能,您可以在Alteryx中使用这些功能来增强您的机器学习工作流程。如果您想自动收到通知,可以关注我的MediumLinkedInTwitter

PyCaret — 图片来自作者

PyCaret — 图片来自作者

使用这个轻量级的Python工作流自动化库,您可以实现无限的可能。如果您觉得有用,请不要忘记在我们的GitHub存储库上给我们一个⭐️。

要了解更多关于PyCaret的信息,请在LinkedInYoutube上关注我们。

加入我们的slack频道。邀请链接在这里

重要链接

文档 博客 GitHub StackOverflow 安装PyCaret Notebook教程 为PyCaret做贡献

更多与PyCaret相关的教程:

在 KNIME 中使用 PyCaret 进行机器学习 _一步一步指南,使用 PyCaret 在 KNIME 中训练和部署端到端的机器学习流程_towardsdatascience.com 使用 PyCaret + MLflow 实现简单的 MLOps _一个适合初学者的、一步一步的教程,教你如何在机器学习实验中集成 MLOps_towardsdatascience.com 使用 PyCaret 编写和训练自定义机器学习模型 towardsdatascience.com 使用 PyCaret 构建,使用 FastAPI 部署 _一个适合初学者的、一步一步的教程,教你如何使用 PyCaret 和 FastAPI 构建端到端的机器学习流程_towardsdatascience.com 使用 PyCaret 进行时间序列异常检测 _一个逐步教程,使用 PyCaret 对时间序列数据进行无监督异常检测_towardsdatascience.com 使用 PyCaret 和 Gradio 加速机器学习实验 _一个逐步教程,快速开发和交互式地与机器学习流程进行交互_towardsdatascience.com 使用 PyCaret 进行多时间序列预测 _一个逐步教程,使用 PyCaret 对多个时间序列进行预测_towardsdatascience.com