9月份有什么节日| 大红袍适合什么季节喝| 经常腿抽筋是什么原因| 幽门螺杆菌阴性是什么意思| 桃子像什么| 慢性肠炎吃什么药效果好| 月经来吃什么水果好| 红红的太阳像什么| 房水是什么| 嗓子疼看什么科室| 抽烟有什么好处| 王菲属什么生肖| 尿频吃什么药好| 什么运动有助于长高| 纤支镜主要检查什么| 缺钙有什么症状| 什么家欢乐| 孕妇可以吃什么感冒药| 蒲公英泡水喝有什么好处| 慷慨解囊是什么意思| 北瓜是什么瓜| 小狗呕吐吃什么药| 预防水痘吃什么药| 草酸钙结晶是什么意思| 什么是行政拘留| 02年属什么| 女人什么血型最聪明| 68岁属什么| 脉沉是什么意思| 才字五行属什么| 气血不足是什么症状| 副县长是什么级别干部| 大拇指旁边的手指叫什么| bart是什么意思| 如字五行属什么| 芋圆用什么粉做的| 梦见洗车是什么意思| 节瓜煲汤放什么材料| 喉咙细菌感染吃什么药| 收割是什么意思| 面子是什么意思| 手上有湿疹是什么原因引起的| vb是什么| 赞什么不已| 蛰居是什么意思| 尿潴留是什么意思| 一直放屁什么原因| 独占鳌头是什么意思| 肚子胀气放屁吃什么药| 逆来顺受什么意思| 杵状指见于什么疾病| 冠心病什么症状| pgi2在医学是什么意思| 盆腔炎吃什么药有效| 吃什么水果能长高| 党的执政理念是什么| 卸妆用什么最好| 鱼为什么睁着眼睛睡觉| 女人性冷淡吃什么药| 微信头像用什么好| 甲功三项查的是什么| 牙周炎用什么漱口水好| 世界上最深的湖泊是什么| 七月十五有什么忌讳| 不什么为什么| 高铁座位为什么没有e| 痔疮看什么科| 医院总务科是干什么的| 吃什么通大便最快| 胃肠湿热吃什么中成药| 什么是鸡头米| 中考报名号是什么| 五行缺水是什么意思| zuczug是什么牌子| 努尔哈赤是什么民族| 手机越狱什么意思| 双侧乳腺腺病是什么意思| 粉红粉红的什么填空| 龙马精神代表什么生肖| 很的右边读什么| 耳朵上有痣代表什么| 黄精泡水喝有什么功效| 曹操是什么帝| 公务员是做什么工作的| 子是什么生肖| 凤辇是什么意思| 永字五行属什么| 89年什么命| 被毒蛇咬了有什么症状| 肝不好吃什么| 咽喉炎是什么原因引起的| 确认是什么意思| 轻生什么意思| crt是什么| 什么的田野| 养肝护肝吃什么食物好| 干扰素是治什么病的| 势均力敌是什么意思| 咖啡色五行属什么| 质变是什么意思| 惴惴不安什么意思| arf是什么意思| 什么叫认知能力| 伟哥有什么副作用| 手背发麻是什么原因| 闻风丧胆指什么动物| 尿潜血是什么病| 咳黄痰吃什么药好得快| 合肥以前叫什么| 香云纱是什么面料| 左肺钙化灶是什么意思| 父爱是什么| 降钙素原偏高说明什么| 缎面是什么面料| 暮雪是什么意思| 吃什么能减肥| 兔死狗烹是什么生肖| 什么王| kkp什么意思| 阴部潮湿是什么原因| 小美女是什么意思| 千山暮雪结局是什么| 褶子是什么意思| 尿频尿不尽吃什么药| 四查十对的内容是什么| ihc是什么意思| 引产挂什么科| 诺如病毒是什么病| 气压是什么| 手比脸白是什么原因| 6月份什么星座| 7月22日什么星座| 帕金森挂什么科| 退着走路有什么好处| 结节性红斑是什么原因引起的| 米放什么不生虫子| jo是什么意思| 腹直肌是什么| 海棠是什么意思| PT医学上是什么意思| 梦见游泳是什么预兆| 毕业是什么意思| 红豆有什么功效和作用| 又什么又什么| palladium是什么牌子| 定妆用什么好| 血糖高的人吃什么| 细什么细什么| opt是什么| 诞生是什么意思| 真知灼见什么意思| 为什么佛山有三个车牌| 什么是气血| 猪横脷是什么| 仄言是什么意思| 炒菜什么时候放盐最合适| 肾功能三项检查什么| 内膜薄吃什么增长最快| 寒性和凉性有什么区别| 补钾吃什么药| 虚劳病是什么意思| 犯口舌是什么意思| mri是什么检查| 尿酸高什么原因| 柠檬苦是什么原因| 碧池是什么意思| 疏导是什么意思| 59年属什么| 梦到伟人有什么兆头| 杨梅酒有什么功效| 腮腺炎不能吃什么东西| hpa是什么病| 城隍爷是什么神| 裂帛是什么意思| 大力是什么药| 涟漪什么意思| 什么样的人长寿| 过敏性鼻炎吃什么食物好| 血脂四项包括什么| 五十坐地能吸土是什么意思| 胃寒喝什么茶暖胃养胃| 云南白药治什么| 吃雪燕有什么好处| 惊弓之鸟告诉我们什么道理| psp是什么| 二型血糖高吃什么药好| 关节间隙变窄什么意思| 梦女是什么意思| 新疆人是什么人种| mol是什么意思| 心率过低吃什么药| 木薯淀粉是什么做的| 九月三号是什么星座| 新房开火有什么讲究| 重字五行属什么| 紫微星是什么意思| 乳腺癌长在什么位置| 臭男人是什么意思| 狗狗睡姿代表什么图解| 眼底出血用什么药最好| 嗔恨是什么意思| 什么是疖肿| 恭敬地看的词语是什么| 吃什么降血压最快最好方法| 马失前蹄下一句是什么| 鸡蛋可以炒什么菜| 做梦梦见僵尸是什么预兆| 71年出生属什么生肖| 干嘛是什么意思| 胃泌素瘤是什么意思| 痔疮嵌顿是什么意思| 脚踝疼痛是什么原因| 肺有问题会出现什么症状| 胰子是什么意思| 什么相关四字成语| 男人更年期有什么症状有哪些表现| 优生四项是检查什么| 为什么经常放屁| 脂肪瘤是什么引起的| 腺样体面容是什么意思| 烧伤的疤痕怎么去除用什么法最好| 大便隐血阴性是什么意思| 气血不通吃什么药| 叶公好龙告诉我们什么道理| 肾腺瘤是什么病严重吗| 胸部检查挂什么科| 孕妇梦见龙是什么征兆| 耳鸣看什么科| 梦见和死去的亲人说话是什么意思| cim是什么意思| 前列腺ca是什么意思| 升白针是什么药| abo血型是什么意思| 喝陈皮水有什么好处| 粉红色泡沫样痰是什么病| 煲蛇汤放什么材料好| 艾蒿是什么| 静脉曲张 看什么科| 肠道功能紊乱吃什么药效果好| 什么蔬菜含钾高| 瘴气是什么| 市长什么级别| 什么是登革热病| 精液发黄是什么原因| 内痔疮吃什么药最好| 开火车什么意思| 喝什么水最解渴| 材料化学属于什么类| 六点半是什么时辰| 覃读什么| 烁字五行属什么| 儿童身高矮小挂什么科| 淋雨了喝什么驱寒| 超市是什么意思| 消炎药吃多了有什么副作用| 为什么头疼| 上海有什么好玩的地方适合小孩子| 办护照需要准备什么材料| TOYOTA是什么车| 眼睛干涩痒是什么原因| 读书与吃药是什么生肖| 山东吃什么主食| ace是什么意思| 12.21是什么星座| 百度

