python灰色关联算法(灰度关联算法)
2017-07-21 本文已影响2800人
五长生
一、理论部分
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