python灰色预测_python灰色关联算法(灰度关联算法)

一、理论部分

Paste_Image.png

二、代码(摸索着写的,百度没有python的最后自己写的,献丑了)

A=pd.DataFrame(A,columns=[1,2,3,4,5])#书号,所有数据在一个标签页里

T=[]

for Y in range(2001,2006):

M = []#最终变量的矩阵

N = []#预测变量的矩阵

B=pd.read_excel('9门总满意度.xlsx',sheetname=str(Y))#满意度

K = np.arange(len(A)*(len(B.columns)+1),dtype='float32').reshape(len(A), len(B.columns)+1)#创建相关变量与目标变量的共同矩阵,相关变量元素加1

M=list(A.ix[:,Y-2000])#获取当年的平均书号

K[:,0]=M#将最终变量送入判断矩阵第一列

for x in range(0,len(A)):#将判断变量送入判断矩阵

N=list(B.ix[x])

K[x,1:]=N

K=K.T #转置,下面是灰色关联算法的具体步骤

for i in range(0,len(N)+1):

K[i,:]=K[i,:]/K[i][0]

K=K.T

S=np.arange(len(N)*len(M),dtype='float32').reshape(len(M),len(N))

for i in range(0,len(N)):

S[:,i]=abs(K[:,i+1]-K[:,0])

Q=[]

for i in range(0,len(N)):

Q.append(S[:,i].max())

R = S

maxone=max(Q)

R[:,:]=maxone*0.5/(S[:,:]+maxone*0.5)

R=R.T

for i in range(0,len(N)):

T.append(R[i].mean())

print(T)

T=pd.DataFrame(T)

#T.to_excel(str(Y)+'.xls')

我是按照这个做的

Paste_Image.png

Paste_Image.png

Paste_Image.png

Paste_Image.png

Paste_Image.png

Paste_Image.png

你可能感兴趣的:(python灰色预测)