【传统汽车新能源业务系列研究】吉利新能源业务规划及布局

开发 后端
今天要说到Holt-Winters是利用三次指数平滑来做时间序列预测的方法。Holt-Winters是综合了1957年Holt和1960年Winters两个人的思路的一种方法。
百度 量化评价应该是结果导向,而在量化评价的同时也要重视质性评价,使绩效评价向重大原始创新领域倾斜、向社会治理等民生领域倾斜、向人工智能等国际前沿领域倾斜。

[[408855]]

Python中文社区(ID:python-china)

 1. 什么是Holt-Winters

时间序列是非常常见的数据格式,以[时间,观测值]形式表现,如下图。

现实场景中如股票走势图,国家GDP历年数据,机器cpu利用率,内存数据等都是时间序列。对未来时间的观测值进行预测是有意义的工作,提前预知未来的数据的走势,可以提前做出行动,如预测cpu使用率,如果cpu飙高,可以及早进行调整,避免机器负载过高而宕机,这个在AIOPS是很常见的一个应用场景。

今天要说到Holt-Winters是利用三次指数平滑来做时间序列预测的方法。Holt-Winters是综合了1957年Holt和1960年Winters两个人的思路的一种方法。

一次指数平滑 

我们来看下,一次指数平滑如下图:

可知,si表示第i时刻的平滑估计,si可以表示为当前实际值xi和上一时刻平滑估计值得加权组合,权重由alpha来决定。那为什么称为指数平滑呢?我们来把式子展开,如下:

