精华内容
下载资源
问答
  • TOPSIS方法:(Technique for Order Preference by Similarity to an Ideal Solution)根据有限个评价对象与理想化目标的接近程度进行排序,适用于多项目标、对多个方案进行比较选择的分析方法。 1计算步骤 (1)...

    一、TOPSIS综合评价法

    TOPSIS方法:Technique for Order Preference by Similarity to an Ideal Solution,根据有限个评价对象与理想化目标的接近程度进行排序,适用于多项目标、对多个方案进行比较选择的分析方法。

    1. 计算步骤

    (1)构造初始矩阵A(n个评价指标,m个目标)
    在这里插入图片描述
    式中,aij表示第i个目标的第j项指标值(1≤i≤m, 1≤j≤n)。

    #获取数据
    data=pd.read_excel('研究生院评估数据.xlsx').values  #程序和数据在一个根目录下
    A=data[:,1:]  #获取初始矩阵
    A=np.array(A)  #转为数组
    m,n=A.shape[0],A.shape[1] # m,n为行,列数
    

    (2)由于各个指标的量纲可能不同,需要对原始数据进行标准化处理。(归一化处理)

    在这里插入图片描述

    #归一化处理
    A1=np.ones([m,n],float)
    for i in range(n):
    	mu=np.power(np.sum(np.power(A[i],2)),0.5)
    	A1[i]=A[i]/mu
    

    式中:
    在这里插入图片描述

    针对不同类型的要求还有其他的归一化处理方法,见二。

    (3)构造加权标准化矩阵Z
    在这里插入图片描述
    式中,wj是第j个指标的权重。

    权重确定方法:Delphi法,对数最小二乘法,层次分析法等。

    W=[w1,w2,w3,w4]
    W=np.array(W)
    Z=np.ones([m,n],float)
    for i in range(len(W)):
            for j in range(len(W)):
                if i==j:
                    W[i,j]=W0[j]
                else:
                    W[i,j]=0
    

    (4)根据加权矩阵判断正负理想解Z+ ,Z-
    在这里插入图片描述
    式中,J*是效益性指标集(指标值越大越好);J’是成本型指标集(指标值越小越好)。

    Zmax=np.ones([1,n],float)
    Zmin=np.ones([1,n],float)
    for j in range(n):
    	Zmax[0,j]=max(Z[:,j])
    	Zmin[0,j]=min(Z[:,j])
    

    (5)计算各个方案的到正理想点的距离Si+和负理想点的距离Si-
    在这里插入图片描述

    for i in range(m):
    	Smax=np.sqrt(np.sum(np.square(Z[i,:]-Zmax[0,:])))
    	Smin=np.sqrt(np.sum(np.square(Z[i,:]-Zmin[0,:])))
    

    (6)计算各个方案的相对贴近度Ci
    在这里插入图片描述

    C=Smin/(Smin+Smax)
    C=pd.DataFrame(C,index=['院校' + i for i in list('12345')])
    

    按每个方案的相对贴近度的大小进行排序,值越大越好,找出最优解。

    二、数据归一化处理

    (1) 效益型指标:指标值越大越好
    在这里插入图片描述

    #归一化处理
    A1=np.ones([A.shape[0],A.shape[1]],float)
    for i in n:
    	if max(A[:,i])==min(A[:,i]):
    		A[:,i]=1
    	else:
    		for j in m:
    			A1[j,i]=(A[j,i]-min(A[:,i]))/(max(A[:,i])-min(A[:,i]))
    

    (2) 成本型指标:指标值最小最好
    在这里插入图片描述

    #归一化处理
    A1=np.ones([A.shape[0],A.shape[1]],float)
    for i in n:
    	if max(A[:,i])==min(A[:,i]):
    		A[:,i]=1
    	else:
    		for j in m:
    			A1[j,i]=(max(A[:,i])-A[i,j])/(max(A[:,i])-min(A[:,i]))
    

    (3) 中间型指标:指标最优值在某一点取得,值越靠近该点越好
    在这里插入图片描述
    式中,M为取到最优值的点。

    #归一化处理
    A1=np.ones([A.shape[0],A.shape[1]],float)
    for i in n:
    	for j in m:
    		A1[j,i]=M/(M+abs(A[j,i])-M))
    

    (4) 区间型指标:指标最优值落在一个区间范围呢。
    设指标取值在区间[a,b]是最优的,最差下限为lb,最差上限为ub.
    在这里插入图片描述

    #归一化处理
    A1=np.ones([A.shape[0],A.shape[1]],float)
    for i in n:
    	for j in m:
    		if lb <= A[j,i]<= a:
    			A1[j,i]=(A[j,i]-lb)/(a-lb)
    		elif a <= A[j,i]<= b:
    			A1[j,i]=1		
    		elif b <= A[j,i]<= ub:
    			A1[j,i]=(ub-A[j,i])/(ub-b)
    		else :  #A[j,i]< lb or A[j,i]>ub
    			A1[j,i]=0			
    

    三、案例分析

    问题:某一教育评估机构对5个研究生院进行评估。该机构选取了4个评价指标:人均专著、生师比、科研经费、逾期毕业率。采集数据如表所示。

    研究生院 人均专著/(本/人) 生师比 科研经费/(万/年) 人均专著/%
    1 0.1 5 5000 4.7
    2 0.2 6 6000 5.6
    3 0.4 7 7000 6.7
    4 0.9 10 10000 2.3
    5 1.2 2 400 1.8

    解释:人均专著和科研经费是效益性指标,预期毕业率是成本型指标,生师比是区间型指标,最优范围是[5,6],最差下限2,最差上限12. 4个指标权重采用专家打分的结果,分别为0.2,0.3,0.4和0.1。

    import numpy as np
    import pandas as pd
    
    #TOPSIS方法函数
    def Topsis(A1):
        W0=[0.2,0.3,0.4,0.1] #权重矩阵
        W=np.ones([A1.shape[1],A1.shape[1]],float)
        for i in range(len(W)):
            for j in range(len(W)):
                if i==j:
                    W[i,j]=W0[j]
                else:
                    W[i,j]=0
        Z=np.ones([A1.shape[0],A1.shape[1]],float)
        Z=np.dot(A1,W) #加权矩阵
        
        #计算正、负理想解
        Zmax=np.ones([1,A1.shape[1]],float)
        Zmin=np.ones([1,A1.shape[1]],float)
        for j in range(A1.shape[1]):
            if j==3:
                Zmax[0,j]=min(Z[:,j])
                Zmin[0,j]=max(Z[:,j])
            else:
                Zmax[0,j]=max(Z[:,j])
                Zmin[0,j]=min(Z[:,j])
    
        #计算各个方案的相对贴近度C
        C=[]  
        for i in range(A1.shape[0]):
                Smax=np.sqrt(np.sum(np.square(Z[i,:]-Zmax[0,:])))
                Smin=np.sqrt(np.sum(np.square(Z[i,:]-Zmin[0,:])))
                C.append(Smin/(Smax+Smin))
        C=pd.DataFrame(C,index=['院校' + i for i in list('12345')])   
        return C
    
    #标准化处理
    def standard(A):
        #效益型指标
        A1=np.ones([A.shape[0],A.shape[1]],float)
        for i in range(A.shape[1]):
            if i==0 or i==2:
                if max(A[:,i])==min(A[:,i]):
                    A1[:,i]=1
                else:
                    for j in range(A.shape[0]):
                        A1[j,i]=(A[j,i]-min(A[:,i]))/(max(A[:,i])-min(A[:,i]))
        
        #成本型指标
            elif i==3:
                if max(A[:,i])==min(A[:,i]):
                    A1[:,i]=1
                else:
                    for j in range(A.shape[0]):
                        A1[j,i]=(max(A[:,i])-A[j,i])/(max(A[:,i])-min(A[:,i])) 
    
        #区间型指标
            else:
                a,b,lb,ub=5,6,2,12
                for j in range(A.shape[0]):
                    if lb <= A[j,i] < a:
                        A1[j,i]=(A[j,i]-lb)/(a-lb)
                    elif a <= A[j,i] < b:
                        A1[j,i]=1		
                    elif b <= A[j,i] <= ub:
                        A1[j,i]=(ub-A[j,i])/(ub-b)
                    else:  #A[i,:]< lb or A[i,:]>ub
                        A1[j,i]=0	
        return A1
    
    #读取初始矩阵并计算
    def data(file_path):
        data=pd.read_excel(file_path).values
        A=data[:,1:]
        A=np.array(A)
        #m,n=A.shape[0],A.shape[1] #m表示行数,n表示列数
        return A
    
    #权重
    A=data('研究生院评估数据.xlsx')
    A1=standard(A)
    C=Topsis(A1)
    print(C)
    

    输出

    >>>院校1  0.553038
    院校2  0.610575
    院校3  0.662306
    院校4  0.659379
    院校5  0.281729
    

    参考文献
    [1] 许建强, 李俊玲. 数学建模及其应用. 上海交通大学出版社.

    展开全文
  • TOPSIS综合评价是综合评价模型之一,在多目标决策中具有广泛的应用价值。本文使用R语言自己编写源代码实现TOPSIS综合评价模型,方便R语言用户使用该模型应用于实际的学习和工作中!
  • TOPSIS综合评价模型在综合评价中得到广泛应用。本文使用R语言实现该算法,该文档对算法实现进行了详细说明。
  • Topsis综合评价

    2021-07-30 15:34:19
    Topsis算法核心思想是逼近理想解的排序方法。正理想解,各指标都达到各候选方案的最好值,负理想解,各指标都达到各候选方案的最差值。基于有限个评价对象与理想化目标的接近程度进行排序,在现有的对象中进行相对...

    Topsis算法核心思想是逼近理想解的排序方法。正理想解,各指标都达到各候选方案的最好值,负理想解,各指标都达到各候选方案的最差值。基于有限个评价对象与理想化目标的接近程度进行排序,在现有的对象中进行相对优劣的评价。

     

     

     

    算法步骤:

    1.构造决策矩阵vij,i为各方案,j为各指标

    2.对决策矩阵进行规范化处理

    3.构建权重wj,可通过熵权法、FAHP、相关性等方法确定权重

    4.计算加权决策矩阵

    图片

     5.计算正负理想解

    图片

     

    图片

     

    6.计算各方案与正负理想解间的距离

    图片

    图片

     

     

    7.计算各方案与正理想解的相对贴近度

    图片

    (*算法步骤参考了NHASMJ公众号*) 

    Topsis算法基本思想:基于归一化后的原始数据矩阵,找出有限方案中的最优方案和最劣方案(分别用最优向量和最劣向量表示),然后分别计算各评价对象与最优方案和最劣方案间的距离,获得各评价对象与最优方案的相对接近程度,以此作为评价优劣的依据。

     代码实现:

    x=[
    21584   76.7    7.3  1.01    78.3    97.5
    24372   86.3    7.4  0.80    91.1    98.0
    22041   81.8    7.3  0.62    91.1    97.3
    21115   84.5    6.9  0.60    90.2    97.7
    24633   90.3    6.9  0.25    95.5    97.9];
    %矩阵
    [n,m]=size(x);
    %将3,4的低优指标去倒数转化为高优指标并且把所有指标换成接近的大小
    x(:,1)=x(:,1)/100;
    x(:,3)=(1./x(:,3))*100;
    x(:,4)=(1./x(:,4))*100;
    zh=zeros(1,m);
    d1=zeros(1,n); %最小值矩阵
    d2=zeros(1,n); %最大值矩阵
    c=zeros(1,n);  %接近程度
    %归一化
    for i=1:m
        for j=1:n
            zh(i)=zh(i)+x(j,i)^2;
        end
    end
    for i=1:m
        for j=1:n
           x(j,i)=x(j,i)/sqrt( zh(i));
        end
    end
    %计算距离
    xx=min(x);
    dd=max(x);
    for i=1:n
        for j=1:m
            d1(i)=d1(i)+(x(i,j)-xx(j))^2;
        end
        d1(i)=sqrt(d1(i));
    end
    for i=1:n
        for j=1:m
            d2(i)=d2(i)+(x(i,j)-dd(j))^2;
        end
        d2(i)=sqrt(d2(i));
    end
    %计算接近程度
    for i=1:n
        c(i)=d1(i)/(d2(i)+d1(i));
    end

    展开全文
  • TOPSIS综合评价模型

    千次阅读 2020-05-01 17:09:08
    逼近理想解排序,简称为优劣解距离是一种常用的综合评价方法。 优点:充分利用原始数据信息,结果能精确地反映各评价方案之间的差距;数据分布和样本含量无严格限制,计算简单易行。 基本过程 正向化处理:正向...

    TOPSIS方法

    逼近理想解排序法,简称为优劣解距离法是一种常用的综合评价方法。
    优点:充分利用原始数据信息,结果能精确地反映各评价方案之间的差距;数据分布和样本含量无严格限制,计算简单易行。

    基本过程

    正向化处理:正向化矩阵
    标准化处理:标准化矩阵
    计算最优和最劣方案
    计算各评价和最优劣的距离
    归一化评分

    指标

    成绩越高(大)越好,这样指标称为极大型指标(效益型指标);
    退款金额越少越好,这样指标称为极小型指标(成本型指标)。

    解答

    1. 将所有的指标转化为极大型指标,即指标正向化。
    2. 极小型指标转换为极大型指标公式:max-x
    3. 最常见四种指标:极大型、极小型、中间型、区间型
    4. 中间型指标转换为极大型指标公式
      x(best)=7、M=max{|6-7|,|7-7|,|8-7|,|9-7|}=2、1-(6-7)/2=1/2…
    5. 区间型指标转换为极大型指标公式
      在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    可以看出,在区间内的36.6度评分最高为1,距离其越远的评分越低 。

    正向化矩阵

    标准化矩阵

    计算距离

    归一化

    即每个分数除以所有分数和








    来源链接
    https://blog.csdn.net/qq_36384657/article/details/98188769

    展开全文
  • 以下是我搜寻的熵值求权重并结合TOPSIS进行综合评价的MATLAB代码,自己试过了,是有用的,分开来使用,先求权重,再进行TOPSIS评价。第一次发博,如有不合规或错误的地方,请谅解。 先用熵值求权重,再将权重代...
  • 运用Python进行TOPSIS综合评价方法

    千次阅读 热门讨论 2019-04-14 17:41:08
    运用Python进行TOPSIS综合评级方法第一步,读取数据;第二步,对数据进行归一化;第三步,获取最优列值向量和最劣值向量;第四步,计算最优方案和最劣方案;第五步,计算评价对象与最优方案接近程度;最后,进行排序...

    第一步,读取数据;

    import pandas as pd #导入pandas工具包
    import numpy as np #导入numpy工具包 
    data = pd.read_excel("F:\Desktop\python运行文件.xlsx")
    data[:5]
    

    在这里插入图片描述

    第二步,对数据进行趋同化;

    # 设置城市名为索引
    data.set_index(['Unnamed: 0'], inplace=True)
    # 获取列名称
    n = list(data.columns)
    #  高优指标
    for i in n:
        data[i] = data[i] 
    # 低优指标
    for i in n:
        data[i] = 1/data[i]
    # 中性指标
    for i in n:
        Max = np.max(data[i])
        data[i] = Max/(Max + np.abs(data[i] - Max))
      
    

    注:这里仅列示各类型指标的处理方法,如果指标体系包含两种以上类型的指标,注意嵌套使用 if 条件语句进行循环。

    第三步,对数据进行归一化;

    # 进行归一化
    for i in n:
        x = np.power(np.sum(np.power(data[i],2)),0.5)
        data[i] = data[i]/x  
    
    data[:5]
    

    在这里插入图片描述

    第四步,获取最优列值向量和最劣值向量;

    A1 = []
    # 获取最优列值
    for i in n:
        Max = np.max(data[i])
        A1.append(Max)    
    # 转换形式    
    A1 = np.array(A1)
    
    # 获取最劣列值
    A2 = []
    for i in n:
        Min = np.min(data[i])
        A2.append(Min)    
    # 转换形式    
    A2 = np.array(A2)
    
    

    第五步,计算最优方案和最劣方案;

     计算最优方案
    D1 = []
    for i in range(1,len(data)+1):
        d1 = np.power(np.sum(np.power(A1 - data[i-1:i],2).values),0.5)
        D1.append(d1)
    # 转换形式
    D1 = np.array(D1)
    
    # 计算最劣方案
    D2 = []
    for i in range(1,len(data)+1):
        d2 = np.power(np.sum(np.power(A2 - data[i-1:i],2).values),0.5)
        D2.append(d2)
    # 转换形式
    D2 = np.array(D2)
    

    第六步,计算评价对象与最优方案接近程度;

    C = D2/(D1 + D2)
    

    最后,进行排序。

    # 新建数据框
    data1 = pd.DataFrame(C, index = list(data.index))
    data2 = pd.DataFrame(D1, index = list(data.index))
    data3 = pd.DataFrame(D2, index = list(data.index))
    
    # 按C值进行排序
    data1['rank'] = data1.rank(ascending = False)
    data2['rank1'] = data2.rank(ascending = False)
    data3['rank2'] = data3.rank(ascending = False)
    
    # 对 data1 重新设置列名
    data1.columns = ['得分', '排名']
    
    data1['最优方案距离'] = data2[0]
    data1['排名1'] = data2['rank1']
    
    data1['最劣方案距离'] = data3[0]
    data1['排名2'] = data3['rank2']
    
    # 保存为excel格式
    data1.to_excel('F:\Desktop\综合得分.xlsx')
    
    data1[:5]
    

    在这里插入图片描述

    展开全文
  • 熵权-TOPSIS综合评价方法的MATLAB程序

    万次阅读 多人点赞 2020-01-23 09:54:15
    以下是我搜寻的熵值求权重并结合TOPSIS进行综合评价的MATLAB代码,自己试过了,是有用的,分开来使用,先求权重,再进行TOPSIS评价。第一次发博,如有不合规或错误的地方,请谅解。 %第一部分:求熵值 function ...
  • 船型综合评价是一个多目标决策问题。为克服采用单一方法确定权重存在的片面性,基于主观赋权的层次分析(AHP)、客观赋权的熵权(EWM)和智能赋权的BP-神经网络3类赋权得到的权重,采用博弈论来确定指标的...
  • 基于MATLAB的熵权TOPSIS

    2021-05-25 17:03:19
    基于MATLAB的熵权TOPSIS综合评价法
  • 应用TOPSIS法对校外教学点进行综合评价分析.pdf应用TOPSIS法对校外教学点进行综合评价分析.pdf应用TOPSIS法对校外教学点进行综合评价分析.pdf
  • 在Matlab中实现熵权TOPSIS法对地下水综合评价.pdf
  • 评价指标中有正向指标和负向指标之分,一般把负向指标转化为正向指标,转化的方法可采用倒数(即1/X),多适用于绝对数指标;差值(即1-X),多适用于相对数指标。转化后的数据矩阵仍记为X。数据无量纲化.。将...
  • 提出了一种基于模糊层次分析TOPSIS法综合评价方法,用于在动态企业联盟构建过程中,对候选合作伙伴进行综合评价。该方法在指标评价阶段采用三角模糊数构造判断矩阵,可以反映主观判断的模糊性和不确定性 ;在方案...
  • 实验名称 25条流域水质情况评价 实验题目 已知:25条流域水质量各指标的数据,其中含氧量越高越好;PH值越接近7越好;细菌总数越少越好;植物性营养物量介于10-20之间最佳,超过20或低于10均不好。...
  • 评价指标中有正向指标和负向指标之分,一般把负向指标转化为正向指标,转化的方法可采用倒数(即1/X),多适用于绝对数指标;差值(即1-X),多适用于相对数指标。转化后的数据矩阵仍记为X。数据无量纲化.。将原始.....
  • 在此基础上利用基于熵权的TOPSIS方法对煤与瓦斯突出危险进行了综合评价,应用结果表明:煤与瓦斯综合评价指标体系,综合考虑了地应力、瓦斯潜能和煤的物理-力学性质3个方面,比较全面,可以避免判断的片面性;基于熵权的...
  • 一类是主观赋权法,多数采取综合咨询评分确定权重,如:综合指数法、模糊综合评价法、层次分析法、功效系数法等。另一类是客观赋权法,根据各指标之间的相关关系或各指标值变异程度来确定权数,如:主成分分析法、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 419
精华内容 167
关键字:

topsis综合评价法