综合评价方法研究
《python数学实验与建模》中课后习题练习与代码笔记3。
综合评价方法包涵较多的模型,本次主要解析两个模型:TOPSIS(逼近理想解)模型和灰色关联分析模型。本次建模问题是传统模型,并没有进行扩展和改进。
一、基本模型
⑴TOPSIS模型
TOPSIS模型是逼近理想解的排序方法,它借助于评价问题的正理想解和负理想解,对各理想解进行排序。正理想解是一个虚拟的最佳对象,正理想解各个指标数值是评价对象该指标的最好值;负理想解亦是一个虚拟的最差对象,负理想解各个指标数值是评价对象该指标的最差值。通过求出各评价对象与正理想解与负理想解的距离,并通过距离指标对各评价对象进行优劣排序。
数学原理如下:
⑵灰色关联分析模型
在系统发展过程中,若两个因素变化的趋势具有一致性,即同步变化程度较高,即可谓二者关联程度较高;反之,则较低。因此,灰色关联分析方法,是根据因素之间发展趋势的相似或相异程度,亦即“灰色关联度”,作为衡量因素间关联程度的一种方法。
数学原理如下:
二、模型应用与求解
以《python数学实验与建模》第九章课后习题9.1为例。
求解过程python实现如下所示:
import numpy as np a = np.array([[8.1,255,12.6,13.2,76,5.4], [6.7,210,13.2,10.7,102,7.2], [6.0,233,15.3,9.5,63,3.1], [4.5,202,15.2,13,120,2.6]]) for j in range(0,6):#数据归一化处理 a[:,j] = (a[:,j]-min(a[:,j]))/(max(a[:,j])-min(a[:,j])) print(a)#查看数据的表现情况 #topsis方法 cplus = a.max(axis = 0) cminus = a.min(axis = 0) print('正理想解=',cplus,'负理想解=',cminus) print(a-cplus)#每一列都减去cplus d1 = np.linalg.norm(a-cplus,axis = 1) d2 = np.linalg.norm(a-cminus,axis = 1) print(d1,d2)#显示到正理想解和负理想解的距离 f1 = d2/(d1+d2) print('topsis的评价值为:',f1)#最终经过综合评估,1号方案可能比较适合 #灰色关联分析 t = cplus-a#计算参考序列与每个序列的差 print('\n',t) mmin = t.min()#计算最小值 print(mmin) mmax = t.max()#计算最大值 print(mmax) rho = 0.5 #分辨系数 xs = (mmin + rho*mmax)/(t+rho*mmax)#计算灰色关联系数 f2 = xs.mean(axis = 1)#求每一行的均值 print("关联系数=",xs,"\n关联度=",f2)#显示灰色关联系数与灰色关联度,可以看出依旧是方案1较为合适
三、结果简要分析
⑴TOPSIS模型输出分析
先确定正理想解与负理想解如下:
正理想解= [1. 1. 1. 1. 1. 1.] 负理想解= [0. 0. 0. 0. 0. 0.]
最终的topsis评价值为如下,可以看出,方案1比较合适。
topsis的评价值为: [0.58313806 0.49911304 0.40463435 0.492181 ]
⑵灰色关联分析模型
通过计算各个数据点的关联系数如下:
[[1. 1. 0.33333333 1. 0.39310345 0.56097561] [0.5625 0.37062937 0.39130435 0.42528736 0.61290323 1. ] [0.46153846 0.54639175 1. 0.33333333 0.33333333 0.359375 ] [0.33333333 0.33333333 0.93103448 0.90243902 1. 0.33333333]]
最终的每一行计算平均值得出每个方案的关联度如下,可以看出依然是方案一比较合适,符合TOPSIS模型输出的一致性。
[0.71456873 0.56043738 0.50566198 0.63891225]
四、总结
慢慢走,欣赏啊。