文档
  • PyCaret 3.0
  • 开始入门
    • 💻安装
    • 🚀快速入门
    • ⭐教程
    • 📶模块
    • ⚙️数据预处理
      • 数据准备
      • 缩放和转换
      • 特征工程
      • 特征选择
      • 其他设置参数
    • 💡函数
      • 初始化
      • 训练
      • 优化
      • 分析
      • 部署
      • 其他
  • 学习 PYCARET
    • 📖博客
      • 宣布 PyCaret 1.0
      • 宣布 PyCaret 2.0
      • 关于 PyCaret 你不知道的 5 件事
      • 构建和部署你的第一个机器学习 Web 应用
      • 在 Power BI 中使用 PyCaret 构建你自己的 AutoML
      • 在 Google Kubernetes 上部署机器学习管道
      • 在 AWS Fargate 上部署 PyCaret 和 Streamlit
      • 在 Power BI 中使用 PyCaret 进行异常检测
      • 在 Google Kubernetes 上部署机器学习应用
      • 在 GKE 上部署机器学习管道
      • 在 AWS Fargate 上部署机器学习管道
      • 使用 Docker 在云上部署机器学习管道
      • 在 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 预测潜在客户分数(正确方法)
      • 使用 PyCaret 在 Python 中进行 NLP 文本分类
      • 使用 PyCaret 预测潜在客户分数(正确方法)
      • 使用 PyCaret 预测黄金价格暴跌
      • 使用机器学习预测黄金价格
      • PyCaret 2.1 特性总结
      • 使用 PyCaret 将机器学习模型部署到 SQL Server
      • 使用 PyCaret 和 Gradio 为你的机器学习加速
      • 时间序列 101 - 入门者必看
      • 使用 PyCaret 进行时间序列异常检测
      • 使用 PyCaret 回归进行时间序列预测
      • 在 Power BI 中使用 PyCaret 进行主题建模
      • 使用 PyCaret 编写和训练自定义机器学习模型
      • 使用 PyCaret 和 Streamlit 构建和部署机器学习应用
      • PyCaret 2.3.6 来了!了解新特性?
    • 📺视频
    • 🛩️备忘单
    • ❓常见问题
    • 👩‍💻示例
  • 重要链接
    • 🛠️发行说明
    • ⚙️API 参考
    • 🙋 讨论
    • 📤问题
    • 👮 许可证
  • 媒体
    • 💻Slack
    • 📺YouTube
    • 🔗LinkedIn
    • 😾GitHub
    • 🔅Stack Overflow
由 GitBook 提供支持
本页内容
  • 在 Power BI 中使用 PyCaret 进行机器学习
  • PyCaret 1.0.0
  • Microsoft Power BI
  • 开始之前
  • 设置环境
  • 📘 示例 1 — 在 Power BI 中进行聚类分析
  • 📘 示例 2 — 在 Power BI 中进行异常检测
  • 📘 示例 3 — 自然语言处理
  • 📘 示例 4 — 在 Power BI 中进行关联规则挖掘
  • 📘 示例 5 — 在 Power BI 中进行分类
  • 📘 示例 6 — 在 Power BI 中进行回归分析
  • 下一个教程
  • 另请参阅
  • 开发管道中有哪些内容?
  • 想了解特定模块?
  • 重要链接

这有帮助吗?

  1. 学习 PYCARET
  2. 博客

在 Power BI 中使用 PyCaret 进行机器学习

上一篇在 SQL 中使用 PyCaret 进行机器学习 第一部分下一篇在 Tableau 中使用 PyCaret 进行机器学习

最后更新于 2 年前

这有帮助吗?

在 Power BI 中使用 PyCaret 进行机器学习

在 Power BI 中几分钟内实现机器学习的逐步教程

作者:Moez Ali

机器学习遇见商业智能

PyCaret 1.0.0