有点类似泰勒展开式的味道

alpha 属于[0, 1], 越大表示近期的数据影响更大

二次指数平滑:加上趋势的因素

一次指数平滑,没有考虑时间序列的趋势和季节性,二次指数平滑加上趋势因素。

从公式可知,一个时间序列的时刻值分解为baseline部分和趋势部分,t表示趋势,可以表示为连续两个时刻的差值;可知,ti也是一次的指数平滑。

Holt-Winters三次指数平滑:加上季节性因素 

在二次指数平滑基础上,考虑季节性因素,就是三次指数平滑,也就是Holt-Winters。由此,一个时间序列的时刻值分解为baseline部分和趋势部分以及季节部分。由于季节性,存在周期,比如按周,按月等。pi季节性为当前季节性值和上一个周期季节性估计值的加权组合,周期在公式中以k来表示。如下:

2. Holt-Winters的实现

从第一部分可知,要实现Holt-Winters,只要知道:

 •  初始值:s0,t0和p0

 •  合适的参数:alpha,beta, gamma

 •  套入公式即可完成预测

三个重要参数:alpha,beta, gamma都属于[0, 1]之间,要么人为的搜索,要么通过数据来估计,通常采用L-BFGS优化算法来拟合数据。优化算法来自包scipy.optimize的fmin_l_bfgs_b。 

  1. from __future__ import division  
  2. from sys importexit  
  3. from math import sqrt  
  4. from numpy import array  
  5. from scipy.optimize import fmin_l_bfgs_b  
  6. # 优化算法的loss function,即判断拟合效果,由RMSE MAE等  
  7. def RMSE(params, *args):  
  8.     Y = args[0]  
  9.     type = args[1] 
  10.     rmse = 0  
  11.     alpha, beta, gamma = params  
  12.     m = args[2]       
  13.     a = [sum(Y[0:m]) / float(m)]  
  14.     b = [(sum(Y[m:2* m]) - sum(Y[0:m])) / m ** 2]  
  15. if type == 'additive':  
  16.         s = [Y[i] - a[0] for i in range(m)]  
  17.         y = [a[0] + b[0] + s[0]]  
  18. for i in range(len(Y)):  
  19.             a.append(alpha * (Y[i] - s[i]) + (1- alpha) * (a[i] + b[i]))  
  20.             b.append(beta * (a[i + 1] - a[i]) + (1- beta) * b[i])  
  21.             s.append(gamma * (Y[i] - a[i] - b[i]) + (1- gamma) * s[i])  
  22.             y.append(a[i + 1] + b[i + 1] + s[i + 1])  
  23.     rmse = sqrt(sum([(m - n) ** 2for m, n in zip(Y, y[:-1])]) / len(Y))  
  24. return rmse  
  25. # 加性的时间序列  
  26. def additive(x, m, fc, alpha = Nonebeta = Nonegamma = None):  
  27.     Y = x[:]  
  28. # 利用fmin_l_bfgs_b来估计参数alpha beta和gamma  
  29. if(alpha == Noneor beta == Noneor gamma == None):  
  30.         initial_values = array([0.3, 0.1, 0.1])  
  31.         boundaries = [(0, 1), (0, 1), (0, 1)]  
  32.         type = 'additive'  
  33.         parameters = fmin_l_bfgs_b(RMSE, x0 = initial_valuesargs = (Y, type, m), bounds = boundariesapprox_grad = True 
  34.         alpha, beta, gamma = parameters[0]  
  35. # 初始值 a表示baseline, b表示趋势,s表示季节性,y表示预测值, 分别取第一个周期的统计数据为初始值  
  36.     a = [sum(Y[0:m]) / float(m)]  
  37.     b = [(sum(Y[m:2* m]) - sum(Y[0:m])) / m ** 2]  
  38.     s = [Y[i] - a[0] for i in range(m)]  
  39.     y = [a[0] + b[0] + s[0]]  
  40.     rmse = 0  
  41. # 套用上面公式,从0开始,fc表示预测的数量,如已知前7天,预测接下来的一个小时的数据,如果数据粒度是5分钟,fc为12。 
  42. for i in range(len(Y) + fc):  
  43. if i == len(Y):  
  44. # 预测值为  
  45.             Y.append(a[-1] + b[-1] + s[-m])  
  46.         a.append(alpha * (Y[i] - s[i]) + (1- alpha) * (a[i] + b[i])) 
  47.          b.append(beta * (a[i + 1] - a[i]) + (1- beta) * b[i])  
  48.         s.append(gamma * (Y[i] - a[i] - b[i]) + (1- gamma) * s[i])  
  49.         y.append(a[i + 1] + b[i + 1] + s[i + 1]) 
  50.  # 计算rmse值  
  51.     rmse = sqrt(sum([(m - n) ** 2for m, n in zip(Y[:-fc], y[:-fc - 1])]) / len(Y[:-fc]))  
  52. return y[-fc:], alpha, beta, gamma, rmse 

另外,statsmodels包中也提供的实现的方法 

  1. from statsmodels.tsa.holtwinters importExponentialSmoothing 

3. Holt-Winters参数

从上面实现可知,holt-winters通过预估alpha,beta和gamma来预测。算法的关键就是这三个参数和初始化值。三个参数可以通过优化算法来预估,但有可能并不是最优的。初始值的设置除了上面统计值外,还可以通过时序的分解的趋势和季节部分来初始。 

  1. import numpy as np  
  2. from pandas import read_csv  
  3. import matplotlib.pyplot as plt  
  4. from statsmodels.tsa.seasonal import seasonal_decompose  
  5. decomposition = seasonal_decompose(df_clean.bw, model='additive'period=288 
  6. decomposition.plot() 

Holt-Winters针对波形比较稳定,没有突刺的情况下,效果会比较好。

对于存在突刺,统一的alpha,beta,gamma不能很好拟合,预测可能会滞后。

4. 总结

本文分享了时间序列预测算法Holt-Winters以及重要参数的选择,希望对你有帮助。总结如下:

 •  Holt-Winters是三次指数平滑,分别为baseline,趋势和季节性;

 •  alpha、beta和gamma分别为baseline,趋势和季节性的指数加权参数,一般通过优化算法L-BFGS估计

 •  初始化可通过平均值,也可通过时间序列分解得到

 •  周期m或者k的选择要根据实际数据来选择

 •  Holt-Winters针对波形比较稳定,没有突刺的情况下,效果会比较好 

 

责任编辑:庞桂玉 来源: Python中文社区
相关推荐

2025-08-05 21:46:30

PythonHot-Winters数据

2025-08-05 16:23:14

2025-08-05 16:38:57

2025-08-05 10:02:00

XGBoostPython代码

2025-08-05 15:34:55

时间序列TimesNet

2025-08-05 13:13:58

2025-08-05 13:32:47

2025-08-05 16:02:58

2025-08-05 18:09:00

机器学习数据集

2025-08-05 09:00:00

机器学习人工智能数据库

2025-08-05 16:46:41

2025-08-05 17:10:23

DeepTime元学习

2025-08-05 11:51:40

KerasLSTM深度学习

2025-08-05 07:27:30

CnosDB数据库

2025-08-05 16:36:48

2025-08-05 17:00:01

模型ARDL开发

2025-08-05 15:20:00

模型数据

2025-08-05 07:34:28

XGBoostInluxDB时间序列

2025-08-05 11:46:50

时间序列概率预测

2025-08-05 22:37:42

时间序列NLP
点赞
收藏

51CTO技术栈公众号

属鸡的本命佛是什么佛 血压高什么原因引起的 男士戴什么手串好 脸上白一块一块的是什么原因 女生阴道长什么样
早上尿黄是什么原因 猫的耳朵有什么作用 额头上长痘痘是什么原因 梦见被鱼咬是什么意思 小狗感冒了吃什么药
身上红痣多是什么原因 严惩不贷是什么意思 表白送什么礼物好 吃什么保养子宫和卵巢 退烧药吃什么
家里出现蛇是什么征兆 花枝鼠吃什么 什么的海风 血糖高吃什么水果好 大熊猫属于什么科
泸州老窖什么档次hcv8jop7ns2r.cn 何五行属什么hcv9jop4ns3r.cn naoh是什么520myf.com 八岁属什么生肖cl108k.com 治疗狐臭挂什么科qingzhougame.com
肺大泡有什么症状hcv9jop4ns6r.cn 蓝姓是什么民族bjcbxg.com 盗汗吃什么药hcv7jop4ns6r.cn 慢性宫颈炎用什么药好hcv9jop3ns2r.cn 抗血小板是什么意思hcv8jop1ns1r.cn
胸口正中间疼痛是什么病症hcv8jop9ns0r.cn 湿邪是什么意思hcv9jop4ns6r.cn 石斛是什么东西hcv8jop6ns2r.cn ct和拍片有什么区别hcv7jop6ns2r.cn pd-l1是什么aiwuzhiyu.com
帽子的英文是什么hcv8jop6ns3r.cn 为什么没有win9hcv8jop7ns6r.cn 有才是什么意思hcv9jop6ns4r.cn MECT是什么hcv9jop4ns4r.cn 什么是有机蔬菜hcv7jop7ns1r.cn
百度