PyCaret 入门

17 Mar 2025 | 6 分钟阅读

在本文中,我想讨论 PyCaret,这是一个新的 Python 机器学习库。PyCaret 被誉为一个低代码资源,旨在缩短机器学习实验的“假设到洞察的周期时间”。它使得数据科学家能够快速有效地完成实验。借助 PyCaret 库,只需几行代码即可完成复杂的机器学习任务。

PyCaret 由数据科学家 Moez Ali 创建,该项目始于 2019 年夏天。公民数据科学家新兴的角色,他们补充了专业数据科学家,并将他们的专业知识和独特技能带入分析驱动的任务,这激发了他对该项目的兴趣。然而,由于其简单性、便利性和低代码环境,PyCaret 对本土信息研究人员来说非常有用;熟练的信息研究人员也可以将其作为其人工智能工作流程的一部分,以快速有效地构建模型。Ali 告诉我,PyCaret 与 R 中的 caret 包没有直接关联;然而,它受到了 caret 制造商 Dr. Max Kuhn 在 R 中的工作的启发。Caret 名称是“特征化和回归训练”的缩写。

PyCaret 的创建者 Moez Ali 说:“与其他开源人工智能库相比,PyCaret 是一个低代码库,可以用很少的词来替换许多代码行。”“实验速度和效率呈指数级增长。”

PyCaret 1.0.0 的初始版本于 2020 年 4 月发布,最新版本 2.1 于 2020 年 8 月 28 日发布。

PyCaret 是一个强大的 Python 库,它简化并优化了从头到尾的机器学习工作流程。它对于需要高效构建、检查和部署人工智能模型而无需深入编码每一步细节的数据科学家、研究人员和人工智能专业人士尤其有价值。在不深入代码细节的情况下,以下是 PyCaret 的概述:

  • AutoML(自动化机器学习): AutoML,或机器学习,是 PyCaret 的基础。数据预处理、特征选择、模型训练、超参数调整和模型评估都是 AutoML 工具旨在自动化的机器学习过程的一部分。
  • 友好的用户界面: PyCaret 拥有一个易于使用和理解的界面,可用于各种机器学习任务。它能够进行最常见的数据加载和规划、可视化数据分布以及执行基本数据预处理步骤,例如处理缺失值和编码分类变量。
  • 模型准备和确定: PyCaret 的基本功能之一是能够轻松地准备和比较各种人工智能模型。它允许用户从多种算法中进行选择,例如回归、分类、聚类和异常检测,并自动将这些算法应用于数据。然后,PyCaret 使用各种性能指标对模型进行排名和比较。
  • 超参数调整: PyCaret 通过自动超参数调整来优化所选的机器学习模型。这个过程包括找到模型超参数的最佳组合以提高模型性能。
  • 模型可解释性: PyCaret 通过提供模型解释工具,使理解机器学习模型如何进行预测变得更加容易。为了帮助用户深入了解他们的模型,它会生成特征重要性图、SHAP(Shapley 加法解释)值和其他可解释性指标。
  • 模型部署: 当确定了令人满意的模型后,PyCaret 便于进行模型部署。用户可以将他们的模型部署到实际应用程序中,例如 Web 应用程序、API 或批处理管道。
  • 可扩展性和可重现性: PyCaret 在设计上能够处理大型数据集,并且可以扩展以处理更大的数据问题。它还通过跟踪所有预处理步骤、模型配置和结果,使得实验的重现和共享更加容易。
  • 丰富的文档和社区支持: 为了帮助用户理解和解决问题,PyCaret 提供了丰富的文档、教程和社区论坛。社区活跃,经常为初学者提供支持和指导。
  • 与其他库的兼容性: 为了利用机器学习管道的功能,PyCaret 可以与流行的 Python 库集成,例如 scikit-learn、XGBoost、LightGBM 等。
  • 数据可视化: PyCaret 的用户可以在各种数据可视化工具的帮助下深入了解他们的数据。它提供交互式图表和图形来可视化特征分布、相关性和模型性能指标。对于数据探索和模型选择,这些可视化非常宝贵。
  • 数据预处理: PyCaret 简化了数据预处理任务,例如处理缺失值、编码分类变量和缩放特征。通过自动化这些步骤,用户可以更专注于模型构建过程。
  • 集成方法: PyCaret 支持集成方法,将多个 AI 模型结合起来以提高整体性能。用户可以轻松创建集成模型,如装袋、增强和堆叠,以提高预测准确性。
  • 时间序列分析: PyCaret 已添加了时间序列分析功能,使其适用于基于时间序列数据的预测和预测建模任务。它包含了时间序列交叉验证和自动滞后选择等功能。
  • 自然语言处理 (NLP): PyCaret 已将其功能扩展到包括 NLP 任务。用户可以执行文本预处理、特征工程,并构建文本分类模型,用于情感分析或文本分类等应用程序。