阅读本文后,你将学习如何在 Power BI 中实现以下功能

  • 聚类分析 — 将具有相似特征的数据点分组。

  • **异常检测** — 识别数据中的罕见观测值/异常值。

  • **自然语言处理** — 通过 主题建模分析文本数据。

  • **关联规则挖掘** — 发现数据中有趣的关系。

  • **分类** — 预测二元(1 或 0)的分类标签。

  • **回归分析** — 预测连续值,如销售额、价格等

“PyCaret 正在通过为业务分析师、领域专家、公民数据科学家和经验丰富的数据科学家提供免费、开源、低代码的机器学习解决方案,从而普及机器学习和高级分析的应用。”

Microsoft Power BI

开始之前

设置环境

在 Power BI 中开始使用 PyCaret 的机器学习功能之前,我们需要创建一个虚拟环境并安装 pycaret。这是一个三步过程:

从开始菜单打开 **Anaconda Prompt** 并运行以下代码

conda create --name **myenv** python=3.6

在 Anaconda Prompt 中运行以下代码

conda activate **myenv**
pip install pycaret

安装可能需要 10 – 15 分钟。

创建的虚拟环境必须与 Power BI 关联。这可以通过 Power BI Desktop 的全局设置完成(文件 → 选项 → 全局 → Python 脚本)。Anaconda 环境默认安装在

C:\Users*用户名*\AppData\Local\Continuum\anaconda3\envs\myenv

📘 示例 1 — 在 Power BI 中进行聚类分析

聚类分析是一种机器学习技术,用于将具有相似特征的数据点分组。这些分组对于探索数据、识别模式和分析数据子集非常有用。聚类分析的一些常见商业用例如下:

✔ 为营销目的进行客户细分。

✔ 为促销和折扣分析客户购买行为。

✔ 在流行病爆发(如 COVID-19)中识别地理聚类。

K-均值聚类

为了训练聚类模型,我们将在 Power Query 编辑器中执行 Python 脚本(Power Query 编辑器 → 转换 → 运行 Python 脚本)。

将以下代码作为 Python 脚本运行

from **pycaret.clustering **import *****
dataset = **get_clusters**(data = dataset)

输出

原始表将附加一个包含标签的新列 **“Cluster”**。

应用查询后(Power Query 编辑器 → 主页 → 关闭并应用),你可以在 Power BI 中如下可视化聚类结果

默认情况下,PyCaret 会训练一个包含 4 个簇的 K-均值聚类模型(即表中的所有数据点都被分为 4 组)。可以轻松更改默认值

  • 要更改簇的数量,可以在 **get_clusters( )** 函数中使用参数 ***num_clusters***。

  • 要更改模型类型,可以在 get_clusters( ) 函数中使用参数 ***model***。

请看以下训练包含 6 个簇的 K-模式模型的示例代码

from **pycaret.clustering **import *
dataset = **get_clusters**(dataset, model = 'kmodes', num_clusters = 6)

PyCaret 中有 9 种开箱即用的聚类算法可用

💡 在本示例中,我们使用 **get_clusters( )** 函数在原始表中分配簇标签。每次刷新查询时,都会重新计算簇。另一种实现方法是使用 predict_model( ) 函数,使用在 Python 或 Power BI 中训练好的**预训练模型**来预测簇标签(请参阅下面的示例 5,了解如何在 Power BI 环境中训练机器学习模型)。

📘 示例 2 — 在 Power BI 中进行异常检测

异常检测是一种机器学习技术,通过检查与大多数行显著不同的表格行来识别罕见项、事件或观测值。通常,异常项会转化为某种问题,例如银行欺诈、结构缺陷、医疗问题或错误。异常检测的一些常见商业用例如下:

✔ 使用财务数据进行欺诈检测(信用卡、保险等)。

✔ 入侵检测(系统安全、恶意软件)或监控网络流量的峰值和下降。

✔ 识别数据集中的多元异常值。

K 近邻异常检测器

类似于聚类分析,我们将从 Power Query 编辑器(转换 → 运行 Python 脚本)运行 Python 脚本来训练异常检测模型。将以下代码作为 Python 脚本运行

