在 Power BI 中使用 PyCaret 进行聚类分析
上次更新时间
这有帮助吗?
上次更新时间
这有帮助吗?
什么是聚类?聚类类型。
在 Power BI 中训练和实现无监督聚类模型。
分析结果并在仪表板中可视化信息。
如何在 Power BI 生产环境中部署聚类模型?
在我们开始在 Power BI 中使用 PyCaret 的机器学习功能之前,我们必须创建一个虚拟环境并安装 pycaret。这是一个三步过程
从开始菜单打开 **Anaconda Prompt** 并执行以下代码
在 Anaconda Prompt 中执行以下代码
创建的虚拟环境必须与 Power BI 关联。这可以在 Power BI Desktop 中使用全局设置完成(文件 → 选项 → 全局 → Python 脚本)。Anaconda 环境默认安装在
C:\Users*username*\AppData\Local\Continuum\anaconda3\envs\myenv
聚类是一种将具有相似特征的数据点分组的技术。这些分组对于数据探索、模式识别和数据子集分析非常有用。将数据组织成簇有助于识别数据中的潜在结构,并在许多行业中得到应用。聚类的一些常见业务用例如下:
✔ 用于营销目的的客户细分。
✔ 用于促销和折扣的客户购买行为分析。
✔ 在流行病爆发(例如 COVID-19)中识别地理集群。
考虑到聚类任务的主观性,有各种算法适用于不同类型的问题。每种算法都有其自己的规则以及计算簇背后的数学原理。
本教程是关于在 Power BI 中使用名为 PyCaret 的 Python 库实现聚类分析。关于这些算法具体细节和数学原理的讨论超出本教程范围。
在本教程中,我们将使用世界卫生组织全球卫生支出数据库中的当前卫生支出数据集。该数据集包含 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 服务后,还需要几个步骤才能实现机器学习流程与您的数据流程的无缝集成。其中包括
截至第一个版本 1.0.0,PyCaret 提供了以下可用模块。单击以下链接查看 Python 中的文档和工作示例。
PyCaret Notebook 入门教程
在我们的中,我们展示了如何通过将 PyCaret 集成到 Power BI 中来构建异常检测器,从而允许分析师和数据科学家在其报告和仪表板中添加一层机器学习功能,而无需额外许可费用。
在这篇文章中,我们将介绍如何使用 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 脚本的数据集工作簿启用计划刷新,请参阅,其中还包括关于 Personal Gateway 的信息。
安装 Personal Gateway — 您需要在安装了文件和 Python 的机器上安装 Personal Gateway;Power BI 服务必须能够访问该 Python 环境。您可以获得更多关于如何.
如果您有兴趣了解更多关于聚类分析的信息,请查看我们的.
我们收到了来自社区的巨大支持和反馈。我们正在积极努力改进 PyCaret 并准备下一个版本。PyCaret 1.0.1 将更强大、更出色。如果您想分享您的反馈并帮助我们进一步改进,您可以在网站上,或在我们的或页面上留言。
关注我们的并订阅我们的频道,了解更多关于 PyCaret 的信息。
PyCaret 是一个开源项目。欢迎大家贡献。如果您想贡献,请随时处理。拉取请求在 dev-1.0.1 分支上接受单元测试。
请在我们的上给我们 ⭐️,如果您喜欢 PyCaret。
Medium