为什么要使用 PyCaret?

PyCaret 是一个有用的库,可以帮助初创公司节省聘请数据科学家团队的成本,并使公民数据科学家更容易执行机器学习任务。假设是——较少的数据科学家使用 PyCaret 可以与使用传统工具的较大团队相媲美。此外,这个库帮助了公民数据科学家和新手,他们希望开始探索数据科学,但在这个领域缺乏先前的知识。

Introduction to PyCaret

PyCaret 是一个 Python 包装器,涵盖了几个 AI 库和框架,包括 scikit-learn、XGBoost、Microsoft LightGBM、spaCy 等。

PyCaret 的目标受众是:

  • 希望提高效率的经验丰富的数据科学家
  • 可以从低代码 AI 解决方案中受益的公民数据科学家
  • 数据科学专业的学生(我打算将 PyCaret 纳入我即将开设的“数据科学导论”课程中)
  • 参与构建项目 MVP 版本的数据科学从业者和顾问。

使用 PyCaret

让我们快速看一下 PyCaret 的一些重要功能:

  • compare_models 函数使用交叉验证来评估性能指标,并使用默认超参数训练模型库中的所有模型。用于分类的指标包括精确度、召回率、准确率、AUC、F1、Kappa 和 MCC。回归指标包括 R2、RMSLE、MAPE、MSE、RMSE 和 MAE。
  • create_model 函数使用交叉验证来评估性能指标,并使用默认超参数训练模型。
  • tune_model 函数使用一个估计器来调整模型的超参数。它采用了随机网格搜索,并具有完全可定制的预定义调优网格。
  • 在收到训练好的模型对象后,ensemble_model 函数返回一个表格,其中包含常见评估指标的 k 折交叉验证分数。
  • predict_model 是一个预测和推理工具。
  • plot_model - 用于评估已训练 AI 模型的性能。
  • 实用函数 - 在使用 PyCaret 处理 AI 实验时非常有用的实用函数。
  • 实验日志:当您运行机器学习代码时,PyCaret 会将 MLflow 跟踪组件嵌入为后端 API 和 UI,用于记录参数、代码版本、指标和输出文件以供后续分析。

2.1 版本中的新功能包括:

  • 在 GPU 上,现在可以调整各种模型的超参数:XGBoost、LightGBM 和 Catboost。
  • deploy_model 函数之前仅在 AWS 上可用,现已扩展其部署训练模型的功能,包括部署到 Microsoft Azure 和 GCP。
  • plot_model 功能现在包含一个新的“scale”参数,您可以使用它来控制分辨率并为您的探索性数据可视化需求生成高质量的图表。
  • 通过 tune_model 函数中的新 custom_scorer 参数,现在可以使用用户定义的自定义损失函数。
  • PyCaret 中现已包含 Boruta 算法,用于改进特征工程。Boruta 最初于 2010 年 9 月在《统计软件杂志》上作为 R 包发布。自那时以来,它已被移植到 Python。

开始使用 PyCaret

PyCaret 配备了一系列精心设计的教程(每个教程都有自己的 GitHub 仓库),涵盖了数据科学家改进的许多重要领域。教程涵盖 NLP、聚类、异常检测、分类、回归和关联规则挖掘。此外,还有一些视频教程,使得学习这些强大工具相对容易。

总而言之,PyCaret 是一个重要的工具,适用于需要简化 AI 流程(从数据准备到模型部署)的数据科学家和 AI 专业人士。它提供了一种高效且用户友好的方法来探索各种 AI 模型和技术,而无需大量的编码,这使其成为初学者和经验丰富的从业者的绝佳选择。


下一个主题Python Trie 入门