文档
  • PyCaret 3.0
  • 开始使用
    • 💻安装
    • 🚀快速入门
    • ⭐教程
    • 📶模块
    • ⚙️数据预处理
      • 数据准备
      • 缩放和转换
      • 特征工程
      • 特征选择
      • 其他 setup 参数
    • 💡函数
      • 初始化
      • 训练
      • 优化
      • 分析
      • 部署
      • 其他
  • 学习 PYCARET
    • 📖博客
      • 宣布发布 PyCaret 1.0
      • 宣布发布 PyCaret 2.0
      • 关于 PyCaret 你不知道的 5 件事
      • 构建并部署你的第一个机器学习 Web 应用
      • 在 Power BI 中使用 PyCaret 构建你自己的 AutoML
      • 在 Google Kubernetes 上部署 ML Pipeline
      • 在 AWS Fargate 上部署 PyCaret 和 Streamlit
      • 在 Power BI 中使用 PyCaret 进行异常检测
      • 在 Google Kubernetes 上部署 ML 应用
      • 在 GKE 上部署机器学习 Pipeline
      • 在 AWS Fargate 上部署机器学习 Pipeline
      • 使用 Docker 在云端部署 ML Pipeline
      • 在 Power BI 中使用 PyCaret 进行聚类分析
      • 使用 ONNX Runtime 在边缘设备上部署 PyCaret 模型
      • GitHub 是你所需最好的 AutoML
      • 在 AWS Fargate 上部署 PyCaret 和 Streamlit
      • 使用 PyCaret 和 MLflow 实现轻松 MLOps
      • 在 Power BI 中使用 PyCaret 进行聚类分析
      • 在 Alteryx 中使用 PyCaret 进行机器学习
      • 在 KNIME 中使用 PyCaret 进行机器学习
      • 在 SQL 中使用 PyCaret 进行机器学习 第一部分
      • 在 Power BI 中使用 PyCaret 进行机器学习
      • 在 Tableau 中使用 PyCaret 进行机器学习
      • 使用 PyCaret 进行多时间序列预测
      • 使用 PyCaret 预测客户流失
      • 使用 PyCaret 预测潜在客户得分(正确方法)
      • 在 Python 中使用 PyCaret 进行 NLP 文本分类
      • 使用 PyCaret 预测潜在客户得分(正确方法)
      • 使用 PyCaret 预测黄金价格暴跌
      • 使用机器学习预测黄金价格
      • PyCaret 2.1 功能摘要
      • 使用 PyCaret 将 ML 模型传输到 SQL Server
      • 使用 PyCaret 和 Gradio 提升你的 ML
      • 时间序列 101 - 入门篇
      • 使用 PyCaret 进行时间序列异常检测
      • 使用 PyCaret 回归进行时间序列预测
      • 在 Power BI 中使用 PyCaret 进行主题建模
      • 使用 PyCaret 编写和训练自定义 ML 模型
      • 使用 PyCaret 和 Streamlit 构建并部署 ML 应用
      • PyCaret 2.3.6 来啦!了解新特性?
    • 📺视频
    • 🛩️备忘单
    • ❓常见问题
    • 👩‍💻示例
  • 重要链接
    • 🛠️版本说明
    • ⚙️API 参考
    • 🙋 讨论
    • 📤问题
    • 👮 许可
  • 媒体
    • 💻Slack
    • 📺YouTube
    • 🔗LinkedIn
    • 😾GitHub
    • 🔅Stack Overflow
由 GitBook 提供支持
本页内容
  • 在 Tableau 中使用 PyCaret 进行机器学习
  • 学习目标
  • 直销业务背景
  • 开始之前
  • 直销数据
  • 提前训练模型
  • 在 PyCaret 中构建模型
  • 将模型加载到 Tableau Desktop 中
  • 将模型加载到 Tableau Prep 中
  • 将流程输出加载到 Tableau 中
  • 结束语
  • 有用链接

这有帮助吗?

  1. 学习 PYCARET
  2. 博客

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

上一页在 Power BI 中使用 PyCaret 进行机器学习下一页使用 PyCaret 进行多时间序列预测

最后更新于 2 年前

这有帮助吗?

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

一个逐步集成指南,可在几分钟内建立 ML pipeline

作者:Andrew Cowan-Nagora

是一个最近发布的开源 Python 机器学习库,可以在**低代码**环境中训练和部署机器学习模型。要了解更多关于 PyCaret 的信息,请阅读这篇文章.

本文将演示 PyCaret 如何与 Tableau Desktop 和 Tableau Prep 集成,这为分析师和数据科学家在他们的仪表板、报告和可视化中添加一层机器学习开辟了新的途径。通过减少编码所需的时间以及购买额外软件的需求,现在可以在组织中分析师已经熟悉和可用的环境中进行快速原型开发。

