清风数学建模--TOPSIS

第一步:将原始矩阵正向化

常见的四种指标有:

指标名称指标特点例子
极大型(效益型)越大(多)越好成绩、GDP增速、企业利润
极小型(成本型)越小(少)越好费用、坏品率、污染程度
中间型越接近某个值越好水质量评估时的PH值
区间型落在某个区间最好体温、水中植物性营养物量

所谓将原始矩阵正向化,就是要将所有的指标类型统一转化成极大型指标。

极小型—>极大型

m a x − x max-x maxx
如果所有的元素均为正数,那么也可以使用 1 x \frac{1}{x} x1

中间型指标—>极大型指标

中间型指标:指标既不要太大也不要太小,取某特定值最好(如水质量评估PH值)
{ x i x_i xi}是一组中间型指标序列,且最佳的数值为 x b e s t x_{best} xbest,那么正向化的公式如下:
M = max ⁡ ∣ x i − x b e s t ∣ , x i = 1 − ∣ x i − x b e s t ∣ M M=\max{|x_i-x_{best}|},x_i=1-\frac{|x_i-x_{best}|}{M} M=maxxixbest,xi=1Mxixbest

PH值(转换前)PH值(转换后)
6 1 − 7 − 6 2 = 1 2 1-\frac{7-6}{2}=\frac{1}{2} 1276=21
7 1 − 7 − 7 2 = 1 1-\frac{7-7}{2}=1 1277=1
8 1 − 8 − 7 2 = 1 2 1-\frac{8-7}{2}=\frac{1}{2} 1287=21
9 1 − 9 − 7 2 = 0 1-\frac{9-7}{2}=0 1297=0

x b e s t = 7 M = max ⁡ ∣ 6 − 7 ∣ , ∣ 7 − 7 ∣ , ∣ 8 − 7 ∣ , ∣ 9 − 7 ∣ = 2 x_{best}=7\\ M=\max{|6-7|,|7-7|,|8-7|,|9-7|}=2 xbest=7M=max67,77,87,97=2

区间型指标–>极大型指标

区间型指标:指标值落在某个区间内最好。
x i {x_i} xi是一组区间型指标序列,且最佳的区间为 [ a , b ] [a,b] [a,b],那么正向化的公式如下:
M = max ⁡ ( a − min ⁡ x i , max ⁡ x i − b ) x i = { 1 − a − x i M x i < a 1 a ≤ x i ≤ b a − x i − b M x i > b M=\max{(a-\min{x_i},\max{{x_i}-b})}\\ x_i=\left\{ \begin{array}{rcl} 1-\frac{a-x_i}{M}&&{x_i<a}\\ 1&&{a\leq x_i \leq b}\\ a-\frac{x_i-b}{M}&&{x_i>b} \end{array} \right. M=max(aminxi,maxxib)xi=1Maxi1aMxibxi<aaxibxi>b

体温(转换前)体温(转换后)
35.20.4286
35.80.8571
36.61
37.10.9286
37.80.4286
38.40

a = 36 , b = 37 M = max ⁡ ( 36 − 35.2 , 38.4 − 37 ) = 1.4 a=36,b=37\\ M=\max{(36-35.2,38.4-37)}=1.4 a=36,b=37M=max(3635.2,38.437)=1.4

第二步:正向化矩阵标准化

标准化的目的是消除不同指标量纲的影响
假设有 n n n个要评价的对象, m m m个评价指标(已经正向化了)构成的正向化矩阵如下:
X = [ x 11 x 12 ⋯ x 1 m x 21 x 22 ⋯ x 2 m ⋮ ⋮ ⋱ ⋮ x n 1 x n 2 ⋯   x n m ] X= \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1m} \\ x_{21} & x_{22} & \cdots & x_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n1} & x_{n2} & \cdots\ & x_{nm} \\ \end{bmatrix} X=x11x21xn1x12x22xn2 x1mx2mxnm
那么,对其标准化的矩阵记为 Z Z Z,Z中的每一个元素: z i j = x x i j / ∑ i = 1 n x i j 2 ( 每 一 个 元 素 / 其 所 在 列 的 元 素 的 平 方 和 ) z_{ij}=x_{xij}/\sqrt{\sum_{i=1}^{n}x_{ij}^2}\\(每一个元素/\sqrt{其所在列的元素的平方和}) zij=xxij/i=1nxij2 (/ )