from **pycaret.anomaly **import *****
dataset = **get_outliers**(data = dataset)

输出

原始表将附加两个新列。标签(1 = 异常值,0 = 正常值)和分数(得分高的数据点被归类为异常值)。

应用查询后,你可以在 Power BI 中如下可视化异常检测的结果

默认情况下,PyCaret 会训练一个 K-近邻异常检测器,其异常值比例为 5%(即表中总行数的 5% 将被标记为异常值)。可以轻松更改默认值

  • 要更改比例值,可以在 **get_outliers( )** 函数中使用参数 ***fraction***。

  • 要更改模型类型,可以在 get_outliers( ) 函数中使用参数 ***model***。

请看以下训练异常值比例为 0.1 的孤立森林模型的代码

from **pycaret.anomaly **import *
dataset = **get_outliers**(dataset, model = 'iforest', fraction = 0.1)

PyCaret 中有超过 10 种开箱即用的异常检测算法可用

💡 在本示例中,我们使用 **get_outliers( )** 函数分配异常值标签和得分进行分析。每次刷新查询时,都会重新计算异常值。另一种实现方法是使用 predict_model( ) 函数,使用在 Python 或 Power BI 中训练好的预训练模型来预测异常值(请参阅下面的示例 5,了解如何在 Power BI 环境中训练机器学习模型)。

📘 示例 3 — 自然语言处理

有几种技术用于分析文本数据,其中**主题建模**是一种流行的方法。主题模型是一种统计模型,用于发现文档集合中的抽象主题。主题建模是发现文本数据中隐藏语义结构的常用文本挖掘工具。

隐狄利克雷分配

在 Power Query 编辑器中将以下代码作为 Python 脚本运行

from **pycaret.nlp **import *****
dataset = **get_topics**(data = dataset, text = 'en')

‘en’ 是表 ‘kiva’ 中包含文本的列的名称。

输出

代码执行后,原始表将附加包含主题权重和主导主题的新列。在 Power BI 中可视化主题模型输出的方法有很多。请看下面的示例

默认情况下,PyCaret 会训练一个包含 4 个主题的隐狄利克雷分配模型。可以轻松更改默认值

  • 要更改主题数量,可以在 **get_topics( )** 函数中使用参数 ***num_topics***。

  • 要更改模型类型,可以在 get_topics( ) 函数中使用参数 ***model***。

请看以下训练包含 10 个主题的非负矩阵分解模型的示例代码

from **pycaret.nlp **import *
dataset = **get_topics**(dataset, 'en', model = 'nmf', num_topics = 10)

PyCaret 提供以下开箱即用的主题建模算法

📘 示例 4 — 在 Power BI 中进行关联规则挖掘

关联规则挖掘是一种**基于规则的机器学习**技术,用于发现数据库中变量之间的有趣关系。它旨在利用兴趣度度量识别强规则。关联规则挖掘的一些常见商业用例如下:

✔ 市场购物篮分析,了解经常一起购买的商品。

✔ 医疗诊断,协助医生根据因素和症状确定疾病发生的概率。

Apriori 算法

现在应该清楚了,所有 PyCaret 函数都在 Power Query 编辑器中作为 Python 脚本执行(转换 → 运行 Python 脚本)。运行以下代码使用 Apriori 算法训练关联规则模型

from **pycaret.arules** import *
dataset = **get_rules**(dataset, transaction_id = 'InvoiceNo', item_id = 'Description')

‘InvoiceNo’ 是包含交易 ID 的列,‘Description’ 包含感兴趣的变量,即产品名称。

输出

📘 示例 5 — 在 Power BI 中进行分类

分类是一种监督机器学习技术,用于预测分类类别标签(也称为二元变量)。分类的一些常见商业用例如下:

✔ 预测客户贷款/信用卡违约。

✔ 预测客户流失(客户是留下还是离开)

✔ 预测患者结果(患者是否有疾病)

