PyCaret 2.3.6 发布了!了解新特性?

PyCaret 2.3.6 发布了!了解新特性?从 EDA 到部署再到 AI 公平性 — 迄今为止 PyCaret 最重磅的版本

🚀 介绍

PyCaret 是一个开源、低代码的 Python 机器学习库,可自动化机器学习工作流程。它是一个端到端的机器学习和模型管理工具,能够极大地加速实验周期,提高你的工作效率。

迄今为止,PyCaret 2.3.6 是在新增特性和功能方面最重磅的版本。本文将演示最近发布的 PyCaret 版本中添加的新功能的使用方法。PyCaret 2.3.6.

💻 安装

安装非常简单,只需几分钟。通过 pip 进行的 PyCaret 默认安装仅安装在requirements.txt文件中列出的硬依赖项。

pip install pycaret

要安装完整版本

pip install pycaret[full]

📈 仪表盘

此函数将为训练好的模型生成交互式仪表盘。该仪表盘是使用ExplainerDashboard.

# load dataset
from pycaret.datasets import get_data
data = get_data('iris')

# init setupfrom pycaret.classification import *
s = setup(data, target = 'species', session_id = 123)

# train model
lr = create_model('lr')

# generate dashboard
dashboard(lr)

视频演示

📊 探索性数据分析 (EDA)

此函数将使用AutoViz集成生成自动化 EDA。

# load dataset
from pycaret.datasets import get_data
data = get_data('iris')

# init setup
from pycaret.classification import *
s = setup(data, target = 'species', session_id = 123)

# generate EDA
eda()

视频演示

🚊 转换模型

此函数将训练好的机器学习模型转译成不同编程语言(Python, C, Java, Go, JavaScript, Visual Basic, C#, PowerShell, R, PHP, Dart, Haskell, Ruby, F#)的原生推理脚本。如果你想将模型部署到无法安装常规 Python 环境以支持模型推理的环境中,此功能将非常有用。

# load dataset
from pycaret.datasets import get_data
data = get_data('iris')

# init setup
from pycaret.classification import *
s = setup(data, target = 'species', session_id = 123)

# train model
lr = create_model('lr')

# convert model
lr_java = convert_model(lr, language = 'java')
print(lr_java)

视频演示

☑️ 检查公平性

对公平性有很多概念化的方法。这个新函数遵循被称为群体公平性的方法,该方法询问:哪些个体群体面临遭受损害的风险。此函数提供不同群体(也称为子群体)之间的公平性相关指标。

# load dataset
from pycaret.datasets import get_data
data = get_data('income')

# init setup
from pycaret.classification import *
s = setup(data, target = 'income >50K', session_id = 123)

# train model
lr = create_model('lr')

# check fairness
check_fairness(lr, sensitive_features = ['race'])

视频演示

📩 创建 Web API

此函数将使用FastAPI框架为机器学习管道创建用于推理的 POST API。它只创建 API,不会自动运行。

# load dataset
from pycaret.datasets import get_data
data = get_data('iris')

# init setup
from pycaret.classification import *
s = setup(data, target = 'species', session_id = 123)

# train model
lr = create_model('lr')

# create API
create_api(lr, 'my_first_api')

# Run the API
!python my_first_api.py

视频演示

🚢 创建 Docker

此函数将为你的 API 端点创建一个 Dockerfilerequirements 文件。

# load dataset
from pycaret.datasets import get_data
data = get_data('iris')

# init setup
from pycaret.classification import *
s = setup(data, target = 'species', session_id = 123)

# train model
lr = create_model('lr')

# create API
create_api(lr, 'my_first_api')

# create Docker
create_docker('my_first_api')

视频演示

💻 创建 Web 应用

此函数创建一个基本的GradioWeb 应用用于推理。之后将扩展支持其他应用类型,例如 Streamlit。

# load dataset
from pycaret.datasets import get_data
data = get_data('iris')

# init setup
from pycaret.classification import *
s = setup(data, target = 'species', session_id = 123)

# train model
lr = create_model('lr')

视频演示

🎰 监控机器学习模型的漂移

predict_model 函数中添加了一个名为 drift_report 的新参数,该参数使用Evidently AI框架生成漂移报告。目前此功能处于实验模式,仅适用于测试数据。之后将扩展用于生产环境。

# load dataset
from pycaret.datasets import get_data
data = get_data('iris')

# init setup
from pycaret.classification import *
s = setup(data, target = 'species', session_id = 123)

# train model
lr = create_model('lr')

# generate report
preds = predict_model(lr, drift_report = True)

视频演示

🔨 Plot Model 现在更具可配置性

plot_model 函数现在更具可配置性。例如,以前如果你想在混淆矩阵中看到百分比而不是绝对数字,或者想更改可视化图的颜色映射,是不可能的。现在,通过 plot_model 函数中的新参数 plot_kwargs,这些都成为可能。请参阅示例

# load dataset
from pycaret.datasets import get_data
data = get_data('iris')

# init setup
from pycaret.classification import *
s = setup(data, target = 'species', session_id = 123)

# train model
lr = create_model('lr')

# plot model (without plot kwargs)
plot_model(lr, plot = 'confusion_matrix') 

# plot model (with plot kwargs)
plot_model(lr, plot = 'confusion_matrix', plot_kwargs = {'percent' : True})

🏆优化阈值

这不是一个新函数,但在 2.3.6 版本中得到了彻底改造。此函数用于优化二元分类问题的概率阈值。以前你必须在此函数中将成本函数作为 true_positivefalse_positivetrue_negativefalse_negative 传入,而现在它会自动从你当前的实验运行中获取所有指标,包括自定义指标。

# load dataset
from pycaret.datasets import get_data
data = get_data('blood')

# init setup
from pycaret.classification import *
s = setup(data, target = 'Class', session_id = 123)

# train model
lr = create_model('lr')

# optimize threshold
optimize_threshold(lr)

📚 新文档

最重要、最困难的部分是全新的文档。这是关于 PyCaret 所有内容的单一事实来源,包括官方教程、发行说明、API 参考以及社区贡献。观看视频导览

最后,如果你想了解 2.3.6 版本中添加的所有新功能,请观看这个 10 分钟的视频

要了解 PyCaret 2.3.6 中的所有其他更改、bug 修复和次要更新,请查看详细的发行说明.

感谢你的阅读。

🔗重要链接

最后更新于

这篇文章有帮助吗?