文档
  • PyCaret 3.0
  • 开始使用
    • 💻安装
    • 🚀快速入门
    • ⭐教程
    • 📶模块
    • ⚙️数据预处理
      • 数据准备
      • 缩放和转换
      • 特征工程
      • 特征选择
      • 其他设置参数
    • 💡函数
      • 初始化
      • 训练
      • 优化
      • 分析
      • 部署
      • 其他
  • 学习 PYCARET
    • 📖博客
      • PyCaret 1.0 发布公告
      • PyCaret 2.0 发布公告
      • 关于 PyCaret 你不知道的 5 件事
      • 构建并部署你的第一个机器学习 Web 应用
      • 使用 PyCaret 在 Power BI 中构建你自己的 AutoML
      • 在 Google Kubernetes 上部署 ML Pipeline
      • 在 AWS Fargate 上部署 PyCaret 和 Streamlit
      • 使用 PyCaret 在 Power BI 中进行异常检测
      • 在 Google Kubernetes 上部署 ML 应用
      • 在 GKE 上部署机器学习 Pipeline
      • 在 AWS Fargate 上部署机器学习 Pipeline
      • 使用 Docker 在云端部署 ML Pipeline
      • 使用 PyCaret 在 Power BI 中进行聚类分析
      • 使用 ONNX Runtime 在边缘部署 PyCaret 模型
      • GitHub 是你唯一需要的最佳 AutoML
      • 在 AWS Fargate 上部署 PyCaret 和 Streamlit
      • 使用 PyCaret 和 MLflow 轻松实现 MLOps
      • 使用 PyCaret 在 Power BI 中进行聚类分析
      • 使用 PyCaret 在 Alteryx 中进行机器学习
      • 使用 PyCaret 在 KNIME 中进行机器学习
      • 使用 PyCaret 在 SQL 中进行机器学习 第一部分
      • 使用 PyCaret 在 Power BI 中进行机器学习
      • 使用 PyCaret 在 Tableau 中进行机器学习
      • 使用 PyCaret 进行多元时间序列预测
      • 使用 PyCaret 预测客户流失
      • 使用 PyCaret 预测销售线索评分(正确方法)
      • 使用 PyCaret 在 Python 中进行 NLP 文本分类
      • 使用 PyCaret 预测销售线索评分(正确方法)
      • 使用 PyCaret 预测黄金价格暴跌
      • 使用机器学习预测黄金价格
      • PyCaret 2.1 特性总结
      • 使用 PyCaret 将 ML 模型部署到 SQL Server
      • 使用 PyCaret 和 Gradio 加速你的 ML
      • 时间序列 101 - 面向初学者
      • 使用 PyCaret 进行时间序列异常检测
      • 使用 PyCaret 回归进行时间序列预测
      • 使用 PyCaret 在 Power BI 中进行主题建模
      • 使用 PyCaret 编写和训练自定义 ML 模型
      • 使用 PyCaret 和 Streamlit 构建并部署 ML 应用
      • PyCaret 2.3.6 来了!了解新特性?
    • 📺视频
    • 🛩️备忘单
    • ❓常见问题
    • 👩‍💻示例
  • 重要链接
    • 🛠️发布说明
    • ⚙️API 参考
    • 🙋 讨论区
    • 📤问题反馈
    • 👮 许可证
  • 媒体
    • 💻Slack
    • 📺YouTube
    • 🔗LinkedIn
    • 😾GitHub
    • 🔅Stack Overflow
由 GitBook 提供支持
本页内容
  • PyCaret 2.1 已发布 — 有哪些新特性?
  • 安装 PyCaret
  • PyCaret 2.1 特性总结
  • 👉 在 GPU 上进行超参数调优
  • 👉 模型部署
  • 👉 MLFlow 部署
  • 👉 MLFlow 模型注册中心
  • 👉 高分辨率绘图
  • 👉 用户定义损失函数
  • 👉 特征选择
  • 👉 其他变化
  • 重要链接
  • 想了解某个特定模块?

这有帮助吗?

  1. 学习 PYCARET
  2. 博客

PyCaret 2.1 特性总结

上一篇使用机器学习预测黄金价格下一篇使用 PyCaret 将 ML 模型部署到 SQL Server

最后更新于 2 年前

这有帮助吗?

PyCaret 2.1 现已可通过 pip 下载。https://www.pycaret.org

PyCaret 2.1 已发布 — 有哪些新特性?

我们很高兴宣布 PyCaret 2.1 发布 — 这是 2020 年 8 月的更新。

PyCaret 是一个开源的低代码 Python 机器学习库,可自动化机器学习工作流程。它是一个端到端的机器学习和模型管理工具,可加快机器学习实验周期,并使您的工作效率提高 10 倍。

与其他开源机器学习库相比,PyCaret 是一个替代性的低代码库,只需少量代码即可替代数百行代码。这使得实验呈指数级地快速高效。

安装 PyCaret

