PyCaret时间序列模块:低代码实现高效机器学习预测

今天早睡
今天早睡
发布时间:2026-10-16 | 11人浏览过
原创

PyCaret最新推出的时间序列模块以低代码方式简化机器学习工作流。通过几行代码即可完成从数据预处理、统计测试、探索性分析到30多种算法模型训练、超参数调优及云部署的全流程。本文详解setup、compare_models、plot_model等核心函数的使用方法,展示如何利用PyCaret加速实验周期并提升预测效率。

PyCaret是一款开源且低代码的Python机器学习库,旨在自动化整个机器学习工作流。作为端到端的模型管理工具,它能够显著缩短实验周期,成倍提升开发效率。

相较于其他开源库,PyCaret以低代码为核心优势,仅需少量代码即可替代传统数百行代码的工作量,从而指数级提升实验速度与效率。其底层封装了scikit-learn、XGBoost、LightGBM、CatBoost、spaCy、Optuna、Hyperopt、Ray等多个主流机器学习框架。

PyCaret的设计灵感来源于数据科学家的实际需求,旨在降低技术门槛,使执行简单至中等复杂度分析任务变得更为便捷,无需深厚的专业技术背景。

PyCaret时间序列模块

PyCaret新推出的时间序列模块目前处于测试版阶段。该模块延续了PyCaret一贯的简洁风格,API设计与现有模块保持一致,并集成了丰富功能。用户仅需几行代码,即可实现统计测试、30多种算法的模型训练与选择、模型分析、自动超参数调优、实验记录以及云部署等功能。具体使用方法可参考官方提供的快速入门笔记本。

安装该库需使用pip命令。若同一环境中已安装标准版PyCaret,为避免依赖冲突,必须为pycaret-ts-alpha创建独立的运行环境。


pip install pycaret-ts-alpha

接下来安排如下

PyCaret时间序列模块的工作流程设计简洁直观。首先通过setup函数进行初始化,在此步骤中需定义预测范围fh以及交叉验证的折叠次数fold。此外,还可指定fold_strategy为扩展(expanding)或滑动(sliding)模式以适应不同数据特征。

配置完成后,调用知名的compare_models函数,即可自动训练并评估包括ARIMA、XGBoost、TBATS、FBProphet、ETS等在内的30多种算法模型。

plot_model函数支持在模型训练前后使用。训练前调用时,该函数利用Plotly界面生成大量时间序列探索性数据分析(EDA)图表;训练后调用时,则用于处理模型残差分析,帮助用户深入理解模型拟合效果。

最后,使用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库从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)

统计测试


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')

以上就是PyCaret时间序列模块的详细使用指南,更多关于Python机器学习工具PyCaret的资料请关注本站其他相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表