ITPub博客

首页 > 数据库 > 数据库开发技术 > 使用sktime快速实现多种类型的预测算法

使用sktime快速实现多种类型的预测算法

原创 数据库开发技术 作者:derekwh 时间:2024-05-03 13:30:41 0 删除 编辑

时序预测(Time Series Forecasting)是机器学习领域中的一个重要分支,它涉及对历史数据的分析,以预测未来的数据点。sktime是一个开源的Python库,专门为时间序列分析和预测而设计。它提供了许多工具和算法,可以方便地进行时间序列数据的预处理、建模、评估和参数调优。

本文介绍如何使用sktime进行时序预测。

1. 安装和导入sktime

首先,确保你已经安装了sktime。

pip install sktime

然后,导入所需的库:

from sktime.datasets import load_airline
from sktime.forecasting.base import ForecastingHorizon
from sktime.forecasting.naive import NaiveForecaster
from sktime.utils.plotting import plot_series
import numpy as np
import pandas as pd

2. 建模及预测

sktime提供了一些内置的数据集,例如航空客运量数据集,根据该数据使用朴素模型进行预测。

# step 1: 导入数据
y = load_airline()

# step 2: 设定预测区间
fh = np.arange(1, 37)

# step 3: 设定预测算法
forecaster = NaiveForecaster(strategy="last", sp=12)

# step 4: 模型拟合
forecaster.fit(y)

# step 5: 模型预测
y_pred = forecaster.predict(fh)
# 画图
plot_series(y, y_pred, labels=["y", "y_pred"])

3. 预测时间拉长

可以调整预测时间,来制定更长的预测区间。

# step 1: 导入数据
y = load_airline()

# step 2: 设定预测区间
fh = np.arange(1, 100)

# step 3: 设定预测算法
forecaster = NaiveForecaster(strategy="last", sp=12)

# step 4: 模型拟合
forecaster.fit(y)

# step 5: 模型预测
y_pred = forecaster.predict(fh)
# 画图
plot_series(y, y_pred, labels=["y", "y_pred"])

4. 选择预测算法

sktime提供了多种预测算法,我们可以根据实际业务场景选择合适的算法。本文基础案例使用朴素模型进行预测,假如我想使用指数平滑预测,代码更新如下(为方便比较,同时输出两套算法结果图):

from sktime.forecasting.exp_smoothing import ExponentialSmoothing
# step 1: 导入数据
y = load_airline()

# step 2: 设定预测区间
fh = np.arange(1, 100)

# step 3: 设定预测算法
forecaster = ExponentialSmoothing(trend='add', seasonal='multiplicative', sp=12)  

# step 4: 模型拟合
forecaster.fit(y)

# step 5: 模型预测
y_pred = forecaster.predict(fh)
# 画图
plot_series(y, y_pred, labels=["y", "y_pred"])
# step 1: 导入数据
y = load_airline()

# step 2: 设定预测区间
fh = np.arange(1, 100)

# step 3: 设定预测算法
forecaster = NaiveForecaster(strategy="last", sp=12)

# step 4: 模型拟合
forecaster.fit(y)

# step 5: 模型预测
y_pred = forecaster.predict(fh)
# 画图
plot_series(y, y_pred, labels=["y", "y_pred"])

5. 其他

sktime也提供了多种复杂预测模型的参数设定,感兴趣的可以去官网查阅。

官网地址: 

https://www.sktime.net/en/stable/

总结

本文介绍了如何使用sktime进行时序预测的基本方法,sktime可以构建一个强大的时序预测模型,为业务决策提供数据支持。

最后,本文代码只是一个基本的示例,实际应用中需要根据具体的数据和业务需求进行调整和优化。想使用某个包解决实际业务问题还需深入研究,然后搭建更贴近业务实际的模型。


原文作者:Python学习杂记;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
央企算法工程师,微信公众号: python数智工坊

注册时间:2021-03-14

  • 博文量
    305
  • 访问量
    162407