效率倍增,PyCaret:一个开源低代码的 Python 机器学习工具

Posted Python学习与数据挖掘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了效率倍增,PyCaret:一个开源低代码的 Python 机器学习工具相关的知识,希望对你有一定的参考价值。

PyCaret 是一个开源、低代码的 Python 机器学习库,可自动执行机器学习工作流。它是一种端到端的机器学习和模型管理工具,可以以指数方式加快实验周期并提高您的工作效率。欢迎收藏学习,喜欢点赞支持,文末提供技术交流群。

与其他开源机器学习库相比,PyCaret 是一个替代的低代码库,可用于仅用几行代码替换数百行代码。 这使得实验速度和效率呈指数级增长。 PyCaret 本质上是围绕多个机器学习库和框架(例如 scikit-learn、XGBoost、LightGBM、CatBoost、spaCy、Optuna、Hyperopt、Ray 等)的 Python 包装器。

PyCaret 的设计和简单性受到数据科学家这一新兴角色的启发,可以执行以前需要更多技术专长的简单和中等复杂的分析任务。

PyCaret 时间序列模块

PyCaret 的新时间序列模块现已提供测试版。 秉承 PyCaret 的简单性,它与现有的 API 保持一致,并带有很多功能。 统计测试、模型训练和选择(30 多种算法)、模型分析、自动超参数调优、实验记录、云部署等, 所有这一切只需要几行代码(就像 pycaret 的其他模块一样)。 如果您想尝试一下,请查看官方的快速入门笔记本。

您可以使用 pip 安装此库。 如果你在同一个环境中安装了 PyCaret,由于依赖冲突,你必须为 pycaret-ts-alpha 创建一个单独的环境。

pip install pycaret-ts-alpha

接下来安排如下

PyCaret 的时间序列模块中的工作流程非常简单。 它从设置功能开始,您可以在其中定义预测范围 fh 和折叠次数。 您还可以将 fold_strategy 定义为扩展或滑动。

设置后,著名的 compare_models 函数训练和评估从 ARIMA 到 XGboost(TBATS、FBProphet、ETS 等)的 30 多种算法。

plot_model 函数可以在训练之前或之后使用。 在训练前使用时,它使用 plotly 界面收集了大量时间序列 EDA 图。 与模型一起使用时,plot_model 处理模型残差,并可用于访问模型拟合。

最后,predict_model 用于生成预测。

加载数据

import pandas as pd
from pycaret.datasets import get_data
data = get_data('pycaret_downloads')
data['Date'] = pd.to_datetime(data['Date'])
data = data.groupby('Date').sum()
data = data.asfreq('D')
data.head()

# plot the data
data.plot()


这个时间序列是从 pip 每天下载 PyCaret 库的次数。

初始化设置

# with functional API
from pycaret.time_series import *
setup(data, fh = 7, fold = 3, session_id = 123)
# with new object-oriented API
from pycaret.internal.pycaret_experiment import TimeSeriesExperiment
exp = TimeSeriesExperiment()
exp.setup(data, fh = 7, fold = 3, session_id = 123)

统计测试

check_stats()

探索性数据分析

# functional API
plot_model(plot = 'ts')
# object-oriented API
exp.plot_model(plot = 'ts')

# cross-validation plot
plot_model(plot = 'cv')

# ACF plot
plot_model(plot = 'acf')

# Diagnostics plot
plot_model(plot = 'diagnostics')

# Decomposition plot
plot_model(plot = 'decomp_stl')

模型训练和选择

# functional API
best = compare_models()
# object-oriented API
best = exp.compare_models()


时间序列模块中的 create_model 就像在其他模块中一样。

# create fbprophet model
prophet = create_model('prophet')
print(prophet)



tune_model 也没有太大不同。

tuned_prophet = tune_model(prophet)
print(tuned_prophet)

plot_model(best, plot = 'forecast')

# forecast in unknown future
plot_model(best, plot = 'forecast', data_kwargs = 'fh' : 30)

# in-sample plot
plot_model(best, plot = 'insample')

# residuals plot
plot_model(best, plot = 'residuals')

# diagnostics plot
plot_model(best, plot = 'diagnostics')

保存模型

# finalize model
final_best = finalize_model(best)
# generate predictions
predict_model(final_best, fh = 90)

# save the model
save_model(final_best, 'my_best_model')

技术交流

欢迎转载、收藏、有所收获点赞支持一下!

目前开通了技术交流群,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

  • 方式①、发送如下图片至微信,长按识别,后台回复:加群;
  • 方式②、添加微信号:dkl88191,备注:来自CSDN
  • 方式③、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

以上是关于效率倍增,PyCaret:一个开源低代码的 Python 机器学习工具的主要内容,如果未能解决你的问题,请参考以下文章

几行代码搞定ML模型,低代码机器学习Python库正式开源

机器学习_自动建模工具PyCaret

PyCaret - 如何在 Spyder 中获得与 Jupyter Notebook 相似的输出

PyCaret 的 OSError Traceback(最近一次调用最后一次)

让开发效率倍增,GitHub 上线代码搜索平台:Code Search!

pycaret 和 H2O 的异常检测结果不同