El suavizado exponencial de Python es fácil de usar

# 平滑 指数
def calc_next_s (alpha, x): 
    s = [0 para   i en rango (len (x))] 
    s [0] = np.sum (x [0: 3]) / float (3 )
     para i en range (1 , len (s)): 
        s [i] = alpha * x [i] + (1-alpha) * s [i-1 ]
     return s 

# 预测
 def time_predict (x): 
    s1 = calc_next_s (alpha, x) # ​​一次
    s2 = calc_next_s (alpha, s1) # 二次
    s3 = calc_next_s (alpha, s2) # 三次
    a3 = [(3 * s1 [i] - 3 * s2 [i] + s3 [i])para i en el rango (len (s3))] 
    b3 = [((alpha / (2 * (1 - alpha) ** 2)) * ((6 - 5 * alpha) * s1 [i] - 2 * (5 - 4 * alfa) * s2 [i] + (4 - 3 * alfa) * s3 [i])) para i en el rango (len (s3))] 
    c3 = [(alpha ** 2 / (2 * (1 - alfa) ** 2) * (s1 [i] - 2 * s2 [i] + s3 [i])) para i en rango (len (s3))] 
    pred = a3 [-1] + b3 [-1 ] * 1 + c3 [-1] * (1 ** 2 )
     print (pred) 

if  __name__ == " __main__: 
    x = [] # x 内 填写 需要 预测 的 列表 数据
    time_predict (x)

 

Supongo que te gusta

Origin www.cnblogs.com/caozewen/p/12721520.html
Recomendado
Clasificación