安装 PyCaret 非常简单,只需几分钟。我们强烈建议使用虚拟环境,以避免与其他库发生潜在冲突。请参见以下示例代码,了解如何创建 ***conda 环境***并在该 conda 环境中安装 pycaret

**# create a conda environment **
conda create --name yourenvname python=3.6  

**# activate environment **
conda activate yourenvname  

**# install pycaret **
pip install **pycaret==2.1  **

**# create notebook kernel linked with the conda environment 
**python -m ****ipykernel install --user --name yourenvname --display-name "display-name"

PyCaret 2.1 特性总结

👉 在 GPU 上进行超参数调优

在 PyCaret 2.0 中,我们宣布了对某些算法(XGBoost、LightGBM 和 Catboost)的 GPU 加速训练支持。PyCaret 2.1 的新特性是您现在也可以在 GPU 上调优这些模型的超参数。

**# train xgboost using gpu**
xgboost = create_model('xgboost', tree_method = 'gpu_hist')

**# tune xgboost 
**tuned_xgboost **= **tune_model(xgboost)

在 **tune_model** 函数中无需额外参数,因为它会自动从使用 **create_model** 函数创建的 xgboost 实例继承 tree_method。如果您对一些比较感兴趣,请看这里

在一个包含 8 个类别的多类别问题中,数据集包含 100,000 行和 88 个特征

👉 模型部署

自 PyCaret 于 2020 年 4 月首次发布以来,您只需在 Notebook 中使用 **deploy_model** 即可轻松将训练好的模型部署到 AWS。在最近的发布版本中,我们增加了支持部署到 GCP 和 Microsoft Azure 的功能。

Microsoft Azure

要在 Microsoft Azure 上部署模型,必须设置连接字符串的环境变量。连接字符串可以从 Azure 存储账户的“访问密钥”中获取。

复制连接字符串后,可以将其设置为环境变量。请参见下面的示例

**import os
**os.environ['AZURE_STORAGE_CONNECTION_STRING'] = 'your-conn-string'

**from pycaret.classification import load_model**
deploy_model(model = model, model_name = 'model-name', platform = 'azure', authentication = {'container' : 'container-name'})

砰!就这么简单。只需一行代码,您的整个机器学习流程现在就已部署到 Microsoft Azure 的容器中。您可以使用load_model 函数访问它。

**import os
**os.environ['AZURE_STORAGE_CONNECTION_STRING'] = 'your-conn-string'

**from pycaret.classification import load_model
**loaded_model = load_model(model_name = 'model-name', platform = 'azure', authentication = {'container' : 'container-name'})

**from pycaret.classification import predict_model
**predictions = predict_model(loaded_model, data = new-dataframe)

Google Cloud Platform

要在 Google Cloud Platform (GCP) 上部署模型,必须先使用命令行或 GCP 控制台创建一个项目。项目创建后,必须创建一个服务账户并将服务账户密钥下载为 JSON 文件,然后用于设置环境变量。

**import os
**os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'c:/path-to-json-file.json'

**from pycaret.classification import deploy_model
**deploy_model(model = model, model_name = 'model-name', platform = 'gcp', authentication = {'project' : 'project-name', 'bucket' : 'bucket-name'})

模型已上传。现在您可以使用 load_model 函数从 GCP 存储桶访问模型。

**import os
**os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'c:/path-to-json-file.json'

**from pycaret.classification import load_model
**loaded_model = load_model(model_name = 'model-name', platform = 'gcp', authentication = {'project' : 'project-name', 'bucket' : 'bucket-name'})

**from pycaret.classification import predict_model
**predictions = predict_model(loaded_model, data = new-dataframe)

👉 MLFlow 部署

除了使用 PyCaret 的原生部署功能外,您现在还可以使用 MLFlow 的所有部署功能。要使用这些功能,您必须在 **setup** 函数中使用 log_experiment 参数记录您的实验。

**# init setup**
exp1 = setup(data, target = 'target-name', log_experiment = True, experiment_name = 'exp-name')

**# create xgboost model
**xgboost = create_model('xgboost')

..
..
..

# rest of your script

**# start mlflow server on localhost:5000**
!mlflow ui

您可以点击“Run Name” 左侧显示的“Start Time” 查看运行详情。您在里面看到的是训练模型的超参数和评估指标,如果您向下滚动一点,还会显示所有 artifact(参见下图)。

训练好的模型以及其他元数据文件存储在“/model”目录下。MLFlow 遵循一种标准格式来打包机器学习模型,这些模型可用于各种下游工具,例如通过 REST API 提供实时服务或在 Apache Spark 上进行批量推理。如果您想在本地提供此模型的服务,可以使用 MLFlow 命令行来完成。

mlflow models serve -m local-path-to-model

然后您可以使用 CURL 向模型发送请求以获取预测结果。

curl [http://127.0.0.1:5000/invocations](http://127.0.0.1:5000/invocations) -H 'Content-Type: application/json' -d '{
    "columns": ["age", "sex", "bmi", "children", "smoker", "region"],
    "data": [[19, "female", 27.9, 0, "yes", "southwest"]]
}'

