灰色预测模型python实例_12-6:数学模型(灰色模型)与Python编程预测

游戏没做出来,关于pygame制作游戏,虽然已经搞到了素材库(图片),但还缺少一些素材库(数据)如果自己算的话,可能很难,又没找比较好的测量工具,所以对于做地图的话就很难了,加上对于一个比较好的小游戏需要进行面向对象编程,所以需要开始设计好所以的元素(但我又不太熟悉),需要一定的编写经验才可以编出来。所以我还需要对面向对象编程进行进一步的学习加上对于pygame一些函数进行学习才有能力编写出来。(但以后一定会做出这样来的,暂时先放置在这吧)

太难了

但我也不能什么都不写的,所以更好今天在数学建模导师学长(感谢学长,花自己周末时间来教我们知识)学到一个预测趋势的模型。接下来我就把它的使用方法讲述出来吧,我会尽量讲的详细,加上我遇到的问题和理解,希望对大家有帮助。

首先,这个模型叫做灰色模型——特点:小数据建模,不用考虑其内部因素

比如:给出你4个数据15.1,15.4,15.3,15.8(要求前后比值较小,具体多小可以自己了解下)那么下一个数字是多少,我们可以通过这个模型预测出来,第5个数字按这个模型可能的数据。

第一步:需要生产三个数据序列,用于后面的计算

PS:注意这里的z是由累加序列

进行前后相加取均值求出来的而不是原序列

前后取均值求出来的.

第二步:我将给出预测公式并给出计算方法。(我觉得大家可以先了解怎么用,在去了解一下原理是什么)

第三步:我将给出参数a,b的计算方法。(涉及到矩阵与第一步求出的数据)

PS:注意这里的x是原序列

的x并且是第二个开始,两个矩阵都是n-1行.

将a,b代入即可得到预测的数据,想要了解更加深入可以看下面我找的资料。数学建模灰色模型 - 百度文库​wenku.baidu.com灰色模型_百度百科​baike.baidu.com

接下来就完了吗,不存在的。

对于一个热衷于编程的人,看到这个想起了我实训做的预测模型,(但这个模型的代码是比较简单的,如果你学了numpy,pandas的基础,并了解一下numpy的矩阵运算即可),所以编程实现的必须的。import numpy as np

import pandas as pd

import math

df = pd.read_excel("美国_GDP_1947-2020.xlsx",index_col='序号')

array1 = df['美国:GDP:现价:折年数'].values[3:7][::-1]

array2 = np.cumsum(array1)

array3 = pd.Series(array2).rolling(2,axis=0).mean().dropna().values[::-1]

B = np.c_[(-array3),[1 for i in range(len(array3))]]

Y = array1[1:]

u = (np.linalg.inv(B.T.dot(B)).dot(B.T)).dot(Y)

a=u[0]

b=u[1]

x_t=(array1[0]-b/a)math.exp(-a* len(array1))+b/a

x(0)_t=x_t-np.sum(array1)

其中

=np.linalg.inv(B)来求逆,B.T来求转置,AB=A.dot(B)或者是np.dot(A,B).

对于求前后均值用Series.rolling(2).mean(),即表示它本身加上他前面的那个值的平均值,如果是第一个的话(由于前面没值)则为空,后面去掉空即留下n-1个数。

我实现的代码图片将如下:导入并查看

昨天团建(讲个好玩的事情,昨天团建玩狼人杀最后一盘,我从开始就被一个狼跳预言家的人骗了,骗的我帮她除了真的预言家,又帮她除了几个平民,但最后公布莫名其妙狼人获胜的时候人都傻了,几乎全部人都被三狼骗了,但感觉我是被骗的最惨的因为她说她第一晚查的是我,我坚信不疑。。。),加上晚上回来在做游戏又没做出个东西,所以昨天没更新。

今天的如果有什么问题,或者需要数据想做的话可以找我,我可以提供帮助。

Hope you can learn something from my writing。

你可能感兴趣的:(灰色预测模型python实例)