PyCaret时间序列模块:低代码实现高效机器学习预测
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的资料请关注本站其他相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









