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

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

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

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

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

\beta = 0.5时:
image.png
\beta = 0.7时:
image.png
\beta = 0.9时:
image.png

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

V_1 = (1-\beta)\theta_t

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

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

image.png

为什么叫指数加权平均?

根据公式,知:

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
评论加载中...

发表评论