目标: 表格 ‘employee’ 包含公司中 15,000 名在职员工的信息,如在公司工作的时间、平均月工作小时数、晋升历史、部门等。基于所有这些列(在机器学习术语中也称为特征),目标是预测员工是否会离开公司,这由列 **‘left’** 表示(1 表示是,0 表示否)。

与聚类、异常检测和自然语言处理等属于无监督机器学习范畴的示例不同,分类是一种**监督**技术,因此它分两部分实现:

第 1 部分:在 Power BI 中训练分类模型

第一步是在 Power Query 编辑器中创建一个表格 ‘employee’ 的副本,用于训练模型。

在新创建的复制表 ‘employee (model training)’ 中运行以下代码以训练分类模型

# import classification module and setup environment

from **pycaret.classification **import *****
clf1 = **setup**(dataset, target = 'left', silent = True)

# train and save xgboost model

xgboost = **create_model**('xgboost', verbose = False)
final_xgboost = **finalize_model**(xgboost)
**save_model**(final_xgboost, 'C:/Users/*username*/xgboost_powerbi')

输出

此脚本的输出将是一个保存到指定位置的 **pickle 文件**。该 pickle 文件包含整个数据转换管道以及训练好的模型对象。

PyCaret 中有 18 种开箱即用的分类算法可用

第 2 部分:使用训练好的模型生成预测

现在我们可以使用训练好的模型在原始的 **‘employee’** 表格上预测员工是否会离开公司(1 或 0)以及概率百分比。将以下代码作为 Python 脚本运行以生成预测

from **pycaret.classification** import *****
xgboost = **load_model**('c:/users/*username*/xgboost_powerbi')
dataset = **predict_model**(xgboost, data = dataset)

输出

原始表将附加两个新列。‘Label’ 列表示预测结果,‘Score’ 列表示结果的概率。

在本示例中,我们仅为演示目的在用于训练模型的同一数据上进行了预测。在实际场景中,‘Left’ 列是实际结果,在预测时是未知的。

在本教程中,我们训练了一个极端梯度提升(‘xgboost’)模型并用它生成预测。这样做只是为了简化。实际上,你可以使用 PyCaret 来预测任何类型的模型或模型链。

📘 示例 6 — 在 Power BI 中进行回归分析

**回归分析**是一种监督机器学习技术,用于在给定过去数据及其相应的过去结果的情况下,以最佳方式预测连续结果。与用于预测二元结果(例如是或否 (1 或 0))的分类分析不同,回归分析用于预测连续值,例如销售额、价格、数量等。

目标: 表格 ‘boston’ 包含波士顿 506 套房屋的信息,例如平均房间数、房产税率、人口等。基于这些列(在机器学习术语中也称为特征),目标是预测房屋的中位数价值,由列 ‘medv’ 表示。

第 1 部分:在 Power BI 中训练回归模型

第一步是在 Power Query 编辑器中创建一个表格 ‘boston’ 的副本,用于训练模型。

在新的复制表中将以下代码作为 Python 脚本运行

# import regression module and setup environment

from **pycaret.regression **import *****
clf1 = **setup**(dataset, target = 'medv', silent = True)

# train and save catboost model

catboost = **create_model**('catboost', verbose = False)
final_catboost = **finalize_model**(catboost)
**save_model**(final_catboost, 'C:/Users/*username*/catboost_powerbi')

输出

此脚本的输出将是一个保存到指定位置的 **pickle 文件**。该 pickle 文件包含整个数据转换管道以及训练好的模型对象。

PyCaret 中有超过 20 种开箱即用的回归算法可用

第 2 部分:使用训练好的模型生成预测

现在我们可以使用训练好的模型来预测房屋的中位数价值。在原始表格 *‘boston’* 中将以下代码作为 Python 脚本运行

from **pycaret.classification** import *****
xgboost = **load_model**('c:/users/*username*/xgboost_powerbi')
dataset = **predict_model**(xgboost, data = dataset)

输出

原始表将附加一个包含预测结果的新列 ‘Label’。

在本示例中,我们仅为演示目的在用于训练模型的同一数据上进行了预测。在实际场景中,‘medv’ 列是实际结果,在预测时是未知的。

