在 Power BI 中使用 PyCaret 进行聚类分析
上次更新于
这有帮助吗?
上次更新于
这有帮助吗?
什么是聚类?聚类类型。
在 Power BI 中训练并实现无监督聚类模型。
分析结果并在仪表板中可视化信息。
如何在 Power BI 生产环境中部署聚类模型?
在我们开始在 Power BI 中使用 PyCaret 的机器学习功能之前,必须创建虚拟环境并安装 pycaret。这是一个三步过程
从开始菜单打开 Anaconda Prompt 并执行以下代码
在 Anaconda Prompt 中执行以下代码
创建的虚拟环境必须与 Power BI 关联。这可以通过 Power BI Desktop 中的全局设置完成(文件 → 选项 → 全局 → Python 脚本)。Anaconda 环境默认安装在
C:\Users\*用户名*\AppData\Local\Continuum\anaconda3\envs\myenv
聚类是一种将具有相似特征的数据点分组的技术。这些分组对于探索数据、识别模式和分析数据子集非常有用。将数据组织成簇有助于识别数据中的潜在结构,并在许多行业中得到应用。聚类的一些常见业务用例包括
✔ 用于营销目的的客户细分。
✔ 用于促销和折扣的客户购买行为分析。
✔ 在流行病爆发(如 COVID-19)中识别地理群集。
鉴于聚类任务的主观性,有各种适合不同类型问题的算法。每种算法都有自己的规则以及计算簇背后的数学原理。
本教程是关于使用名为 PyCaret 的 Python 库在 Power BI 中实现聚类分析。关于这些算法的具体算法细节和背后的数学原理超出了本教程的范围。
在本教程中,我们将使用世界卫生组织全球卫生支出数据库中当前的卫生支出数据集。该数据集包含 2000 年至 2017 年间 200 多个国家的卫生支出占国民生产总值 (GDP) 的百分比。
我们的目标是使用 K-Means 聚类算法来查找此数据中的模式和组。
既然你已经设置好 Anaconda 环境、安装了 PyCaret,了解了聚类分析的基础知识,并且掌握了本教程的业务背景,现在就开始吧。
第一步是将数据集导入 Power BI Desktop。你可以使用 Web 连接器加载数据。(Power BI Desktop → 获取数据 → 从 Web)。
要在 Power BI 中训练聚类模型,我们需要在 Power Query 编辑器中执行 Python 脚本(Power Query 编辑器 → 转换 → 运行 Python 脚本)。将以下代码作为 Python 脚本运行
我们使用 ignore\_features 参数忽略了数据集中的“Country”列。您可能出于多种原因不想使用某些列来训练机器学习算法。
PyCaret 允许您隐藏而不是删除数据集中的不需要的列,因为您可能在后续分析中需要这些列。例如,在这种情况下,我们不希望使用“Country”进行算法训练,因此将其放在 ignore\_features 参数下传递。
PyCaret 中有超过 8 种可直接使用的聚类算法。
默认情况下,PyCaret 训练一个具有 4 个簇的 **K-Means 聚类模型**。默认值可以轻松更改
要更改模型类型,请使用 **get\_clusters()** 中的 *model* 参数。
要更改簇的数量,请使用 *num\_clusters* 参数。
请参阅具有 6 个簇的 **K-Modes 聚类**示例代码。
输出
包含簇标签的新列被附加到原始数据集。然后将所有年份列*取消透视*以对数据进行规范化,以便在 Power BI 中进行可视化。
这是最终输出在 Power BI 中的样子。
在 Power BI 中获得簇标签后,这里有一个如何在仪表板中可视化它以生成洞察的示例
上面展示的是在 Power BI 中实现聚类的一种简单方法。然而,需要注意的是,上面展示的方法会在 Power BI 数据集每次刷新时重新训练聚类模型。这可能会带来两个问题
当模型用新数据重新训练时,簇标签可能会改变(例如:之前被标记为簇 1 的一些数据点在重新训练时可能会被标记为簇 2)
你不想每天花费数小时时间重新训练模型。
在 Power BI 中实现聚类的一种更有效的方式是使用预训练模型来生成簇标签,而不是每次都重新训练模型。
你可以使用任何集成开发环境 (IDE) 或 Notebook 来训练机器学习模型。在此示例中,我们使用 Visual Studio Code 训练了一个聚类模型。
然后将训练好的模型保存为 pickle 文件,并导入到 Power Query 中生成簇标签。
如果您想了解更多关于如何在 Jupyter Notebook 中使用 PyCaret 实现聚类分析,请观看这个 2 分钟的视频教程
将以下代码作为 Python 脚本执行,以从预训练模型中生成标签。
其输出将与我们上面看到的相同。不同之处在于,使用预训练模型时,标签是在新数据集上使用相同模型生成的,而不是重新训练模型。
将 .pbix 文件上传到 Power BI service 后,还需要几个步骤才能实现机器学习 pipeline 与数据 pipeline 的无缝集成。其中包括
截至第一个版本 1.0.0,PyCaret 提供了以下模块可供使用。点击下面的链接查看文档和 Python 中的工作示例。
PyCaret Notebook 入门教程
在我们的中,我们演示了如何在 Power BI 中构建异常检测器,通过与 PyCaret 集成,使得分析师和数据科学家能够在他们的报告和仪表板中添加机器学习层,而无需额外的许可费用。
在这篇文章中,我们将看到如何使用 PyCaret 在 Power BI 中实现聚类分析。如果你之前没有听说过 PyCaret,请阅读这篇以了解更多信息。
如果你以前使用过 Python,很可能你的电脑上已经安装了 Anaconda Distribution。如果没有,下载 Python 3.7 或更高版本的 Anaconda Distribution。
步骤 1 — 创建一个 anaconda 环境
步骤 2 — 安装 PyCaret
安装可能需要 15-20 分钟。如果在安装过程中遇到问题,请参阅我们的页面,了解已知问题和解决方案。
步骤 3 — 在 Power BI 中设置 Python 目录
在本教程中,我们将使用 K-Means 算法,它是最简单、最流行的无监督机器学习算法之一。如果您想了解更多关于 K-Means 的信息,可以阅读.
csv 文件链接
你可以从我们的.
**为数据集启用计划刷新** — 要为包含带有 Python 脚本数据集的工作簿启用计划刷新,请参阅,其中还包含有关 **个人网关** 的信息。
**安装个人网关** — 你需要在文件所在且安装了 Python 的机器上安装 **个人网关**;Power BI 服务必须能够访问该 Python 环境。你可以了解更多关于如何.
如果您有兴趣了解更多关于聚类分析的信息,请查看我们的.
我们收到了社区的巨大支持和反馈。我们正在积极改进 PyCaret,并准备下一个版本。**PyCaret 1.0.1 将会更大、更好**。如果您想分享您的反馈并帮助我们进一步改进,您可以在网站上或在我们的或页面留言。
关注我们的并订阅我们的频道,了解更多关于 PyCaret 的信息。
PyCaret 是一个开源项目。欢迎大家贡献。如果您想贡献,请随时处理。在 dev-1.0.1 分支上,带有单元测试的 Pull 请求会被接受。
请在我们的上给我们 ⭐️,如果您喜欢 PyCaret。
Medium