python 实现新陈代谢灰色预测模型GM(1,1)简化版

**

python 实现新陈代谢灰色预测模型简单版

之前写了一个用python实现新陈代谢灰色预测模型GM(1,1)的代码,很多小伙伴问我要代码。但之前的代码写的比较复杂,可以参考我之前的代码,链接:https://blog.csdn.net/qq_35794085/article/details/112275248,并且有很多东西可能在实际预测时,何需这么复杂,大可不必写那么多,虾面我把代码简单化了。所以,我把简单的代码贴上来,大家参考一下吧。

import numpy as np

'''
GM function 是传统的灰色预测模型,网上代码挺多的,可以自己根据需要去改
参数x是原始数据列表
参数year是你要预测的年份数,我一次只预测一年,那么year = 1
'''
def GM(x, year):

  ###我这里就不把传统的GM代码放上来了,返回第一次预测值给新陈代谢GM就好。
    
    return x_predict #返回预测值,供新城代谢GM使用

'''
XCDX_GM function 是新陈代谢灰色预测模型
参数x是原始数据列表
x_predict 是利用GM模型得到的预测值,然后根据你的需要自己可以改下面贴的代码,year只能是1.
'''
def XCDX_GM(x, x_predict, year):
    new_x_predict = []
    new_x_predict = x_predict
    for i in range(5): #循环预测5年的数据,你自己在这里改吧,想预测几年,就range(几年)。
        del x[0]
        x.append(new_x_predict[-1])
        new_x_predict = GM(x, year)
        new_x_predict = list(new_x_predict)
        print(type(new_x_predict))
        print("this is predict value of i-th for XCDX_GM :",i)
        for j in range(len(new_x_predict)):
            print(j,round(new_x_predict[j],3))
 
if __name__ == '__main__':

    x= [1,2,3,4,5,6,7,8,9,10,11,12] #改成你的数据就好了
    year = 1 #每次只预测后一年的数据,再将其加入前面的原始值的最后一个,再剔除原始序列的第一个值
    x_predict = GM(x, year)
    for value in x_predict:
        print(round(value,3))
    XCDX_GM(x, x_predict, year)

#######就这样吧,这个模型可以根具自己的需要改进,例如用加权灰色预测等等。欢迎大家一起交流

  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值