数学建模-优劣解距离法(TOPSIS)

本文同步发表于本人博客哔哔哔哔-数学建模-优劣解距离法(TOPSIS),未经允许严禁转载

前言

优劣解距离法,又称逼近理想解法,是应用于评价类问题的解法,能够反应原始数据的信息.
在层次分析法(AHP)无法处理时,常用TOPSIS处理.

指标

指标类型

指标类型 描述
极大型指标 越大越好
极小型指标 越小越好
中间型指标 越接近某个值越好
区间型指标 在某个区间最好

矩阵的生成

Step1. 指标的统一

将所有指标统一为极大型指标的过程,称为指标正向化.

1. 极小型 → \rightarrow 极大型

构造计算公式
x i ~ \tilde{x_i} xi~= m a x − x i max-x_i maxxi
若所有 x x x均为正数,则可以用以下公式表示
x i ~ \tilde{x_i} xi~= 1 x i \frac{1}{x_i} xi1

2. 中间型 → \rightarrow 极大型

首先找出每个 x i x_i xi与最优值之间距离的最大值 M M M
M M M= m a x max max{ ∣ x i − x b e s t ∣ |x_i-x_{best}| xixbest}
x i ~ \tilde{x_i} xi~=1- ∣ x i − x b e s t ∣ M \frac{|{x_i}-x_{best}|}{M} Mxixbest

3.区间型 → \rightarrow 极大型

假设 { x i } \{x_i\} {xi}的最佳区间为 [ a . b ] [a.b] [a.b]
M M M= m a x max max { a − m i n { x i } , m a x { x i } − b } \{a-min\{x_i\},max\{x_i\}-b\} {amin{xi},max{xi}b}
x i ~ = { 1 − a − x M , x < a 1 , a ≤ x ≤ b 1 − x − b M , x > b \tilde{x_i}=\left\{ \begin{aligned} 1-\frac{a-x}{M},xb \end{aligned} \right. xi~= 1Max,x<a1,axb1Mxb,x>b

Step2. 正向化矩阵标准化

标准化的目的是消除不同指标采用不同量纲的影响

在由 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= x11x21xn1x12x22xn2x1mx2mxnm

经过标准化处理后的矩阵记为 Z Z Z,那么 Z Z Z的每个元素为
z i j = x i j ∑ i = 1 n x i j 2 z_{ij}=\frac{x_{ij}}{\sqrt{\sum_{i=1}^n{x_{ij}}^2}} zij=i=1nxij2 xij
可以表示为z与最小值的距离/z与最大值的距离+z与最小值的距离

Step3. 归一化处理

不考虑权重

若不考虑各因素的权重,则可按如下方式处理
已经过标准化处理的矩阵为
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= z11z21zn1z12z22zn2z1mz2mznm
这里求出每列的最大值和最小值,并分别记为行向量 Z + Z^{+} Z+ Z − = ( m a x { z 11 , z 21 , ⋯   , z n 1 } , ⋯   , m a x { z 1 m , z 2 m , ⋯   , z n m } ) Z^{-}=(max\{z_{11},z_{21},\cdots,z_{n1}\},\cdots,max\{z_{1m},z_{2m},\cdots,z_{nm}\}) Z=(max{z11,z21,,zn1},,max{z1m,z2m,,znm})

Z + = ( m i n { z 11 , z 21 , ⋯   , z n 1 } , ⋯   , m i n { z 1 m , z 2 m , ⋯   , z n m } ) Z^{+}=(min\{z_{11},z_{21},\cdots,z_{n1}\},\cdots,min\{z_{1m},z_{2m},\cdots,z_{nm}\}) Z+=(min{z11,z21,,zn1},,min{z1m,z2m,,znm})

i ( i = 1 , 2 , ⋯   , n ) i(i=1,2,\cdots,n) i(i=1,2,,n)个评价对象与最大值距离 D + = ∑ i = 1 n ( z j + − z i j ) 2 D^{+}=\sqrt{\sum_{i=1}^n(z_j^{+}-z_{ij})^2} D+=i=1n(zj+zij)2

D − = ∑ i = 1 n ( z j − − z i j ) 2 D^{-}=\sqrt{\sum_{i=1}^n(z_j^{-}-z_{ij})^2} D=i=1n(zjzij)2

i ( i = 1 , 2 , ⋯   , n ) i(i=1,2,\cdots,n) i(i=1,2,,n)个评价对象最终结果为
S i = D i − D i + + D i − S_i=\frac{D_i^{-}}{D_i^{+}+D_i^{-}} Si=Di++DiDi ( 0 ≤ S i ≤ 1 ) (0\leq S_i\leq 1) (0Si1)
可见, S i S_i Si越大, D i − D_i^{-} Di越小,越接近最大值.

考虑权重

若考虑各因素的权重,可以通过层次分析法(AHP)计算权重,并按如下处理
i ( i = 1 , 2 , ⋯   , n ) i(i=1,2,\cdots,n) i(i=1,2,,n)个评价对象与最大值距离 D + = ∑ i = 1 n ω i ( z j + − z i j ) 2 D^{+}=\sqrt{\sum_{i=1}^n\omega_i(z_j^{+}-z_{ij})^2} D+=i=1nωi(zj+zij)2

D − = ∑ i = 1 n ω i ( z j − − z i j ) 2 D^{-}=\sqrt{\sum_{i=1}^n\omega_i(z_j^{-}-z_{ij})^2} D=i=1nωi(zjzij)2

当然,最后还需要检验所有权重之和是否唯一
∑ j = 1 m ω j = 1 \sum_{j=1}^m\omega_j=1 j=1mωj=1

你可能感兴趣的:(数学,线性代数,矩阵,机器学习)