首页 > 编程语言 > 详细

python 指数平滑简单使用

时间:2020-04-17 18:51:45      阅读:153      评论:0      收藏:0      [点我收藏+]
# 平滑指数
def calc_next_s(alpha, x):
    s = [0 for  i in range(len(x))]
    s[0] = np.sum(x[0:3]) / float(3)
    for i in 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]) for i in range(len(s3))]
    b3 = [((alpha / (2 * (1 - alpha) ** 2)) * ((6 - 5 * alpha) * s1[i] - 2 * (5 - 4 * alpha) * s2[i] + (4 - 3 * alpha) * s3[i])) for i in range(len(s3))]
    c3 = [(alpha ** 2 / (2 * (1 - alpha) ** 2) * (s1[i] - 2 * s2[i] + s3[i])) for i in range(len(s3))]
    pred = a3[-1]+b3[-1]*1+c3[-1]*(1**2)
    print(pred)

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

 

python 指数平滑简单使用

原文:https://www.cnblogs.com/caozewen/p/12721520.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!