原文:
www.kdnuggets.com/2021/05/supercharge-machine-learning-experiments-pycaret-gradio.html
评论
作者 Moez Ali,PyCaret 的创始人兼作者
本教程是一个逐步的、初学者友好的说明,展示了如何在几分钟内将两个强大的 Python 开源库PyCaret和Gradio集成在一起,从而提升机器学习实验的效率。
本教程是一个“hello world”示例,我使用了来自 UCI 的Iris 数据集,这是一个多分类问题,目标是预测鸢尾花的类别。此示例中的代码可以在任何其他数据集上复现,无需重大修改。
PyCaret 是一个开源的低代码机器学习库和端到端模型管理工具,用 Python 构建,旨在自动化机器学习工作流。因其易用性、简单性以及快速高效地构建和部署端到端 ML 原型的能力而极受欢迎。
PyCaret 是一个低代码库,可以用少量代码替代数百行代码。这使得实验周期变得极其快速高效。
PyCaret 简单且 易于使用。在 PyCaret 中执行的所有操作都会顺序存储在一个管道中,该管道完全自动化以便于部署。无论是填补缺失值、一键编码、转换分类数据、特征工程还是超参数调整,PyCaret 都会自动化处理所有这些操作。
要了解更多关于 PyCaret 的信息,请查看他们的GitHub。
Gradio 是一个开源 Python 库,用于在你的机器学习模型周围创建可自定义的 UI 组件。Gradio 使你可以在浏览器中“玩弄”你的模型,通过拖放自己的图像、粘贴自己的文本、录制自己的声音等方式,查看模型的输出。
Gradio 适用于:
-
在训练好的 ML 流水线周围创建快速演示
-
获取关于模型性能的实时反馈
-
在开发过程中交互式调试你的模型
要了解更多关于 Gradio 的信息,请查看他们的GitHub。
PyCaret 和 Gradio 的工作流程
安装 PyCaret 非常简单,仅需几分钟。我们强烈建议使用虚拟环境,以避免与其他库的潜在冲突。
PyCaret 的默认安装是一个精简版,仅安装了硬性依赖,详见此处。
**# install slim version (default)** pip install pycaret**# install the full version**
pip install pycaret[full]
当你安装 pycaret 的完整版时,所有可选依赖项也会被安装,如 此处列出。
你可以从 pip 安装 gradio。
pip install gradio
**# load the iris dataset from pycaret repo**
from pycaret.datasets import get_data
data = get_data('iris')
从鸢尾花数据集中提取的样本行
**# initialize setup**
from pycaret.classification import *
s = setup(data, target = 'species', session_id = 123)
每当你初始化 PyCaret 中的 setup
函数时,它会对数据集进行分析,并推断所有输入特征的数据类型。在这种情况下,你可以看到所有四个特征(sepal_length, sepal_width, petal_length, 和 petal_width)都正确地识别为数值型数据。你可以按 Enter 继续。
setup 输出 — 为显示而截断
对 PyCaret 中的所有模块而言,setup
函数是开始任何机器学习实验的第一个也是唯一的必需步骤。除了默认执行一些基本处理任务外,PyCaret 还提供了广泛的预处理功能,如 缩放和转换、特征工程、特征选择,以及几个关键的数据准备步骤,如 独热编码、缺失值填补、过采样/欠采样,等等。要了解更多关于 PyCaret 中所有预处理功能的信息,你可以查看这个 链接。
这是我们推荐的在 PyCaret 的 任何 监督实验工作流中的第一步。此函数使用默认超参数训练模型库中的所有可用模型,并使用交叉验证评估性能指标。
此函数的输出是一个表格,显示所有模型的均值交叉验证分数。折数可以使用 fold
参数定义(默认 = 10 折)。表格按选择的指标排序(从高到低),可以使用 sort
参数定义(默认 = ‘准确度’)。
best = compare_models(n_select = 15)
compare_model_results = pull()
n_select
参数在 setup 函数中控制训练模型的返回。在这种情况下,我将其设置为 15,意味着返回前 15 个模型作为列表。pull
函数在第二行中将 compare_models
的输出存储为 pd.DataFrame
。
compare_models 的输出
len(best)
>>> 15print(best[:5])
print(best[:5]) 的输出
现在我们完成了建模过程,让我们使用 Gradio 创建一个简单的 UI 来与我们的模型互动。我将分两部分进行,首先创建一个使用 PyCaret 的 predict_model
功能生成并返回预测的函数,然后将这个函数集成到 Gradio 中,设计一个简单的输入表单以实现互动。
代码的前两行将输入特征转换为 pandas DataFrame。第 7 行创建了 compare_models
输出中显示的模型名称的唯一列表(这将作为 UI 中的下拉框)。第 8 行根据列表的索引值选择最佳模型(这个值将通过 UI 传递),第 9 行使用 PyCaret 的 predict_model
功能对数据集进行评分。
gist.github.com/moezali1/2a383489a08757df93572676d20635e0
下面代码的第 3 行创建了一个模型名称的下拉框,第 4–7 行为每个输入特征创建了一个滑块,我已将默认值设置为每个特征的均值。第 9 行启动了一个 UI(在 notebook 以及你的本地主机上,你可以在浏览器中查看)。
gist.github.com/moezali1/a1d83fb61e0ce14adcf4dffa784b1643
Gradio 接口运行的输出
你可以在这里观看这个快速视频,了解如何轻松地与管道互动,并查询模型,而无需编写数百行代码或开发一个完整的前端。
使用 PyCaret 和 Gradio 为你的机器学习实验加速
我希望你能欣赏 PyCaret 和 Gradio 的易用性和简洁性。在不到 25 行代码和几分钟的实验中,我使用 PyCaret 训练和评估了多个模型,并开发了一个轻量级的 UI 来在 Notebook 中与模型互动。
下周我将编写一个关于使用 PyCaret 异常检测模块 对时间序列数据进行无监督异常检测的教程。请关注我的 Medium、LinkedIn 和 Twitter 以获取更多更新。
使用这个轻量级的 Python 工作流自动化库,你可以实现无限的可能。如果你觉得这个有用,请不要忘记在我们的 GitHub 仓库上给我们 ⭐️。
要了解更多关于 PyCaret 的信息,请关注我们的 LinkedIn 和 Youtube。
加入我们的 Slack 频道。邀请链接 在这里。
在 Power BI 中使用 PyCaret 2.0 构建自己的 AutoML
在 Google Kubernetes Engine 上部署机器学习管道
使用 AWS Fargate 无服务器部署 PyCaret 和 Streamlit 应用
使用 PyCaret 和 Streamlit 构建并部署机器学习网页应用
在 GKE 上部署使用 Streamlit 和 PyCaret 构建的机器学习应用
安装 PyCaret 笔记本教程 参与 PyCaret 贡献
点击下面的链接查看文档和工作示例。
个人简介: Moez Ali 是一位数据科学家,同时也是 PyCaret 的创始人兼作者。
原创。已获许可转载。
相关:
-
使用 PyCaret 编写并训练自定义机器学习模型
-
使用 PyCaret + MLflow 实现轻松的 MLOps
-
使用 Streamlit 进行主题建模
1. Google 网络安全证书 - 快速进入网络安全职业轨道
2. Google 数据分析专业证书 - 提升你的数据分析技能
3. Google IT 支持专业证书 - 支持你所在组织的 IT 工作