优劣解距离法

请注意,本文最后更新于2022.2.28,其中一些理解可能已被笔者推翻或废弃。

优劣解距离法(TOPSIS)

TOPSIS法(Technique for Order Preference by Similarity to Ideal Solution)
可翻译为逼近理想解排序法,国内常简称为优劣解距离法。是根据有限个评价对象与理想化目标的接近程度进行排序的方法,是在现有的对象中进行相对优劣的评价。

TOPSIS 法是一种常用的综合评价方法,其能充分利用原始数据的信息,
其结果能精确地反映各评价方案之间的差距。

不同压缩因子压缩熵权法的TOPSIS

基本思想

构造计算评分公式:\(\frac{x-min}{max-min}\)

该公式能够良好的对一个指标下的数据进行评分,反应了单个数据在数据范围区间所处的位置。

拓展:将其中 \(x-min\) 理解为“x与最小点的距离”;\(max-x\) 理解为“x于最大值点的距离”即可得到多指标评价公式

模型步骤

数据处理

对所有的指标构成进行说明

对于 \(m\) 个评价指标横向排列,\(n\) 个评价对象纵向排列的矩阵,记为 \[X_{nm}=\left[\begin{array}{cccc} x_{11} & x_{12} & \cdots & x_{1 m} \\ x_{21} & x_{22} & \cdots & x_{2 m} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n 1} & x_{n 2} & \cdots & x_{n m} \end{array}\right]\]

指标正向化

描述:统一指标类型,将为极小型、中间型、区间型等指标转换为极大值指标

:最好不要出现负数(无法求熵权)

  1. 极小型指标转换为极大型指标的公式

\[\bar{x}_{i}=max-x_i或\bar{x}_{i}=\frac{1}{x_i}\] 其中\(\bar{x}_{i}\)代表转化后的结果

  1. 中间型指标转化为极大型指标

\[\bar{x}_{i}=1-\frac{\left|x_{i}-x_{\text {best }}\right|}{\max \left(\left|X-x_{\text {best }}\right|\right)}\] 其中\(x_{best}\) 指代的是最好的值

  1. 区间型指标转化为极大型指标