第三步:计算的得分并归一化

假设有 n n n个要评价的对象, m m m个评价指标的标准化矩阵:
Z = [ z 11 z 12 ⋯ z 1 m z 21 z 22 ⋯ z 2 m ⋮ ⋮ ⋱ ⋮ z n 1 z n 2 ⋯   z n m ] Z= \begin{bmatrix} z_{11} & z_{12} & \cdots & z_{1m} \\ z_{21} & z_{22} & \cdots & z_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ z_{n1} & z_{n2} & \cdots\ & z_{nm} \\ \end{bmatrix} Z=z11z21zn1z12z22zn2 z1mz2mznm
定义最大值
Z + = ( Z 1 + , Z 2 + , ⋯   , Z m + ) = ( max ⁡ ( z 11 , z 21 , ⋯   , z n 1 ) , max ⁡ ( z 12 , z 22 , ⋯   , z n 2 ) , ⋯   , max ⁡ ( z 1 m , z 2 m , ⋯   , z n m ) ) Z^+=(Z_1^+,Z_2^+,\cdots,Z_m^+)= (\max{(z_{11}, z_{21} , \cdots, z_{n1})},\max{(z_{12}, z_{22} , \cdots, z_{n2})},\cdots,\max{(z_{1m}, z_{2m} , \cdots, z_{nm})}) Z+=(Z1+,Z2+,,Zm+)=(max(z11,z21,,zn1),max(z12,z22,,zn2),,max(z1m,z2m,,znm))
定义最小值
Z − = ( Z 1 − , Z 2 − , ⋯   , Z m − ) = ( min ⁡ ( z 11 , z 21 , ⋯   , z n 1 ) , min ⁡ ( z 12 , z 22 , ⋯   , z n 2 ) , ⋯   , min ⁡ ( z 1 m , z 2 m , ⋯   , z n m ) ) Z^-=(Z_1^-,Z_2^-,\cdots,Z_m^-)= (\min{(z_{11}, z_{21} , \cdots, z_{n1})},\min{(z_{12}, z_{22} , \cdots, z_{n2})},\cdots,\min{(z_{1m}, z_{2m} , \cdots, z_{nm})}) Z=(Z1,Z2,,Zm)=(min(z11,z21,,zn1),min(z12,z22,,zn2),,min(z1m,z2m,,znm))
定义第 i ( i = 1 , 2 , ⋯   , n ) i(i=1,2,\cdots,n) i(i=1,2,,n)个评价对象与最大值的距离 D i + = ∑ j = 1 m ( Z j + − z i j ) 2 D_i^+=\sqrt{\sum_{j=1}^m(Z_j^+-z_{ij})^2} Di+=j=1m(Zj+zij)2
定义第 i ( i = 1 , 2 , ⋯   , n ) i(i=1,2,\cdots,n) i(i=1,2,,n)个评价对象与最小值的距离 D i − = ∑ j = 1 m ( Z j − − z i j ) 2 D_i^-=\sqrt{\sum_{j=1}^m(Z_j^--z_{ij})^2} Di=j=1m(Zjzij)2
那么我们可以计算出第 i i i个评价对象未归一化的得分: S i = D i − D i − + D i + S_i=\frac{D_i^-}{D_i^-+D_i^+} Si=Di+Di+Di
很显然 0 ≤ S i ≤ 1 0\leq S_i \leq1 0Si1,且 S i 越 大 D i + 越 小 , 即 越 接 近 最 大 值 。 S_i越大D_i^+越小,即越接近最大值。 SiDi+