下一个教程

如果你想了解更多信息,请保持关注。

另请参阅

初学者级别的 Python Notebooks

开发管道中有哪些内容?

想了解特定模块?

截至 1.0.0 首次发布版本,PyCaret 提供以下可用的模块。点击下方链接查看文档和 Python 中的实际示例。

重要链接

上周我们宣布了, 一个开源的 Python 机器学习库,用于在低代码环境中训练和部署机器学习模型。在我们的中,我们演示了如何在 Jupyter Notebook 中使用 PyCaret 训练和部署 Python 机器学习模型。

在这篇文章中,我们将提供一个逐步教程,介绍如何将 PyCaret 集成到中,从而允许分析师和数据科学家无需额外的许可或软件成本,即可为他们的仪表板和报告添加机器学习层。PyCaret 是一个开源且免费使用的 Python 库,提供了专门为在 Power BI 中工作而构建的各种功能。

Power BI 是一种商业分析解决方案,可让你可视化数据并在组织内共享洞察,或将其嵌入到你的应用或网站中。在本教程中,我们将使用来进行机器学习,通过将 PyCaret 库导入 Power BI。

如果你以前使用过 Python,你的计算机上很可能已经安装了 Anaconda Distribution。如果没有,下载 Anaconda Distribution,需要 Python 3.7 或更高版本。

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

步骤 1 — 创建一个 anaconda 环境

Anaconda Prompt — 创建环境

步骤 2 — 安装 PyCaret

步骤 3 — 在 Power BI 中设置 Python 目录

文件 → 选项 → 全局 → Python 脚本

在本教程中,我们将使用 PyCaret ‘jewellery.csv’ 文件,该文件可在其上获取。你可以使用 Web 连接器加载数据。(Power BI Desktop → 获取数据 → 从 Web)。

csv 文件链接

Power BI Desktop → 获取数据 → 其他 → Web
来自 jewellery.csv 的样本数据点
Power Query 编辑器中的 Ribbon
Power Query 编辑器(转换 → 运行 Python 脚本)
聚类结果(代码执行后)
最终输出(点击表格后)

训练聚类模型所需的所有预处理任务,例如(如果表格有任何缺失或 *null* 值),或者,或者,在训练聚类模型之前都会自动执行。了解有关 PyCaret 预处理功能的更多信息。

💡 如果你想学习如何在 Jupyter Notebook 中使用 Python 训练聚类模型,请参阅我们的。(无需编码背景)。

在本教程中,我们将使用 PyCaret ‘anomaly.csv’ 文件,该文件可在其上获取。你可以使用 Web 连接器加载数据。(Power BI Desktop → 获取数据 → 从 Web)。

csv 文件链接

来自 anomaly.csv 的样本数据点
Power Query 编辑器(转换 → 运行 Python 脚本)
异常检测结果(代码执行后)
最终输出(点击表格后)

训练异常检测模型所需的所有预处理任务,例如(如果表格有任何缺失或 *null* 值),或者,或者,在训练异常检测模型之前都会自动执行。了解有关 PyCaret 预处理功能的更多信息。

💡 如果你想学习如何在 Jupyter Notebook 中使用 Python 训练异常检测器,请参阅我们的。(无需编码背景)。

在本教程中,我们将使用 PyCaret ‘kiva.csv’ 文件,该文件可在其上获取。你可以使用 Web 连接器加载数据。(Power BI Desktop → 获取数据 → 从 Web)。

csv 文件链接

Power Query 编辑器(转换 → 运行 Python 脚本)
主题建模结果(代码执行后)
最终输出(点击表格后)

在本教程中,我们将使用 PyCaret ‘france.csv’ 文件,该文件可在其上获取。你可以使用 Web 连接器加载数据。(Power BI Desktop → 获取数据 → 从 Web)。

csv 文件链接

来自 france.csv 的样本数据点
Power Query 编辑器(转换 → 运行 Python 脚本)
关联规则挖掘结果(代码执行后)
最终输出(点击表格后)