学习目标

  • 在 PyCaret 中训练一个监督式机器学习模型并创建一个 ML pipeline

  • 将训练好的 ML pipeline 加载到 Tableau Desktop 和 Tableau Prep 中

  • 创建一个仪表板,传达模型的见解

  • 了解如何使用 Tableau 将模型部署到生产环境

直销业务背景

这里的示例将重点介绍如何设置一个基本的直销倾向模型,该模型使用分类算法来预测哪些客户在收到短信或电子邮件优惠后最有可能发起访问。

然后将创建一个仪表板,该仪表板可以利用训练好的模型预测新营销活动可能有多成功,这对于设计促销计划的营销人员非常有价值。

通过使用 PyCaret 和 Tableau,企业可以快速建立报告产品,利用现有软件并以最少的前期开发时间持续生成预测性视图。

开始之前

所需的软件

1 — Tableau Desktop

2 — Tableau Prep

3 — Python 3.7 或更高版本

4 — PyCaret Python 库

pip install pycaret

5 — TabPy Python 库

TabPy 是 Tableau 支持的库,用于运行 Python 脚本。

TabPy (Tableau Python 服务器) 是一个分析扩展实现,通过允许用户通过 Tableau 的表计算执行 Python 脚本和已保存的函数来扩展 Tableau 的功能。

要在 Anaconda prompt 或终端中安装 TabPy,请使用以下代码。

pip install tabpy

安装后,使用以下代码以默认设置启动本地服务器。

tabpy

要将 Tableau 连接到 TabPy 服务器,请转到 帮助 > 设置和性能 > 管理分析扩展连接。选择 TabPy 并输入 localhost,端口 9004(默认),然后测试连接。

现在可以通过 Tableau 中的计算字段运行 Python 脚本,这些字段输出为表计算。

直销数据

提前训练模型

虽然可以在 Tableau 内部执行模型训练过程,但这通常不是首选方法,因为每次数据刷新或用户与视图交互时,脚本都会重新运行。这带来了问题,因为

  • 当模型用新数据重新训练时,预测可能会意外改变。

  • 持续重新运行脚本会影响仪表板的性能。

更合适的方法是在 Tableau 中使用预训练模型来对新数据生成预测。本例将使用 Jupyter Notebook 演示如何使用 PyCaret 使此过程变得简单直观。

在 PyCaret 中构建模型

在 Jupyter Notebook 中运行以下代码将训练一个朴素贝叶斯分类模型,并创建一个保存为 pickle 文件的 ML pipeline。

这些未见过的数据将用于模拟尚未收到优惠的新客户列表。当仪表板部署到生产环境时,它将连接到包含新客户信息的数据库。

请注意,在 setup 阶段,PyCaret 会执行自动预处理,在本例中,通过独热编码将特征数量从 10 个扩展到 39 个。

将模型加载到 Tableau Desktop 中

未见过的数据现在将被传递给训练好的模型,并在 Tableau Desktop 中进行标记。

