MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 精选文章 / 正文

一文带您了解PyCaret(炼丹神器):时间序列分析(Time Series)示例

2025-03-05 16:27 huorong 精选文章 4 ℃ 0 评论

在上两篇短文中:

一文带您了解PyCaret:从数据到见解,快速进行机器学习模型开发

一文带您了解PyCaret(炼丹神器):回归分析(Regression)示例探秘

我们简要介绍了PyCaret的特点以及针对分类问题的建模、回归分析的建模示例。在实际的机器学习问题中,时间序列(Time Series)也是十分重要的。

本文将继续探讨PyCaret在时间序列(Time Series)上的应用示例。关于时间序列分析的介绍可以参考:

一文带您了解时间序列分析和预测

一文带您了解时间序列的特征工程(Feature Engineering)方法》。

什么是时间序列(Time Series)

时间是标注事件发生瞬间及持续历程的基本物理量,时间是运动着的物质的存在形式,它表示物质运动过程的持续性(时间是物质运动的存在方式)。

时间序列是指将同一统计指标的数值按其发生的时间先后顺序排列成的数列。

时间序列的类型主要包括:

  • (purely random error-no recognizable pattern)当时间序列呈现纯随机时,数据没有明显的可预测模式,表现为随机波动。
  • (curvilinear trend(quadratic,exponential))二次或指数曲线趋势表示数据在不断变化,并可能呈现出弯曲或指数式的趋势,而不仅仅是线性增长。
  • (increasing linear trend)线性增长趋势表明时间序列的数据随着时间的推移呈现出持续线性增加或减少的趋势。
  • (seasonal pattern )季节模式表现为时间序列在特定时间周期内出现重复的模式,通常受季节性因素的影响,如季节销售波动。
  • (seasonal pattern plus linear growth)季节模式与线性增长的组合表示数据不仅具有季节性模式,还伴随着持续的线性增长或减少,这可能反映了季节性因素和趋势的共同影响。

PyCaret时间序列(Time Series)示例

1.加载数据

from pycaret.datasets import get_data
import pandas as pd
#data = get_data('airline')
data=pd.read_pickle('airline.pkl')
data

2.创建机器学习pipeline/setup

from pycaret.time_series import *
exp1 = TSForecastingExperiment()
exp1.setup(data = data,  fh = 12)

fh 是用于预测的预测时间范围。默认设置为 1,即预测一个点。

3.plot_model

exp1.plot_model(plot="train_test_split")
exp1.plot_model(plot="cv")
exp1.plot_model(plot="acf")
exp1.plot_model(plot="pacf")
exp1.plot_model(plot="diagnostics")

4.check_stats(残差分析)

check_stats 提供对原始时间序列数据或拟合模型的残差进行全面的统计分析。

exp1.check_stats()

5.predict_mode(模型预测)

best = exp1.compare_models()
exp1.predict_model(best, fh=24)
exp1.plot_model(best, plot="forecast")


本文介绍了PyCaret在时间序列分析上的应用示例。通过PyCaret,我们可以进行时间序列数据的预处理、建模、评估和预测,以及对模型进行残差分析等操作。PyCaret提供了丰富的功能和可视化工具,使时间序列分析变得简单而高效。利用PyCaret,用户可以快速构建和比较不同的时间序列模型,并进行准确的预测。

Tags:timeseries

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言