Python语言与信息数据获取和机器学习

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
上一篇下一篇

猜你喜欢

热点阅读