指数加权平均

image

对于上面的数据,如何用一条平滑的曲线拟合上面的数据呢?我们希望不要因为个别的噪点影响整个数据流动的趋势.

可以对数据进行如下处理:

V_t = \beta V_{t-1} + (1-\beta)\theta_t

其中 \theta_t 代表当前时刻的数据, V_t 表示处理后当前时刻的数据, V_{t-1} 为前一刻的数据. \beta 为参数.

从公式可以看到当前时刻的数值不仅仅取决于当前时刻的值,而且取决于前一刻的值,这大大加强了曲线的稳定性.

\beta = 0.5 时:

image

\beta = 0.7 时:
image

\beta = 0.9 时:
image

从上图中看到初始时曲线总是偏低,这是因为没有 V_0 ,初始设置 V_0=0 ,这相当于:

V_1 = (1-\beta)\theta_t

为了避免这个问题,可以这样处理:

V^c = \frac { V _ { t } } { 1 - \beta ^ { t } }

image

为什么叫指数加权平均?

根据公式,知:

V_{10} = \beta V_{9} + (1-\beta)\theta_{10}

V_{9} = \beta V_{8} + (1-\beta)\theta_{9}

V_{8} = \beta V_{7} + (1-\beta)\theta_{8}

V_{7} = \beta V_{6} + (1-\beta)\theta_{7}

......

于是将 V_{10} 展开:

V_{10} = (1-\beta)\theta_{10} + \beta(1-\beta)\theta_{9} + \beta^2(1-\beta)\theta_{8} + \beta^3(1-\beta)\theta_{7} + \beta^4(1-\beta)\theta_{6} + ...

可以看到,之前的数据对当前数据的影响是呈现指数形式递减的.这就是指数加权平均名称的由来.

posted @ 2018-12-21 10:27:20
评论加载中...
发表评论