原文:
www.kdnuggets.com/2021/12/pycaret-new-time-series-module.html
评论
作者及创始人 Moez Ali
(图像来自作者) PyCaret 新时间序列模块
PyCaret 是一个开源的低代码机器学习库,能够自动化机器学习工作流。它是一个端到端的机器学习和模型管理工具,能显著加快实验周期,提高你的生产力。
与其他开源机器学习库相比,PyCaret 是一个低代码替代库,它可以用几行代码替代数百行代码。这使得实验变得快速且高效。PyCaret 本质上是多个机器学习库和框架(如 scikit-learn、XGBoost、LightGBM、CatBoost、spaCy、Optuna、Hyperopt、Ray 等)的 Python 封装。
PyCaret 的设计和简洁性受到了“公民数据科学家”这一新兴角色的启发,这一术语首次由 Gartner 提出。公民数据科学家是能够执行简单和中等复杂分析任务的高级用户,这些任务以前需要更多的技术专长。
PyCaret 的新时间序列模块现已处于 beta 阶段。保持 PyCaret 的简洁性,它与现有 API 一致,并具有许多功能。包括统计测试、模型训练与选择(30+ 算法)、模型分析、自动化超参数调优、实验记录、云部署等。所有这些功能仅需少量代码(就像 pycaret 的其他模块一样)。如果你想尝试,可以查看官方的 快速入门 笔记本。
你可以使用 pip 安装这个库。如果你在同一环境中安装了 PyCaret,你必须为 pycaret-ts-alpha
创建一个单独的环境,因为存在依赖冲突。pycaret-ts-alpha
将在下一个主要版本中与主 pycaret 包合并。
pip install pycaret-ts-alpha
PyCaret 的时间序列模块工作流程非常简单。它从 setup
函数开始,在这里你定义预测范围 fh
和折叠数 folds
。你还可以将 fold_strategy
定义为 expanding
或 sliding
。
在设置完成后,著名的 compare_models
函数会训练和评估 30+ 种算法,从 ARIMA 到 XGboost(TBATS、FBProphet、ETS 等)。
plot_model
函数可以在训练前或训练后使用。在训练前使用时,它提供了一系列时间序列 EDA 图表,使用 plotly 接口。当与模型一起使用时,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()
(图像来自作者)‘pycaret_downloads’的时间序列图
这个时间序列是 PyCaret 库从 pip 每日下载次数的数据。
**# 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)
(图像来自作者)setup 函数的输出
check_stats()
(图像来自作者)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()
(图像来自作者)compare_models 函数的输出
create_model
在时间序列模块中的工作方式与在其他模块中的工作方式完全相同。
**# create fbprophet model** prophet = create_model('prophet')
print(prophet)
(图像来自作者)create_model 函数的输出
(图像来自作者)打印函数的输出
tune_model
也没有太大区别。
tuned_prophet = tune_model(prophet)
print(tuned_prophet)
(图像来自作者)tune_model 函数的输出
(图像来自作者)打印函数的输出
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')
(图像来自作者)
该模块仍处于 beta 版。我们每天都在添加新功能,并进行每周的 pip 发布。请确保创建一个独立的 Python 环境,以避免与主 pycaret 的依赖冲突。该模块的最终版本将与下一次主要版本的 pycaret 合并。
???? 时间序列文档
???? 功能与路线图
开发人员:
Nikhil Gupta (主讲), Antoni Baum Satya Pattnaik Miguel Trejo Marrufo Krishnan S G
使用这个轻量级的 Python 工作流自动化库,你可以实现无限可能。如果你觉得有用,请不要忘记在我们的 GitHub 仓库上给我们 ⭐️。
想了解更多关于 PyCaret 的信息,请关注我们 LinkedIn 和 Youtube。
加入我们的 Slack 频道。邀请链接 这里。
⭐ 教程 新手入门 PyCaret?查看我们的官方笔记本!
???? 示例笔记本 由社区创建。
???? 博客 贡献者的教程和文章。
???? 文档 PyCaret 的详细 API 文档
???? 视频教程 我们的各类活动视频教程。
???? 讨论区 有问题?与社区和贡献者互动。
????️ 更新日志 变更和版本历史。
???? 路线图 PyCaret 的软件和社区发展计划。
个人简介:Moez Ali 讨论 PyCaret 及其实际应用。如果你希望自动接收通知,可以在 Medium、LinkedIn 和 Twitter 上关注 Moez。
原文。经允许转载。
相关:
-
多变量时间序列分析与基于 LSTM 的 RNN
-
PyCaret 2.3.5 新版发布!了解新功能
-
前 5 大时间序列方法
1. Google 网络安全证书 - 快速进入网络安全职业道路。
2. Google 数据分析专业证书 - 提升你的数据分析技能
3. Google IT 支持专业证书 - 支持您的组织的 IT