116

异常检测之指数平滑(利用elasticsearch来实现)

 6 years ago
source link: http://mp.weixin.qq.com/s/JQKX4KIA8_ntvMXI5A2emQ
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

异常检测之指数平滑(利用elasticsearch来实现)

 指数平滑法是一种特殊的加权平均法,加权的特点是对离预测值较近的历史数据给予较大的权数,对离预测期较远的历史数据给予较小的权数,权数由近到远按指数规律递减,所以,这种预测方法被称为指数平滑法。它可分为一次指数平滑法、二次指数平滑法及更高次指数平滑法。

 由于文中涉及大量ES DSL语句,建议点击【阅读原文】进行查看





关于指数平滑的相关资料



ES 移动平均聚合的四种模型

1:Simple

就是使用窗口内的值的和除于窗口值,通常窗口值越大,最后的结果越平滑: (a1 + a2 + … + an) / n

Image

2:线性模型(linear)

对窗口内的值先做线性变换处理,再求平均:(a1 * 1 + a2 * 2 + … + an * n) / (1 + 2 + … + n)

Image

3:指数平滑模型、

1):指数模型:EWMA(Exponentially Weighted)

即: 一次指数平滑模型

EWMA模型通常也成为单指数模型(single-exponential), 和线性模型的思路类似,离当前点越远的点,重要性越低,具体化为数值的指数下降,对应的参数是alpha。 alpha值越小,下降越慢。(估计是用1 - alpha去计算的)默认的alpha=0.3

计算模型:s2 = α * x2 + (1 - α) * s1

其中α是平滑系数,si是之前i个数据的平滑值,α取值为[0,1],越接近1,平滑后的值越接近当前时间的数据值,数据越不平滑,α越接近0,平滑后的值越接近前i个数据的平滑值,数据越平滑,α的值通常可以多尝试几次以达到最佳效果。 一次指数平滑算法进行预测的公式为:xi+h=si,其中i为当前最后的一个数据记录的坐标,亦即预测的时间序列为一条直线,不能反映时间序列的趋势和季节性。

Image

2)二次指数平滑模型:Holt-Linear

计算模型:

s2 = α * x2 + (1 - α) * (s1 + t1)

t2 = ß * (s2 - s1) + (1 - ß) * t1

默认alpha = 0.3 and beta = 0.1

二次指数平滑保留了趋势的信息,使得预测的时间序列可以包含之前数据的趋势。二次指数平滑的预测公式为 xi+h=si+hti 二次指数平滑的预测结果是一条斜的直线。

Image

3)三次指数平滑模型:Holt-Winters无季节模型

三次指数平滑在二次指数平滑的基础上保留了季节性的信息,使得其可以预测带有季节性的时间序列。三次指数平滑添加了一个新的参数p来表示平滑后的趋势。

1: Additive Holt-Winters:Holt-Winters加法模型

下面是累加的三次指数平滑

Image

其中k为周期

累加三次指数平滑的预测公式为: xi+h=si+hti+pi-k+(h mod k)

Image

2: Multiplicative Holt-Winters:Holt-Winters乘法模型

下式为累乘的三次指数平滑:

si=αxi/pi-k+(1-α)(si-1+ti-1)
ti=ß(si-si-1)+(1-ß)ti-1
pi=γxi/si+(1-γ)pi-k

其中k为周期

累乘三次指数平滑的预测公式为:

xi+h=(si+hti)pi-k+(h mod k)

α,ß,γ的值都位于[0,1]之间,可以多试验几次以达到最佳效果。

s,t,p初始值的选取对于算法整体的影响不是特别大,通常的取值为s0=x0,t0=x1-x0,累加时p=0,累乘时p=1.

Image

4:预测模型(Prediction)

使用当前值减去前一个值,其实就是环比增长

Image

最小化:Minimization

某些模型(EWMA,Holt-Linear,Holt-Winters)需要配置一个或多个参数。参数选择可能会非常棘手,有时不直观。此外,这些参数的小偏差有时会对输出移动平均线产生剧烈的影响。

出于这个原因,三个“可调”模型可以在算法上最小化。最小化是一个参数调整的过程,直到模型生成的预测与输出数据紧密匹配为止。最小化并不是完全防护的,并且可能容易过度配合,但是它往往比手动调整有更好的结果。

ewma和holt_linear默认情况下禁用最小化,而holt_winters默认启用最小化。 Holt-Winters最小化是最有用的,因为它有助于提高预测的准确性。 EWMA和Holt-Linear不是很好的预测指标,主要用于平滑数据,所以最小化对于这些模型来说不太有用。

通过最小化参数启用/禁用最小化:”minimize” : true


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK