在 Power BI 中使用 PyCaret 构建自己的 AutoML
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
阅读本文后,你将学习如何在 Power BI 中实现以下内容
设置 Python conda 环境并安装 pycaret==2.0。
将新创建的 conda 环境与 Power BI 关联。
在 Power BI 中构建你的第一个 AutoML 解决方案并在仪表板上展示性能指标。
在 Power BI 中将你的 AutoML 解决方案生产化/部署。
自动化机器学习(AutoML)是自动化机器学习中耗时且重复性任务的过程。它允许数据科学家和分析师高效地构建机器学习模型,同时保持模型质量。任何 AutoML 解决方案的最终目标是根据某些性能标准确定最佳模型。
传统的机器学习模型开发过程需要大量资源,需要丰富的领域知识和时间来生成和比较几十个模型。通过自动化机器学习,你将能够轻松高效地加速获得可用于生产的机器学习模型所需的时间。
PyCaret 是用于监督和无监督机器学习的工作流自动化工具。它由六个模块组成,每个模块都有一套用于执行特定操作的函数。每个函数接受一个输入并返回一个输出,在大多数情况下是一个训练好的机器学习模型。第二次发布后可用的模块有
PyCaret 中的所有模块都支持数据准备(超过 25 种基本预处理技术,附带大量的未训练模型和自定义模型支持、自动超参数调优、模型分析和可解释性、自动模型选择、实验日志记录和简易的云部署选项。
“PyCaret 通过为业务分析师、领域专家、公民数据科学家和经验丰富的数据科学家提供免费、开源、低代码的机器学习解决方案,正在普及机器学习和高级分析的使用。”
在我们开始在 Power BI 中使用 PyCaret 的机器学习功能之前,我们需要创建一个虚拟环境并安装 pycaret。这是一个三步过程
从开始菜单打开 **Anaconda Prompt** 并执行以下代码
在 Anaconda Prompt 中执行以下代码
创建的虚拟环境必须与 Power BI 关联。这可以通过 Power BI Desktop 中的全局设置(文件 → 选项 → 全局 → Python 脚本)完成。Anaconda 环境默认安装在
C:\Users*用户名*\AppData\Local\Continuum\anaconda3\envs\myenv
一家保险公司希望通过在住院时使用人口统计学和基本患者健康风险指标更好地预测患者费用来改善其现金流预测。
训练并选择基于数据集中其他变量(即年龄、性别、bmi、子女、吸烟者和地区)预测患者费用的最佳回归模型。
你可以通过 Power BI Desktop → 获取数据 → Web 直接从我们的 GitHub 加载数据集
在 Power Query 中创建一个重复数据集
在 Power Query 中运行以下代码(转换 → 运行 Python 脚本)
代码的前两行用于导入相关模块并初始化 setup 函数。setup 函数执行机器学习中必需的几个重要步骤,例如清洗缺失值(如果有)、将数据拆分为训练集和测试集、设置交叉验证策略、定义评估指标、执行特定于算法的转换等。
训练多个模型、比较并评估性能指标的神奇函数是 **compare_models**。它根据可在 compare_models 内定义的“**sort**”参数返回最佳模型。默认情况下,它在回归用例中使用“R2”,在分类用例中使用“Accuracy”。
其余行用于确定通过 compare_models 返回的最佳模型,并将其保存为本地目录中的 pickle 文件。最后一行返回包含已训练模型及其性能指标详细信息的 dataframe。
输出
仅用几行代码,我们训练了 20 多个模型,表格展示了基于 10 折交叉验证的性能指标。
表现最好的模型 Gradient Boosting Regressor 将与整个转换管道一起保存为本地目录中的 pickle 文件。该文件稍后可用于在新数据集上生成预测(参见下面的步骤 3)。
PyCaret 基于模块化自动化的理念工作。因此,如果你有更多资源和时间进行训练,可以扩展脚本以执行超参数调优、集成以及其他可用的建模技术。参见下面的示例
现在我们返回了前 5 个模型,而不是表现最好的那一个。然后我们创建了一个列表推导式(循环)来调优排名前列的候选模型的超参数,最后 **automl 函数**选择了表现最佳的单一模型,并将其保存为 pickle 文件(请注意,这次我们没有使用 **finalize_model**,因为 automl 函数返回的是已定型模型)。
一旦我们将最终模型保存为 pickle 文件,就可以使用它来预测新数据集上的费用。
为了演示目的,我们将再次加载相同的数据集,并从数据集中删除“charges”列。在 Power Query 中将以下代码作为 Python 脚本执行以获取预测结果
输出
当你将包含 Python 脚本的 Power BI 报告发布到服务时,这些脚本在通过本地数据网关刷新数据时也会执行。
使用这个轻量级的 Python 工作流自动化库,你可以实现无限可能。如果你觉得这有用,请不要忘记在我们的 GitHub 仓库上给我们 ⭐️。
点击下方链接查看文档和工作示例。
上周我们宣布了, 一个开源、低代码的 Python 机器学习库,可自动化机器学习工作流。它是一个端到端的机器学习和模型管理工具,可加速机器学习实验周期,帮助数据科学家更高效、更具生产力。
在本文中,我们提供了一个关于如何在 Power BI 中使用 PyCaret 构建自动化机器学习解决方案的分步教程,, 从而允许数据科学家和分析师在不产生额外许可或软件成本的情况下,为其仪表板添加一层机器学习功能。PyCaret 是一个开源且**免费使用**的 Python 库,它附带了大量为在 Power BI 中工作而构建的函数。
Power BI 是一个商业分析解决方案,可让你可视化数据并在组织内共享洞察,或将其嵌入到你的应用或网站中。在本教程中,我们将使用通过将 PyCaret 库导入 Power BI 来进行机器学习。
要了解有关 PyCaret 的更多信息,阅读我们的官方发布公告。
如果你想开始使用 Python,查看示例笔记本库以开始。
如果你是第一次使用 Python,安装 Anaconda Distribution 是最简单的入门方式。下载包含 Python 3.7 或更高版本的 Anaconda Distribution。
步骤 1 — 创建 anaconda 环境
步骤 2 — 安装 PyCaret
安装可能需要 15-20 分钟。如果你在安装过程中遇到问题,请参阅我们的页面了解已知问题和解决方案。
步骤 3 — 在 Power BI 中设置 Python 目录
()
数据集链接
示例仪表板已创建。PBIX 文件.
要启用此功能,你必须确保你的个人网关所在机器上也安装了 Python 运行时及其依赖的 Python 包。注意,多用户共享的本地数据网关不支持 Python 脚本执行。阅读更多关于此的内容。
本教程中使用的 PBIX 文件已上传到此 GitHub 仓库
如果你想了解更多关于 PyCaret 2.0 的信息,请阅读此.
如果你之前使用过 PyCaret,你可能对当前版本感兴趣。
要了解更多 PyCaret 的信息,请关注我们和.