它返回一个包含前项和后项以及相关指标(如支持度、置信度、提升度等)的表格。了解 PyCaret 中关联规则挖掘的更多信息。

在本教程中,我们将使用 PyCaret **‘employee.csv’** 文件,该文件可在其上获取。你可以使用 Web 连接器加载数据。(Power BI Desktop → 获取数据 → 从 Web)。

csv 文件链接

Power Query 编辑器 → 右键点击 ‘employee’ → 复制
Power Query 编辑器(转换 → 运行 Python 脚本)

💡 另一种方法是在 Jupyter Notebook 中训练模型而不是在 Power BI 中。在这种情况下,Power BI 将仅用于在前端使用 Jupyter Notebook 中训练好的预训练模型生成预测,该模型将作为 pickle 文件导入 Power BI(请遵循下面的第 2 部分)。要了解如何在 Python 中使用 PyCaret,.

💡 如果你想学习如何在 Jupyter Notebook 中使用 Python 训练分类模型,请参阅我们的。(无需编码背景)。

分类预测结果(代码执行后)
最终输出(点击表格后)

PyCaret 的 predict_model( ) 函数可以与使用 PyCaret 创建的 pickle 文件无缝协作,因为它包含整个转换管道以及训练好的模型对象。了解有关 **predict_model** 函数的更多信息。

💡 训练分类模型所需的所有预处理任务,例如(如果表格有任何缺失或 *null* 值),或者,或者,在训练模型之前都会自动执行。了解有关 PyCaret 预处理功能的更多信息。

在本教程中,我们将使用 pycaret ‘boston.csv’ 文件,该文件可在其上获取。你可以使用 Web 连接器加载数据。(Power BI Desktop → 获取数据 → 从 Web)。

csv 文件链接

回归预测结果(代码执行后)
最终输出(点击表格后)

💡 训练回归模型所需的所有预处理任务,例如(如果表格有任何缺失或 *null* 值),或者,或者,在训练模型之前都会自动执行。了解有关 PyCaret 预处理功能的更多信息。

在在 Power BI 中使用 PyCaret 进行机器学习系列的下一篇教程中,我们将更深入地探讨 PyCaret 中的高级预处理功能。我们还将了解如何在 Power BI 中生产化机器学习解决方案,并利用在 Power BI 前端的功能。

在我们的页面上关注我们,并订阅我们的频道。

我们正在积极改进 PyCaret。未来的开发管道包括一个新的时间序列预测模块、与 **TensorFlow** 的集成,以及 PyCaret 可伸缩性的重大改进。如果你想分享你的反馈并帮助我们进一步改进,你可以在网站上或在我们的或页面上留言。

请在我们的给我们 ⭐️,如果你喜欢 PyCaret。

在 Medium 上关注我

📖
PyCaret
上一篇博客
Power BI
Power BI Desktop
点击这里
✅
✅
✅
GitHub 仓库
**https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/jewellery.csv
缺失值填充
归一化
独热编码
点击这里
聚类分析 101 入门教程
GitHub 仓库
**https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/anomaly.csv
缺失值填充
归一化
独热编码
点击这里
异常检测 101 入门教程
GitHub 仓库
**https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/kiva.csv
GitHub 仓库
**https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/france.csv
点击这里
GitHub 仓库
**https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/employee.csv
点击这里
二元分类 101 入门教程
点击这里
缺失值填充
独热编码
目标编码
点击这里
GitHub 仓库
**https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/boston.csv
缺失值填充
独热编码
目标转换
点击这里
PyCaret
LinkedIn
YouTube
聚类分析
异常检测
自然语言处理
关联规则挖掘
回归分析
分类
填写此表格
GitHub
LinkedIn
分类
回归分析
聚类分析
异常检测
自然语言处理
关联规则挖掘
用户指南 / 文档
GitHub 仓库
安装 PyCaret
Notebook 教程
参与 PyCaret 贡献
GitHub 仓库
https://medium.com/@moez_62905/