\[ \overline{x_{i}}=\left\{\begin{array}{c} 1-\frac{a-x_{i}}{M}, x_{i}>a \\ 1, \quad a<x_{i}<b \\ 1-\frac{x_{i}-b}{M}, x_{i}>b \end{array} \right. \] 其中\(M=\max \{a-\min (X), \max (X)-b\}\)即偏离最优区间最远的值; \(a\)为下界,\(b\)为上界

标准化处理

描述:消去不同指标量纲的影响

记标准化矩阵为\(Z_{nm}\),有\(Z_{i j}=\frac{x_{i j}}{\sqrt{\sum_{i=1}^{n} x_{i j}^{2}}}\)

计算得分

定义 \[ \begin{aligned} Z^{+} &=\left(Z_{1}^{+}, Z_{2}^{+}, \cdots, Z_{m}^{+}\right) \\ &=\left(\max \left\{z_{11}, z_{21}, \cdots, z_{n 1}\right\}, \max \left\{z_{12}, z_{22}, \cdots, z_{n 2}\right\}, \cdots, \max \left\{z_{1 m}, z_{2 m}, \cdots, z_{n m}\right\}\right) \\ Z^{-} &=\left(Z_{1}^{-}, Z_{2}^{-}, \cdots, Z_{m}^{-}\right) \\ &=\left(\min \left\{z_{11}, z_{21}, \cdots, z_{n 1}\right\}, \min \left\{z_{12}, z_{22}, \cdots, z_{n 2}\right\}, \cdots, \min \left\{z_{1 m}, z_{2 m}, \cdots, z_{n m}\right\}\right) \end{aligned} \]

定义第 \(i(i=1,2, \cdots, n)\) 个评价对象与最大值的距离 \(D_{i}^{+}=\sqrt{\sum_{j=1}^{m}\widetilde{w}_{j}\left(Z_{j}^{+}-z_{i j}\right)^{2}}\)
定义第 \(i(i=1,2, \cdots, n)\) 个评价对象与最小值的距离 \(D_{i}^{-}=\sqrt{\sum_{j=1}^{m}\widetilde{w}_{j}\left(Z_{j}^{-}-z_{i j}\right)^{2}}\)
其中 \(\widetilde{w}_{j}\) 为加权的指标权重,权重默认为1(因为除法,权重单位量对结果无影响),可以用层次分析法或熵权法确定权重。

\(i(i=1,2, \cdots, n)\) 个评价对象未归一化得分\(S_{i}=\frac{D_{i}^{-}}{D_{i}^{+}+D_{i}^{-}}\)

*结果处理

为了比较不同评价模型得到的结果曲线,常常对结果处理。让结果更容易解释,或更好比较。(归一化、标准化)

\[\widetilde{S_{i}}=\frac{S_{i}}{\sum_{i=1}^{n} S_{i}}\]

更多理解

对于形如上文 \(Z\) 的矩阵,可以将\(m\)个评价指标看作\(m\)个坐标轴。对于这\(m\)个坐标轴的张成空间 \(V\) ,每一条横轴(即待评价单元)就可表示为该空间上的一点 \(P(x_{i1},x_{i2},...,x_{im})\)

\(Z^{+}(Z_{1}^{+}, Z_{2}^{+}, \cdots, Z_{m}^{+})\) , \(Z^{-}(Z_{1}^{-}, Z_{2}^{-}, \cdots, Z_{m}^{-})\) 为包含所有评价点集的最小“\(m\)维体”的主对称轴上的两端点。

对于 \(S_{i}=\frac{D_{i}^{-}}{D_{i}^{+}+D_{i}^{-}}=\frac{1}{1+k}\) , \(k\) 的含义为点到 \(Z^+\)\(Z^-\) 的距离比值。形如 \(k=\frac{D^+}{D^-}=\frac{dis(X,Z^+)}{dis(X,Z^-)}\) 的式子表示的曲线为\(m\)纬的球体。

以下为2个评价指标时,以 \(Z^+(3,2)\) , \(Z^-(0,0)\) 为端点,\(k=\{2^{-4},2^{-3},...,2^4\}\) 时的函数图像。同一曲线上的点表示的评价结果相同。

二维评价张成空间

如图,可以看出TOPSIS评价对空间进行了扭曲(把\(m\)空间非线性压缩为一维评价系)。保留了样本间间距,但损失了原始统计信息。

通过下文解释,所以TOPSIS是高纬的归一化(Normalization)?但下文中说,归一化也是线性放缩。 (22.1.18)

熵权法

熵权法构建系数利用了信息论的知识。简单的说,数据的变异程度(方差)越大,就说明这个指标蕴含的信息量越大,也就越重要。例如:一个指标都是相同的数值,那么这个指标的变异程度(方差)就超级小,也没对最终的判断做出贡献,所以这个指标的权重就可以赋为0。

模型思想

记信息量为\(I(p)\),概率为\(p\),有\(I(1)=0\)\(I(0^+)=+\infty\),可以得到一个\(I\)\(p\)呈反比的函数图像。

构造\(I(x)=- \ln{p(x)}\)保证\(0 \leqslant p(x) \leqslant 1\)\(x\)表示事情发送的情况,\(p(x)\)表示事情发生的概率。

可定义事件\(X={x_1,x_2,...,x_n}\)(\(x_i\)为发生情况)的信息熵为: \[H(X)=\sum_{i=1}^{n}\left[p\left(x_{i}\right) I\left(x_{i}\right)\right]=-\sum_{i=1}^{n}\left[p\left(x_{i}\right) \ln \left(p\left(x_{i}\right)\right)\right]\] 信息熵的本质是对信息量的期望值。

:可证当\(p(x_1)=p(x_2)=...=p(x_n)=\frac{1}{n}\)\(H(x)\)取得最大值为\(\ln n\)

基本步骤

  1. 矩阵正向化和标准化 \[Z=\left[\begin{array}{cccc} z_{11} & z_{12} & \cdots & z_{1 m} \\ z_{21} & z_{22} & \cdots & z_{2 m} \\ \vdots & \vdots & \ddots & \vdots \\ z_{n 1} & z_{n 2} & \cdots & z_{n m} \end{array}\right] \]
  2. 对已经正向化和标准化的矩阵,若有负数需再次归一化(另一种标准化) \[\tilde{z}_{i j}=\frac{x_{i j}-\min \left\{x_{1 j}, x_{2 j}, \cdots, x_{n j}\right\}}{\max \left\{x_{1 j}, x_{2 j}, \cdots, x_{n j}\right\}-\min \left\{x_{1 j}, x_{2 j}, \cdots, x_{n j}\right\}}\]
  3. 计算概率矩阵 \[p_{i j}=\frac{\tilde{z}_{i j}}{\sum_{i=1}^{n} \tilde{z}_{i j}}\]
  4. 计算熵值。之所以除以了一个 \(ln(n)\) 是为了归一化 \[e=-\frac{1}{\ln (n)} \times \sum_{i=1}^{n} p_{i} \ln \left(p_{i}\right)\]
  5. 构建权重。首先用\(1-e_j\)得到信息的效用值,之后因为权重只和为\(1\),在对权重进行归一化即可得到\(w_j\)权重 \[d_j=1-e_j\] \[w_j=\frac{d_j}{\sum_{j=1}^m d_j}\]

熵权法仅仅能反应指标信息量的大小,并不能反应指标的重要程度,所以使用熵权法加权的评价模型得到的结果往往比未加权的结果变化幅度更大,增减趋势更明显。但似乎并不能得到一个客观的评分? (22.1.21)

越往右越趋近正常的熵权法权重

*归一化与标准化

它们都是指特征工程中的特征线性缩放过程

作用

  1. 使不同量纲的特征处于同一数值量级,减少方差大的特征的影响,使模型更准确。
  2. 加快学习算法的收敛速度。

缩放过程可以分为以下几种

  1. 缩放到均值为0,方差为1(Standardization——StandardScaler())
  2. 缩放到0和1之间(Standardization——MinMaxScaler())
  3. 缩放到-1和1之间(Standardization——MaxAbsScaler())
  4. 缩放到0和1之间,保留原始数据的分布(Normalization——Normalizer())

1就是常说的z-score归一化,2是min-max归一化。

归一化(Normalization)

1.平均归一化(Mean Normalization)

这种归一化需防止在线学习或在线推理中,新进样本突破原始min或max数据

\[\frac{X_{i}-\mu }{X_{\max }-X_{\min }}\]

其中\(X_{min}\)表示对应矩阵中最小的数;\(X_{max}\)表示对应矩阵中最大的数

2.minmax归一化(Rescaling)

这种归一化需防止在线学习或在线推理中,新进样本突破原始min或max数据 \[\frac{X_{i}-X_{\min }}{X_{\max }-X_{\min }}\]

3.非线性归一化(Non-Linear Normlization)

\[ \begin{array}{c} \lg x \\ \log _{2} x \\ \frac{2}{\pi} \arctan x \end{array} \] 这种归一化需考虑数据分布,进行适当的非线性函数选取。

标准化(Standardization)

1.Z-Score标准化

\[\frac{X_{i}-\mu}{\sigma}\] 这种标准化需要要求原数据近似高斯分布。

其中\(\mu\)表示矩阵均值;\(\sigma\)表示矩阵标准差

中心化(Centralization)

对于中心化,有的地方成为Mean-Subtraction,表示均值-减去(有点日本话的感觉),有的地方称之为Zero-Mean即零均值化,还有的为Zero-Centered这个只可意会很难翻译。但总而言之,他们都是下面这个形式: \[x_i-\mu\]

区别和用途

归一化和标准化的相同点都是对某个特征(column)进行缩放(scaling)而不是对某个样本的特征向量(row)进行缩放。对特征向量进行缩放是毫无意义的。

归一化和标准化都保持数据分布不变的情况下(两者本质上都只是对数据进行线性变化),对数据进行处理,但是从公式上面还是能够明显看出来,归一化的处理只是和最大值最小值相关,归一化后样本会失去原始的信息;标准化却是和数据的分布相关(均值,方差)。归一化更好保留了样本间间距;标准化的统计意义更强,是数据缩放的首选。

归一化 将一列数据“拍扁”到某个固定区间(常为[0,1]),和最大/小值有关
标准化 将数据变换为均值0,标准差为1的分布(并非一定正态),缩放和每个点都有关(通过均值+方差体现)
中心化 变量减去均值,可避免异常值和极端值的影响,本质为口个平移过程,平移后数据中心是原点0

参考

  1. https://www.cnblogs.com/xiashiwendao/p/12130992.html ↩︎
  2. https://baike.baidu.com/item/TOPSIS%E6%B3%95/3094166?fr=aladdin ↩︎
  3. https://blog.csdn.net/limiyudianzi/article/details/103410150 ↩︎
  4. bilibili:数学建模学习交流 ↩︎
  5. https://www.zhihu.com/question/20467170 ↩︎
  6. https://zhuanlan.zhihu.com/p/364338617 ↩︎