简介
topsis综合评价法即根据有限个评价对象与理想化目标的接近程度进行排序的方法,是在现有的对象中进行相对优劣的评价,是一种逼近于理想解的排序法。TOPSIS法是多目标决策分析中一种常用的有效方法,又称为优劣解距离法。
应用场景
拥有足够的评价指标和数据,且评价指标类型不同。
概念
- 正理想解
设想最好的方案,它所对应的属性值至少达到各个方案的最好值。
- 负理想解
设想最差的方案,它所对应的属性值不优于各个方案的最劣值。
- 满意解
最接近正理想解且最远离负理想解的可行解为满意解 。
数据预处理
- 区间型属性变换
最优区间为[a,b],为无法容忍下限,为无法容忍下限。在最优属性区间内,值设为1,不在
最优属性区间,但是在还可以接受的范围[,]内,按照公式调整为0到1内的数。
-
向量规范化
用公式进行变换,变换后不同指标在同一数量级,0到1之间,有些指标需要先进行区间型变换再进行向量规范化。
公式:对该元素除以所在列平方和再开根号。
实例及代码
clc, clear
a=[0.1 5 5000 4.7
0.2 6 6000 5.6
0.4 7 7000 6.7
0.9 10 10000 2.3
1.2 2 400 1.8];
[m,n]=size(a);
x2=@(qujian,lb,ub,x)(1-(qujian(1)-x)./(qujian(1)-lb)).*...
(x>=lb & x<qujian(1))+(x>=qujian(1) & x<=qujian(2))+...
(1-(x-qujian(2))./(ub-qujian(2))).*(x>qujian(2) & x<=ub);
qujian=[5,6]; lb=2; ub=12;
a(:,2)=x2(qujian,lb,ub,a(:,2)); %对属性2进行变换
b=a./vecnorm(a) %利用矩阵广播进行向量规范化
w=[0.2 0.3 0.4 0.1];
c=b.*w; %利用矩阵广播求加权矩阵
Cstar=max(c); %求正理想解
Cstar(4)=min(c(:,4)) %属性4为成本型的
C0=min(c); %q求负理想解
C0(4)=max(c(:,4)) %属性4为成本型的
Sstar=vecnorm(c-Cstar,2,2) %逐行计算2范数即到正理想解的距离
S0=vecnorm(c-C0,2,2) %逐行计算2范数即到负理想解的距离
f=S0./(Sstar+S0)
[sf,ind]=sort(f,'descend') %求排序结果