一、理論部分
Paste_Image.png
二、代碼(摸索著寫的,百度沒有python的最后自己寫的献汗,獻(xiàn)丑了)
A=pd.DataFrame(A,columns=[1,2,3,4,5])#書號(hào),所有數(shù)據(jù)在一個(gè)標(biāo)簽頁(yè)里
T=[]
for Y in range(2001,2006):
M = []#最終變量的矩陣
N = []#預(yù)測(cè)變量的矩陣
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)#創(chuàng)建相關(guān)變量與目標(biāo)變量的共同矩陣王污,相關(guān)變量元素加1
M=list(A.ix[:,Y-2000])#獲取當(dāng)年的平均書號(hào)
K[:,0]=M#將最終變量送入判斷矩陣第一列
for x in range(0,len(A)):#將判斷變量送入判斷矩陣
N=list(B.ix[x])
K[x,1:]=N
K=K.T #轉(zhuǎn)置罢吃,下面是灰色關(guān)聯(lián)算法的具體步驟
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')
我是按照這個(gè)做的
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png