操作步骤

  1. 打开 Tableau 并连接到上面代码中创建的文本文件 new_customer.csv。这仅作为示例,但理想情况下,新的或未标记的客户数据应存储在数据库中。

  1. 在新工作表中,选择 分析 > 创建计算字段 或直接在数据窗格中右键单击。输入以下代码

    SCRIPT_INT(" import pandas as pd import pycaret.classification

    nb = pycaret.classification.load_model('C:/Users/owner/Desktop/nb_direct')

    X_pred = pd.DataFrame({'recency':_arg1, 'history_segment':_arg2, 'history':_arg3, 'mens':_arg4, 'womens':_arg5,'zip_code':_arg6, 'newbie':_arg7, 'channel':_arg8, 'segment':_arg9, 'DM_category':_arg10})

    pred = pycaret.classification.predict_model(nb, X_pred) return pred['Label'].tolist()

    ", SUM([recency]), ATTR([history_segment]), SUM([history]), SUM([mens]), SUM([womens]), ATTR([zip_code]), SUM([newbie]), ATTR([channel]), ATTR([segment]), SUM([DM_category]) )

  • 脚本函数指定了计算将返回的数据类型。在本例中,它是访问的二元预测标签。

  • PyCaret 的 load_model() 函数加载之前保存的模型和转换 pipeline,该 pipeline 被保存为一个 pickle 文件。

  • X_pred 是一个数据框,它将通过 _arg1, _arg2, _arg3… 的符号将连接到 Tableau 的数据映射为输入。字段列在脚本的末尾。

  • predict_model() 函数接收训练好的模型,并对新的数据输入进行预测。注意,新数据会通过在 PyCaret setup 阶段创建的转换 pipeline(编码)进行处理。

  • 然后将标签作为列表返回,可以在 Tableau 中查看。

  1. 通过将 ID 和 Label 列拖到视图中,可以看到模型的预测结果。

重要的是要理解,输出是一个表计算,它有一些限制

  • 脚本只有在被拉入视图时才会运行。

  • 除非两者都在视图中,否则它不能作为进一步计算的基础。

  • Python 生成的数据不能附加到 Tableau 提取中。

  • 每次视图更改时脚本都会运行,这可能导致长时间等待。

这些缺点非常显著,因为当每个记录都必须包含在视图中时,仪表板选项变得有限,并且在本例中,脚本运行 3200 条记录大约需要 4 分钟。

可行的应用包括生成可以导出或生成类似下面这样的汇总视图的得分列表。

从中获得的一个见解例子可能是,消费更高的客户最有可能访问,这在业务上是合理的,但也可能是不必要折扣的迹象。

将模型加载到 Tableau Prep 中

克服直接在 Tableau Desktop 中运行脚本限制的一个很好的替代方法是使用 Tableau Prep。可以连接新数据,然后将其传递给模型,这次的不同之处在于预测标签被附加到输出中。连接到 Tableau 后,新列可以正常使用,而不是作为表计算。

操作步骤

  1. 打开 Tableau Prep 并连接到上面代码中创建的文本文件 new_customer.csv。

  1. 在流程窗格中选择文件旁边的“+”按钮,并添加脚本选项。与 Tableau Desktop 一样,使用 localhost 和 9004 连接到应该仍在后台运行的 TabPy 服务器。

创建一个函数来加载包含已保存模型和转换 pipeline 的 pickle 文件。加载到 prep 中的数据会自动保存在 df 对象中,并传递给模型。

PyCaret 输出将返回原始数据集以及两个新附加的列:Label(预测)和 Score(预测概率)。输出 schema 确保列和数据类型被正确读取到 prep 中。

然后必须将函数名称输入到 prep 中。

  1. 选择脚本图标旁边的“+”号并选择输出。可以发布为 .tde 或 .hyper 文件到 Tableau Server,这在生产环境中是首选方法,但对于本例,将把 .csv 文件发送到桌面。

在服务器环境中,可以安排流程运行时间,并在数据到达实际的 Tableau 仪表板之前自动完成评分过程。

将流程输出加载到 Tableau 中

现在可以将新标记的数据连接到 Tableau Desktop,而不会受到表计算限制和速度减慢的影响。

可以创建聚合和任何其他所需的计算,以设计一个显示各种预测指标的汇总仪表板

结束语

本文演示了 PyCaret 如何与 Tableau Desktop 和 Tableau Prep 集成,从而快速将一层机器学习添加到现有工作流中。

通过使用组织熟悉的工具和 PyCaret 库,可以在几分钟内建立完整的 ML pipeline,从而使预测分析原型快速启动。

有用链接

是一个可视分析工具,用于连接数据、构建交互式仪表板并在组织内共享见解。

提供了一个可视化界面,通过设置流程和计划来合并、清理和整形数据。

Anaconda 是一个免费、开源的 Python 编程语言发行版,用于数据科学。如果你之前没有使用过,可以在这里下载.

https://anaconda.net.cn/distribution/

要安装库,请在 Jupyter notebook 或 Anaconda prompt 中使用以下代码。

这可能需要最多 15 分钟。如果遇到任何问题,请参阅项目页面以了解已知问题。

从页面

请参考 TabPy页面了解自定义服务器选项。本文不涵盖在外部服务器和/或云上运行 TabPy 以及配置 Tableau Server,但请查看以获取更多信息。

将使用的数据集包含通过短信和电子邮件发送给客户的各种营销优惠信息。它包含 64000 条记录,组织为一个 ID 列、10 个与客户或发送的消息相关的特征以及一个指示是否发生访问的二元目标。数据可以在这里下载.

请注意,模型的 setup 和保存仅用 4 行代码即可完成。完整的 notebook 可以在这里下载.

包含训练好的模型和 pipeline 的 Pickle 文件

这仅触及了 PyCaret 内置功能的皮毛,因此强烈建议查阅分类和在 PyCaret 网站上。本文不涵盖所选模型的具体细节。

接下来,需要创建以下 python 脚本并使用浏览选项连接到 prep。它可以在这里下载.

请注意 label 和 score 列如何附加到原始数据集。选择“run flow”来生成输出。流程文件可以在这里下载.

一旦数据和 ML pipeline 建立,营销人员和高管将能够快速跟踪即将开展的营销活动潜在的表现,只需最少的干预。包含示例仪表板和先前脚本的 Tableau 文件可以在这里下载.

📖
PyCaret
公告
Tableau Desktop
Tableau Prep
这里
PyCaret
GitHub
GitHub
GitHub
这里
这里
这里
模块
教程
这里
这里
这里
PyCaret
PyCaret: 用户指南和文档
PyCaret: 教程
PyCaret: Youtube
LinkedIn