理解滑动平均(exponential moving average)

9 篇文章 1 订阅
1 篇文章 0 订阅

enmm,关于这个EMA算法,是在flink源码偶然间看到的,在网上搜了几篇EMA算法的介绍,感觉就这个介绍的很好=,=


1、用滑动平均估计局部均值

滑动平均(exponential moving average),或者叫做指数加权平均(exponentially weighted moving average),可以用来估计变量的局部均值,使得变量的更新与一段时间内的历史取值有关。

变量 v v v t t t时刻记为 v t v_{t} vt θ t θ_{t} θt 为变量 v v v t t t 时刻的取值,即在不使用滑动平均模型时 v t v_{t} vt= θ t θ_{t} θt,在使用滑动平均模型后, v t v_{t} vt 的更新公式如下:

v t = β ⋅ v t − 1 + ( 1 − β ) ⋅ θ t v_{t}=β⋅v_{t}−1+(1−β)⋅θ_{t} vt=βvt1+(1β)θt
上式中, β ∈ [ 0 , 1 ) β∈[0,1) β[0,1) β = 0 β=0 β=0 相当于没有使用滑动平均。
假设起始 v 0 = 0 , β = 0.9 v_{0}=0,β=0.9 v0=0β=0.9,之后每个时刻,依次对变量 v 进行赋值,不使用滑动平均和使用滑动平均结果如下:

表1 三种变量更新方式
t不使用滑动平均模型,即给v直接赋值θ使用滑动平均模型,按照公式(1)更新v使用滑动平均模型,按照公式(2)更新v_biased
0, 1, 2, … , 35[0, 10, 20, 10, 0, 10, 20, 30, 5, 0, 10, 20, 10, 0, 10, 20, 30, 5, 0, 10, 20, 10, 0, 10, 20, 30, 5, 0, 10, 20, 10, 0, 10, 20, 30, 5][0, 1.0, 2.9, 3.61, 3.249, 3.9241, 5.5317, 7.9785, 7.6807, 6.9126, 7.2213, 8.4992, 8.6493, 7.7844, 8.0059, 9.2053, 11.2848, 10.6563, 9.5907, 9.6316, 10.6685, 10.6016, 9.5414, 9.5873, 10.6286, 12.5657, 11.8091, 10.6282, 10.5654, 11.5089, 11.358, 10.2222, 10.2, 11.18, 13.062, 12.2558][0, 10.0, 15.2632, 13.321, 9.4475, 9.5824, 11.8057, 15.2932, 13.4859, 11.2844, 11.0872, 12.3861, 12.0536, 10.4374, 10.3807, 11.592, 13.8515, 12.7892, 11.2844, 11.1359, 12.145, 11.9041, 10.5837, 10.5197, 11.5499, 13.5376, 12.6248, 11.2844, 11.1489, 12.0777, 11.8608, 10.6276, 10.5627, 11.5365, 13.4357, 12.5704]

==》

在这里插入图片描述

图 1:三种变量更新方式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值