前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Holt-Winters季节性预测模型

Holt-Winters季节性预测模型

作者头像
裴来凡
发布2022-05-29 10:35:47
1.6K0
发布2022-05-29 10:35:47
举报
代码语言:javascript
复制
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from sklearn.metrics import mean_squared_error
from math import sqrt
from statsmodels.tsa.api import SimpleExpSmoothing
import statsmodels.api as sm
from statsmodels.tsa.api import Holt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False  
df=pd.read_csv('C:/Users/xpp/Desktop/data.csv', nrows=11856)
#创建训练和测试集
train=df[0:10300]
test=df[10300:]
#数据聚合
df['Timestamp']=pd.to_datetime(df['Datetime'],format='%d-%m-%Y %H:%M')#4位年用Y,2位年用y
df.index=df['Timestamp']
df=df.resample('D').mean()#按天采样,计算均值
train['Timestamp']=pd.to_datetime(train['Datetime'],format='%d-%m-%Y %H:%M')
train.index=train['Timestamp']
train=train.resample('D').mean()
test['Timestamp']=pd.to_datetime(test['Datetime'],format='%d-%m-%Y %H:%M')
test.index=test['Timestamp']
test=test.resample('D').mean()
#rms=sqrt(mean_squared_error(test.Count,y_hat_exp_avg.SES))
#print("SES",rms)
#绘图
y_hat_avg=test.copy()
fit1=ExponentialSmoothing(np.asarray(train['Count']),seasonal_periods=7,trend='add',seasonal='add',).fit()
y_hat_avg['Holt_Winter']=fit1.forecast(len(test))
plt.figure(figsize=(16,8))
plt.plot(train['Count'],label='Train')
plt.plot(test['Count'],label='Test')
plt.plot(y_hat_avg['Holt_Winter'],label='Holt_Winter')
plt.legend(loc='best')
plt.show()

算法:Holt-Winters季节性预测模型是一种三次指数平滑预测,除了水平和趋势外,还将指数平滑应用到季节分量上。

文献:张丽, & 闫世锋. (2006). Holt-winters方法与arima模型在中国航空旅客运输量预测中的比较研究. 上海工程技术大学学报, 20(3), 4.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-04-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图像处理与模式识别研究所 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档