(注意:MLFlow 的此功能暂不支持 Windows 操作系统)。

MLFlow 还提供与 AWS Sagemaker 和 Azure Machine Learning Service 的集成。您可以在 Docker 容器中以 SageMaker 兼容环境在本地训练模型,或远程在 SageMaker 上训练。要远程部署到 SageMaker,您需要设置您的环境和 AWS 用户账户。

使用 MLflow CLI 的示例工作流程

mlflow sagemaker build-and-push-container 
mlflow sagemaker run-local -m <path-to-model>
mlflow sagemaker deploy <parameters>

👉 MLFlow 模型注册中心

MLflow Model Registry 组件是一个集中的模型存储、API 集和用户界面,用于协作管理 MLflow 模型的完整生命周期。它提供模型沿袭(哪个 MLflow 实验和运行生成了模型)、模型版本控制、阶段转换(例如从暂存到生产)和注释。

👉 高分辨率绘图

这并非突破性进展,但对于将 PyCaret 用于研究和出版的人来说确实是一个非常有用的补充。plot_model 现在增加了一个名为“scale”的参数,通过它可以控制分辨率并生成高质量的图用于出版。

**# create linear regression model**
lr = create_model('lr')

**# plot in high-quality resolution
**plot_model(lr, scale = 5) # default is 1

👉 用户定义损失函数

这是自第一个版本发布以来最受期待的功能之一。允许使用自定义/用户定义函数调优模型超参数为数据科学家提供了巨大的灵活性。现在可以在 **tune_model** 函数中使用 **custom_scorer** 参数来使用用户定义的自定义损失函数。

**# define the loss function**
def my_function(y_true, y_pred):
...
...

**# create scorer using sklearn**
from sklearn.metrics import make_scorer**
**my_own_scorer = make_scorer(my_function, needs_proba=True)

**# train catboost model
**catboost = create_model('catboost')

**# tune catboost using custom scorer
**tuned_catboost = tune_model(catboost, custom_scorer = my_own_scorer)

👉 特征选择

特征选择是机器学习中的一个基本步骤。你有大量特征,你想只选择相关的,并丢弃其他的。目的是通过移除无用特征来简化问题,这些特征会引入不必要的噪声。

在 PyCaret 2.1 中,我们引入了 Boruta 算法的 Python 实现(最初是用 R 实现的)。Boruta 是一种相当智能的算法,源于 2010 年,旨在自动对数据集进行特征选择。要使用它,只需在 setup 函数中传递 **feature_selection_method** 参数即可。

exp1 = setup(data, target = 'target-var', feature_selection = True, feature_selection_method = 'boruta')

👉 其他变化

  • compare_models 函数中的 blacklist 和 whitelist 参数现已重命名为 exclude 和 include,功能不变。

  • 为了在 compare_models 函数中设置训练时间的上限,新增了 budget_time 参数。

  • PyCaret 现在兼容 Pandas 的 categorical 数据类型。内部它们会被转换为 object 类型,并像 object 或 bool 一样处理。

  • 数值填充 在 setup 函数的 numeric_imputation 中新增了 zero 方法。当 method 设置为 zero 时,缺失值将被常量 0 替换。

  • 为了使输出更具可读性,predict_model 函数返回的 Label 列现在返回原始值而不是编码值。

重要链接

想了解某个特定模块?

点击以下链接查看文档和工作示例。

如果您以前没有听说或使用过 PyCaret,请参见我们的快速入门。

在 GPU 上进行 XGBoost 训练(使用 Google Colab)
https:/portal.azure.com — 从存储账户获取连接字符串
创建新的服务账户并从 GCP 控制台下载 JSON 文件

要了解如何创建服务账户,请阅读。创建服务账户并从 GCP 控制台下载 JSON 文件后,即可进行部署。

现在打开在您喜欢的浏览器中。

https://localhost:5000 上的 MLFlow UI
MLFLow Artifacts

要了解 MLFlow 的所有部署功能,.

如果运行您自己的 MLflow 服务器,必须使用数据库支持的后端存储才能访问模型注册中心。了解更多信息。但是,如果您正在使用或任何托管的 Databricks 服务,例如,您无需担心任何设置问题。它自带您所需的所有功能。

https://databricks.com/blog/2020/06/25/announcing-mlflow-model-serving-on-databricks.html
PyCaret 生成的高分辨率残差图

要了解更多关于 Boruta 算法的信息,

要了解 PyCaret 2.1 的所有更新,请参见.

使用 Python 中的轻量级工作流程自动化库,您可以实现无限可能。如果您觉得这很有用,请不要忘记在我们的.

关注我们的和.

📖
之前的公告
官方文档
https://localhost:5000
点击此处
点击此处
Databricks
Azure Databricks
点击此处。
发布说明
GitHub 仓库
LinkedIn
Youtube
用户指南
文档
官方教程
示例 Notebooks
其他资源
分类
回归
聚类
异常检测
自然语言处理
关联规则挖掘