权重的TOPSIS

假设有 n n n个要评价的对象, m m m个评价指标的标准化矩阵:
Z = [ z 11 z 12 ⋯ z 1 m z 21 z 22 ⋯ z 2 m ⋮ ⋮ ⋱ ⋮ z n 1 z n 2 ⋯   z n m ] Z= \begin{bmatrix} z_{11} & z_{12} & \cdots & z_{1m} \\ z_{21} & z_{22} & \cdots & z_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ z_{n1} & z_{n2} & \cdots\ & z_{nm} \\ \end{bmatrix} Z=z11z21zn1z12z22zn2 z1mz2mznm
定义最大值
Z + = ( Z 1 + , Z 2 + , ⋯   , Z m + ) = ( max ⁡ ( z 11 , z 21 , ⋯   , z n 1 ) , max ⁡ ( z 12 , z 22 , ⋯   , z n 2 ) , ⋯   , max ⁡ ( z 1 m , z 2 m , ⋯   , z n m ) ) Z^+=(Z_1^+,Z_2^+,\cdots,Z_m^+)= (\max{(z_{11}, z_{21} , \cdots, z_{n1})},\max{(z_{12}, z_{22} , \cdots, z_{n2})},\cdots,\max{(z_{1m}, z_{2m} , \cdots, z_{nm})}) Z+=(Z1+,Z2+,,Zm+)=(max(z11,z21,,zn1),max(z12,z22,,zn2),,max(z1m,z2m,,znm))
定义最小值
Z − = ( Z 1 − , Z 2 − , ⋯   , Z m − ) = ( min ⁡ ( z 11 , z 21 , ⋯   , z n 1 ) , min ⁡ ( z 12 , z 22 , ⋯   , z n 2 ) , ⋯   , min ⁡ ( z 1 m , z 2 m , ⋯   , z n m ) ) Z^-=(Z_1^-,Z_2^-,\cdots,Z_m^-)= (\min{(z_{11}, z_{21} , \cdots, z_{n1})},\min{(z_{12}, z_{22} , \cdots, z_{n2})},\cdots,\min{(z_{1m}, z_{2m} , \cdots, z_{nm})}) Z=(Z1,Z2,,Zm)=(min(z11,z21,,zn1),min(z12,z22,,zn2),,min(z1m,z2m,,znm))
定义第 i ( i = 1 , 2 , ⋯   , n ) i(i=1,2,\cdots,n) i(i=1,2,,n)个评价对象与最大值的距离 D i + = ∑ j = 1 m ω j ( Z j + − z i j ) 2 D_i^+=\sqrt{\sum_{j=1}^m\omega_j(Z_j^+-z_{ij})^2} Di+=j=1mωj(Zj+zij)2
定义第 i ( i = 1 , 2 , ⋯   , n ) i(i=1,2,\cdots,n) i(i=1,2,,n)个评价对象与最小值的距离 D i − = ∑ j = 1 m ω j ( Z j − − z i j ) 2 D_i^-=\sqrt{\sum_{j=1}^m\omega_j(Z_j^--z_{ij})^2} Di=j=1mωj(Zjzij)2
那么我们可以计算出第 i i i个评价对象未归一化的得分: S i = D i − D i − + D i + S_i=\frac{D_i^-}{D_i^-+D_i^+} Si=Di+Di+Di
很显然 0 ≤ S i ≤ 1 0\leq S_i \leq1 0Si1,且 S i 越 大 D i + 越 小 , 即 越 接 近 最 大 值 。 S_i越大D_i^+越小,即越接近最大值。 SiDi+

可以使用层次分析法给这 m m m个评价指标确定权重:
∑ j = 1 m ω j = 1 \sum_{j=1}^m\omega_j=1 j=1mωj=1

由于层次分析法的主观性太强了,更推荐使用熵权法来进行客观赋值。

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值