文档
  • PyCaret 3.0
  • 开始使用
    • 💻安装
    • 🚀快速入门
    • ⭐教程
    • 📶模块
    • ⚙️数据预处理
      • 数据准备
      • 缩放与转换
      • 特征工程
      • 特征选择
      • 其他设置参数
    • 💡函数
      • 初始化
      • 训练
      • 优化
      • 分析
      • 部署
      • 其他
  • 学习 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 App
      • 在 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 提供支持
本页面内容
  • 在 Power BI 中使用 PyCaret 构建你的第一个异常检测器
  • 本教程的学习目标
  • 开始之前
  • 设置环境
  • 什么是异常检测?
  • 设置业务背景
  • 👉 开始吧
  • 1. 获取数据
  • 2. 模型训练
  • 3. 仪表板
  • 👉 在生产环境中实施异常检测
  • 提前训练模型
  • 使用预训练模型
  • 使其在 Power BI Service 中工作
  • PyCaret 1.0.1 即将推出!
  • 重要链接
  • 想了解特定模块吗?
  • 另请参阅
  • 你愿意贡献吗?

这有帮助吗?

  1. 学习 PYCARET
  2. 博客

在 Power BI 中使用 PyCaret 进行异常检测

上一篇在 AWS Fargate 上部署 PyCaret 和 Streamlit下一篇在 Google Kubernetes 上部署 ML App

最后更新 2 年前

这有帮助吗?

在 Power BI 中使用 PyCaret 构建你的第一个异常检测器

在 Power BI 中实施异常检测的分步教程

作者 Moez Ali

Power BI 中的异常检测仪表板

本教程的学习目标

  • 什么是异常检测?异常检测的类型?

  • 在 Power BI 中训练并实施无监督异常检测器。

  • 分析结果并在仪表板中可视化信息。

  • 如何在 Power BI 生产环境中部署异常检测器?

开始之前

设置环境

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

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

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

在 Anaconda Prompt 中执行以下代码

pip install pycaret

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

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

什么是异常检测?

异常检测****是机器学习中用于识别稀有项、事件或观测值的技术,它们因与大多数数据显著不同而引起怀疑。

通常,异常项将转化为某种问题,例如银行欺诈、结构缺陷、医疗问题或错误。有三种实现异常检测器的方法

(a) 监督式: 用于数据集有标签标识哪些交易是异常的,哪些是正常的。(这类似于监督分类问题)。

(b) 半监督式: 半监督异常检测背后的想法是仅在正常数据上训练模型(不包含任何异常)。当训练好的模型用于未见过的数据点时,它可以预测新的数据点是否正常(基于训练模型中数据的分布)。

(c) 无监督式: 正如字面意思,无监督意味着没有标签,因此没有训练集和测试集。在无监督学习中,模型在完整数据集上进行训练,并假设大多数实例是正常的。同时寻找与其余部分最不拟合的实例。有几种无监督异常检测算法,例如 Isolation Forest 或 One-Class Support Vector Machine。每种算法都有其识别数据集中异常的方法。

本教程是关于在 Power BI 中使用名为 PyCaret 的 Python 库实现无监督异常检测。关于这些算法的具体细节和数学原理不在本教程的讨论范围之内。

设置业务背景

许多公司向员工发放公司信用卡(也称为采购卡或 p-卡),以有效管理运营采购。通常有一个流程供员工电子提交这些报销申请。收集的数据通常是事务性的,可能包括交易日期、供应商名称、费用类型、商户和金额。

免责声明: 本教程演示了在 Power BI 中使用 PyCaret 构建异常检测器。本教程中构建的示例仪表板绝不反映实际异常,也不旨在识别异常。

👉 开始吧

现在你已经设置了 Anaconda 环境,安装了 PyCaret,了解了异常检测的基础知识,并且对本教程的业务背景有了了解,让我们开始吧。

1. 获取数据

第一步是将数据集导入 Power BI Desktop。你可以使用 Web 连接器加载数据(Power BI Desktop → 获取数据 → 从 Web)。

2. 模型训练

要在 Power BI 中训练异常检测器,我们必须在 Power Query 编辑器中执行一个 Python 脚本(Power Query 编辑器 → 转换 → 运行 Python 脚本)。将以下代码作为 Python 脚本运行

from **pycaret.anomaly** import *
dataset = **get_outliers**(dataset, ignore_features=['DEPT_NAME', 'MERCHANT', 'TRANS_DT'])

我们通过在 ignore_features 参数下传递它们来忽略数据集中的一些列。你可能出于多种原因不希望使用某些列来训练机器学习算法。

PyCaret 允许你隐藏而不是删除数据集中不需要的列,因为你可能需要这些列用于后续分析。例如,在本例中,我们不想使用事务日期来训练算法,因此我们将其传递到了 ignore_features 参数下。

PyCaret 中有超过 10 种即用型异常检测算法。

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

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

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

请参阅使用 0.1 分数训练 Isolation Forest 检测器的示例代码

from **pycaret.anomaly** import *
dataset = **get_outliers**(dataset, model = 'iforest', fraction = 0.1, ignore_features=['DEPT_NAME', 'MERCHANT', 'TRANS_DT'])

输出

原始表格附加了两个新列。Label(1 = 离群值,0 = 正常值)和 Score(分数高的数据点被归类为离群值)。应用查询可在 Power BI 数据集中查看结果。

3. 仪表板

在 Power BI 中获得离群值标签后,以下是一个如何在仪表板中将其可视化的示例

👉 在生产环境中实施异常检测

