美文网首页Python语言与信息数据获取和机器学习
python灰色关联算法(灰度关联算法)

python灰色关联算法(灰度关联算法)

作者: 五长生 | 来源:发表于2017-07-21 19:17 被阅读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

    相关文章

      网友评论

        本文标题:python灰色关联算法(灰度关联算法)

        本文链接:https://www.haomeiwen.com/subject/xsoekxtx.html