【机器学习】太赞了!几行代码实现30多种时序模型预测

简介

PyCaret是一个开源、低代码的Python机器学习库,可自动执行机器学习工作流。它是一种端到端的机器学习和模型管理工具,可以以指数方式加快实验周期并提高您的工作效率。

与其他开源机器学习库相比,PyCaret是一个替代的低代码库,可用于仅用几行代码替换数百行代码。这使得实验速度和效率呈指数级增长。

PyCaret本质上是围绕多个机器学习库和框架(例如 scikit-learn、XGBoost、LightGBM、CatBoost、spaCy、Optuna、Hyperopt、Ray 等的Python包装器。

PyCaret时间序列模块

PyCaret的新时间序列模块现已提供测试版。秉承 PyCaret 的简单性,它与现有的 API 保持一致,并带有很多功能:模型训练和选择(30多种算法)、模型分析、自动超参数调优、实验记录、云部署等。

pip install pycaret-ts-alpha

使用样例

PyCaret的时间序列模块中的工作流程非常简单。它从setup您定义预测范围,然后设置使用函数训练和评估多种算法。

加载数据

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

【机器学习】太赞了!几行代码实现30多种时序模型预测_第1张图片

# plot the data
data.plot()

【机器学习】太赞了!几行代码实现30多种时序模型预测_第2张图片

初始化设置

from pycaret.time_series import *
setup(data, fh = 7, fold = 3, session_id = 123)

from pycaret.internal.pycaret_experiment import TimeSeriesExperiment
exp = TimeSeriesExperiment()
exp.setup(data, fh = 7, fold = 3, session_id = 123)

【机器学习】太赞了!几行代码实现30多种时序模型预测_第3张图片

统计测试

check_stats()

【机器学习】太赞了!几行代码实现30多种时序模型预测_第4张图片

探索性数据分析

plot_model(plot = 'ts')
exp.plot_model(plot = 'ts')

【机器学习】太赞了!几行代码实现30多种时序模型预测_第5张图片

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

【机器学习】太赞了!几行代码实现30多种时序模型预测_第6张图片

# ACF plot
plot_model(plot = 'acf')

【机器学习】太赞了!几行代码实现30多种时序模型预测_第7张图片

# Diagnostics plot
plot_model(plot = 'diagnostics')

【机器学习】太赞了!几行代码实现30多种时序模型预测_第8张图片

# Decomposition plot
plot_model(plot = 'decomp_stl')

【机器学习】太赞了!几行代码实现30多种时序模型预测_第9张图片

模型训练与选择

best = compare_models()
best = exp.compare_models()

【机器学习】太赞了!几行代码实现30多种时序模型预测_第10张图片

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

【机器学习】太赞了!几行代码实现30多种时序模型预测_第11张图片

tuned_prophet = tune_model(prophet)
print(tuned_prophet)

【机器学习】太赞了!几行代码实现30多种时序模型预测_第12张图片

plot_model(best, plot = 'forecast')

【机器学习】太赞了!几行代码实现30多种时序模型预测_第13张图片

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

【机器学习】太赞了!几行代码实现30多种时序模型预测_第14张图片

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

【机器学习】太赞了!几行代码实现30多种时序模型预测_第15张图片

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

【机器学习】太赞了!几行代码实现30多种时序模型预测_第16张图片

测试部署

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

【机器学习】太赞了!几行代码实现30多种时序模型预测_第17张图片

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

【机器学习】太赞了!几行代码实现30多种时序模型预测_第18张图片

参考资料

pycaret时序文档:https://pycaret.readthedocs.io/en/time_series/api/time_series.html

pycaret时序规划:https://github.com/pycaret/pycaret/issues/1648






往期精彩回顾




适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载中国大学慕课《机器学习》(黄海广主讲)机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑
AI基础下载机器学习交流qq群955171419,加入微信群请扫码:

【机器学习】太赞了!几行代码实现30多种时序模型预测_第19张图片

你可能感兴趣的:(人工智能,算法,python,机器学习,深度学习)