上面演示的是在 Power BI 中实现异常检测的一种简单方法。然而,重要的是要注意,上面展示的方法每次刷新 Power BI 数据集时都会重新训练异常检测器。这可能会带来两个问题

  • 当模型使用新数据重新训练时,异常标签可能会改变(一些之前标记为离群值的交易可能不再被视为离群值)

  • 你不希望每天花费数小时重新训练模型。

在 Power BI 中实现异常检测的另一种方法,尤其是在生产环境中使用时,是将预训练模型传递给 Power BI 进行标记,而不是直接在 Power BI 中训练模型。

提前训练模型

你可以使用任何集成开发环境(IDE)或 Notebook 来训练机器学习模型。在本例中,我们使用了 Visual Studio Code 来训练异常检测模型。

然后将训练好的模型保存为 pickle 文件,并导入到 Power Query 中以生成异常标签(1 或 0)。

如果你想了解更多关于在 Jupyter Notebook 中使用 PyCaret 实现异常检测的信息,请观看这个 2 分钟的视频教程

使用预训练模型

将以下代码作为 Python 脚本执行,以从预训练模型生成标签。

from **pycaret.anomaly** import *
dataset = **predict_model**('c:/.../anomaly_deployment_13052020, data = dataset)

其输出将与我们上面看到的相同。然而,区别在于当你使用预训练模型时,标签是在新数据集上使用相同的模型生成的,而不是每次刷新 Power BI 数据集时都重新训练模型。

使其在 Power BI Service 中工作

将 .pbix 文件上传到 Power BI 服务后,还需要几个步骤才能实现机器学习 Pipeline 与数据 Pipeline 的无缝集成。这些步骤包括

PyCaret 1.0.1 即将推出!

重要链接

想了解特定模块吗?

截至第一个版本 1.0.0,PyCaret 提供了以下可用的模块。点击下方链接可查看文档和 Python 工作示例。

另请参阅

PyCaret Notebook 入门教程

你愿意贡献吗?

在我们上一篇文章中,,我们提供了一个分步教程,介绍了如何将 PyCaret 集成到 Power BI 中,从而允许分析师和数据科学家为他们的仪表板和报告添加一层机器学习功能,而无需额外的许可费用。

在这篇文章中,我们将深入探讨并使用 PyCaret 在 Power BI 中实现一个异常检测器。如果你之前没有听说过 PyCaret,请阅读此处以了解更多信息。

如果你之前使用过 Python,你的计算机上很可能已经安装了 Anaconda Distribution。如果还没有,请点击此处下载包含 Python 3.7 或更高版本的 Anaconda Distribution。

https://anaconda.net.cn/products/individual

步骤 1 — 创建 anaconda 环境

步骤 2 — 安装 PyCaret

安装可能需要 15–20 分钟。如果安装遇到问题,请参阅我们的页面了解已知问题和解决方案。

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

文件 → 选项 → 全局 → Python 脚本
Goldstein M, Uchida S (2016) A Comparative Evaluation of Unsupervised Anomaly Detection Algorithms for Multivariate Data. PLo

在本教程中,我们将使用美国特拉华州教育部门 2014-2019 年的州雇员信用卡交易数据。该数据可在其平台上在线获取。

https://data.delaware.gov/Government-and-Finance/Credit-Card-Spend-by-Merchant/8pzf-ge27
Power BI Desktop → 获取数据 → 其他 → Web

**csv 文件链接

Power Query 编辑器(转换 → 运行 Python 脚本)
异常检测结果(执行 Python 代码后)
最终输出(点击表格后)
Power BI Desktop 中的结果(应用查询后)
仪表板摘要页
仪表板详情页

你可以从我们的.

在 Visual Studio Code 中训练模型
异常检测 Pipeline 已保存为文件
Power Query 编辑器(转换 → 运行 Python 脚本)
最终输出(点击表格后)

启用数据集的计划刷新 — 要为包含 Python 脚本数据集的工作簿启用计划刷新,请参阅,其中也包括关于 个人网关 的信息。

安装个人网关 — 你需要在文件所在且 Python 已安装的机器上安装 个人网关;Power BI 服务必须能够访问该 Python 环境。你可以获取更多关于如何.

如果你对了解更多关于异常检测感兴趣,请查看我们的

我们收到了来自社区的巨大支持和反馈。我们正在积极努力改进 PyCaret 并准备发布下一个版本。PyCaret 1.0.1 将更强大、更好。如果你想分享你的反馈并帮助我们进一步改进,你可以在此处在网站上,或者在我们的或页面上留言。

关注我们的并订阅我们的频道,了解更多关于 PyCaret 的信息。

PyCaret 是一个开源项目。欢迎所有人贡献。如果你想贡献,请随时处理。dev-1.0.1 分支接受带有单元测试的 Pull Request。

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

Medium

LinkedIn

Twitter

📖
在 Power BI 中使用 PyCaret 进行机器学习
公告
点击此处
✅
✅
GitHub
✅
开放数据
**https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/delaware_anomaly.csv
GitHub
配置计划刷新
安装和配置个人网关
Notebook 教程。
填写此表单
GitHub
LinkedIn
LinkedIn
Youtube
用户指南 / 文档
GitHub 仓库
安装 PyCaret
Notebook 教程
贡献 PyCaret
分类
回归
聚类
异常检测
自然语言处理
关联规则挖掘
聚类
异常检测
自然语言处理
关联规则挖掘
回归
分类
开放问题
GitHub 仓库
https://medium.com/@moez_62905/
https://www.linkedin.com/in/profile-moez/
https://twitter.com/moezpycaretorg1