TOPSIS与ISM的联用


论文写作或者计算需要帮助可发邮件到 hwstu # sohu.com 把 #替换成@,请说清来意,不必拐弯抹角,浪费相互之间的时间。

返回首页


  

  TOPSIS简介

  C.L.Hwang 和 K.Yoon 于1981年首次提出 TOPSIS (Technique for Order Preference by Similarity to an Ideal Solution)。TOPSIS 法是一种综合评价方法,能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。基本过程为基于归一化后的原始数据矩阵,采用距离法找出最优方案和最劣方案,然后分别计算各评价对象与最优方案和最劣方案间的距离,最终以此作为评价优劣的依据。

  TOPSIS对数据没有特别严格要求,算起来很简单易行,于是使得它大行其道。

  大行其道的表现在如下几个方面:

  1、用TOPSIS的文章非常多,用到该方法的行业、学科非常多,只要有排序的基本都有用到该方法。

  2、出现各种魔改方法,有时候改着改着就用了别的名字了。

  

TOPSIS的博弈思想


  

  谋士为什么总说上中下三策

  《资治通鉴》卷三十三胡三省注:“大率古人论事,画为三策者,其上策多孟浪骇俗而难行,其中策则平实全宜而可用,其下策则常人所知也。”

  在历史上的确有大把所谓的上中下三策故事。这就不再一一举例。在现实生活中也常常有这样的例子。比如买个东西,推销人员往往给出好几个,然后贼贵的使劲夸,最便宜的使劲踩。然后对客户观言察色,最后把一个最贵的推销给了客户。东西好不好则两说了。

  谋士要出三个策略,让主公选择,让主公参与到决策中来,最好的方式是让主公能小修改一下才完美。——即让主公有参与感,有露脸的机会。这个是谋士出三个方案的一个原因。

  谋士都知道主公的劣根性,猜得到主公想要干蠢事。但如果给主公先说出来就不好驳斥了。 于是在主公还没开金口之前就献上上中下三策,主公想干的蠢事自然就是下策。 既然都说了是下策,而且理由充分,主公也就不好意思厚着脸皮说我非要当笨蛋了。

  在做外包的时候,好的乙方往往会给甲方提供3个方案,看着基本类似,但是之所以提供3个方案,就是让甲方有选择余地,让甲方有当主公的感觉。

  用博弈论的理论解释,谋臣和主公为博弈双方,“上中下策”为策略,均可形成纳什均衡。虽然某个均衡帕累托优于另一个均衡,但风险却高于后者,博弈方为了规避风险,必然趋于选择后一个均衡,这个均衡称为“风险上策均衡”。

  

TOPSIS的步骤


  

  设有$ n $个评价方案 $A_i ( i = 1,2,…,n)$ 及$ m $ 个指标$ C_j ( j = 1,2,…,m)$ ,$x_{ij}$为评价方案 $A_i$在指标$ C_j$下的指标数据。

  1、归一化:通常采用欧式距离公式归一化

  $$ y_{ij} = \frac {x_{ij}} { \sqrt{ {\sum \limits_{i=1}^{n}{x_{ij}^2}} } }= \frac {x_{ij}} { ( {\sum \limits_{i=1}^{n}{x_{ij}^2}} )^{\frac 1 2} } $$

  2、构造加权规范评价矩阵

  $$\mathbf{Z}=(z_{ij})_{n \times m}$$

  $$z_{ij} = \omega_{j} y_{ij} ( i = 1,2,…n; j = 1,2,3,…,m)$$

  $$其中 \omega_{j} 可以多种方法获得,比如直接拍脑袋确定,也可以熵权法等,还是一句话合理就行$$

  3、构造正理想解$\mathbf{S^+}$与负理想想解$\mathbf{S^-}$

  $$ \mathbf{S^+}= ( z^+_1 ,z^+_2 ,z^+_3,…,z^+_m )\quad \quad 有: z^+_j = max( z_{ij}) \quad 且 1≤i≤n ; \quad j=1,2,… ,m $$

  $$ \mathbf{S^-}= ( z^-_1 ,z^-_2 ,z^-_3,…,z^-_m )\quad \quad 有: z^-_j = min( z_{ij}) \quad 且 1≤i≤n ; \quad j=1,2,… ,m $$

  4、计算各评价方案到正、负理想解的距离。

  通常用欧式距离来来算。

  $$ d_i^+=\sqrt{ {\sum \limits_{j=1}^{m}{ (z_{ij}-z_j^+ )^2 }} }$$

  $$ d_i^-=\sqrt{ {\sum \limits_{j=1}^{m}{ (z_{ij}-z_j^- )^2 }} }$$

  5、计算各方案与理想点的接近程度

  $$ \gamma _i = \frac{ d_i^-} { d_i^- + d_i^+} $$

  6、按$ \gamma _i$由大到小的顺序对方案(样本)进行排序,值越大表示越优

  

对TOPSIS的各种魔改


魔改基本来自距离的定义,即相似度的定义跟计算。跟距离或者相似度相关的函数最少有50种,加上各种组合那就更多了,现给出14来个概念。

  

  1、欧氏距离(Euclidean Distance)到标准化欧氏距离(Standardized Euclidean distance )

  普通的欧氏距离公式,以样本(方案、点)1;样本(方案、点)2之间的相似度为例

  $$ d_{12}=\sqrt{ {\sum \limits_{k=1}^{m}{ (x_{1k}-x_{2k} )^2 }} }$$

  到标准化欧氏距离(Standardized Euclidean distance )即先标准化。标准化欧氏距离是针对简单欧氏距离的缺点而作的一种改进方案。标准欧氏距离的思路:既然数据各维分量的分布不一样,那先将各个分量都“标准化”到均值、方差相等。至于均值和方差标准化到多少,先复习点统计学知识。 

  标准化后的值 = ( 标准化前的值 - 分量的均值 ) /分量的标准差  

  $$ \mathbf{X^*}=\frac {(X-m)}{s} $$

  最后标准化的欧式距离为: 

  $$ d_{12}=\sqrt{ {\sum \limits_{k=1}^{m}{ ( \frac {x_{1k}-x_{2k}} {s_k} )^2 }} }$$

  

  

  2、夹角余弦(Cosine) 或者叫余弦相似度(cosine similarity)

  A、在二维空间中向量A(x1,y1)与向量B(x2,y2)的夹角余弦公式:

  $$ cos\theta= \frac {x_1x_2+y_1y_2}{\sqrt{x_1^2+x_2^2} \sqrt{y_1^2+y_2^2} }$$

  B、两个n维样本点A(x11,x12,...x1n)与B(x21,x22,...x2n)间的相似度: 

  $$ cos\theta =\frac {AB}{\vert A \vert \vert B \vert} $$

  即: 

  $$ cos\theta =\frac {\sum \limits_{k=1}^{n} x_{1k} x_{2k}}{ { \sqrt {\sum \limits_{k=1}^{n} x_{1k}^2 } } { \sqrt {\sum \limits_{k=1}^{n} x_{2k}^2 } }} $$

  夹角余弦的取值范围是【-1,1】。夹角余弦越大,表示两个向量的夹角越小。当两个向量重合时,同向,夹角余弦最大,为1,反向,夹角余弦最小,为-1.

  

  

  3、马哈拉诺比斯距离 又叫马氏距离(Mahalanobis Distance)

  马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是,它考虑到各种特性之间的联系(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是有关联的),并且是尺度无关的(scale-invariant)

  方差:方差是标准差的平方,而标准差的意义是数据集中各个点到均值点距离的平均值。反应的是数据的离散程度。

  协方差:标准差与方差是描述一维数据的,当存在多维数据时,我们通常需要知道每个维数的变量中间是否存在关联。协方差就是衡量多维数据集中,变量之间相关性的统计量。如果两个变量之间的协方差为正值,则这两个变量之间存在正相关,若为负值,则为负相关。

  协方差矩阵:当变量多了,超过两个变量了。那么,就用协方差矩阵来衡量这么多变量之间的相关性。假设 $X$ 是以 $n$ 个随机变数(其中的每个随机变数是也是一个向量,当然是一个行向量)组成的列向量:

  $$ X = \begin{bmatrix} X_1 \\ X_2 \\ \vdots \\ X_n \end{bmatrix}$$

  其中,$\mu_i$是第$i$个元素的期望值,即$\mu_i = E(X_i)$。协方差矩阵的第$i,j$项(第$i,j$项是一个协方差)被定义为如下形式:

  $$ \sum_{ij} = cov(X_i,X_j = E[(X_i-\mu_i)(X_j-\mu_j)])$$

  即如下形式:

 $$ \sum = \begin{bmatrix} E[(X_1-\mu_1)(X_1-\mu_1)]) & E[(X_1-\mu_1)(X_2-\mu_2)]) & \cdots & E[(X_1-\mu_1)(X_n-\mu_n)]) \\ E[(X_2-\mu_2)(X_1-\mu_1)]) & E[(X_2-\mu_2)(X_2-\mu_2)]) & \cdots & E[(X_2-\mu_2)(X_n-\mu_n)]) \\ \vdots & \vdots & \ddots & \vdots \\ E[(X_n-\mu_n)(X_1-\mu_1)]) & E[(X_n-\mu_n)(X_2-\mu_2)]) & \cdots & E[(X_n-\mu_n)(X_n-\mu_n)]) \end{bmatrix} $$

  矩阵中的第 $(i,j)$ 个元素是 $X_i$ 与 $X_j$ 的协方差。

  对于一个均值为$\mu = (\mu_1,\mu_2,\mu_3,...,\mu_p)^T$,协方差矩阵为$\sum$的多变量$x = (x_1,x_2,x_3,...,x_p)^T$,其马氏距离为:

  $$ D_M(x) = \sqrt{(x-\mu)^T {\sum}^{-1}(x-\mu)} $$

  如果$\sum^{-1}$是单位矩阵的时候,马氏距离即为欧氏距离。

  

  

  4、曼哈顿距离(Manhattan Distance)

  曼哈顿距离也称为城市街区距离(CityBlock distance)

  $$ d_{ii'}=\sum_{j=1}^p |x_{ij}-x_{i'j}| $$

  $$ L_{1}(x_{i},x_{j})=\sum_{l=1}^{n}\left| x_{i}^{(l)}-x_{j}^{(l)}\right|$$ 

  $$ d_{12}=\sum_{k=1}^n \|x_{1k}-x_{2k}\| $$

  

  

  5、切比雪夫距离(Chebyshev distance)

  数学上,切比雪夫距离(Chebyshev distance)或是L∞度量是向量空间中的一种度量,二个点之间的距离定义为_其各座标数值差的最大值_。以(x1,y1)和(x2,y2)二点为例,其切比雪夫距离为max(|x2-x1|,|y2-y1|)。切比雪夫距离得名自俄罗斯数学家切比雪夫。

  

  若将国际象棋棋盘放在二维直角座标系中,格子的边长定义为1,座标的x轴及y轴和棋盘方格平行,原点恰落在某一格的中心点,则王从一个位置走到其他位置需要的步数恰为二个位置的切比雪夫距离,因此切比雪夫距离也称为棋盘距离。例如位置F6和位置E2的切比雪夫距离为4。任何一个不在棋盘边缘的位置,和周围八个位置的切比雪夫距离都是1。

  $$ l\infty=\max{i=1}^n|x_i-y_i| $$

  $$ L_{1}(x_{i},x_{j})=\sum_{l=1}^{n}\left| x_{i}^{(l)}-x_{j}^{(l)}\right|$$ 

  比雪夫距离转化为曼哈顿距离

  $$切比雪夫距离: Dis(A,B)=max(|X_A-X_B|,|Y_A-Y_B|) $$

  $$曼哈顿距离: Dis(A,B)=|X_A-X_B|+|Y_A-Y_B| $$

  $$去max的算法 max(X,Y)=(X+Y+|X-Y|)/2 $$

  $$ |X-Y|=max(X-Y,Y-X) $$

  

  

  6、闵可夫斯基距离(Minkowski Distance)

  可以将曼哈顿距离,欧几里得距离,切比雪夫距离三种距离的计算公式归纳 为一个计算公式,这就是闵可夫斯基距离(Minkowski Distance)。

  $$ d(x, y) = (\sum\limits_{k=1}^n|x_k - y_k|^r)^{\frac{1}{r}} $$

  $r = 1$, 该公式就是曼哈顿距离

  $r = 2$, 该公式就是欧氏距离 

  当$r\to\infty$时,闵科夫斯基距离就变成了切比雪夫距离

  

  

  7、海明距离,汉明距离(Hamming distance)

  汉明距离是以理查德·卫斯里·汉明的名字命名的。在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。

  例如 $$Hamming Distance(1001001, 0101101) = 3$$

  

  

  8、编辑距离(Levenshtein Distance)

  编辑距离主要用于两个字符串之间的距离计算。定义就是将一个字符串用最少的删除、插入操作变成另一个字符串所需要的操作个数。比如$x=abcde,y=acfdeg$,他们的编辑距离就是3。具体的实现方法就用$dp$做就好了,复杂度就是两个字符串长度之积。他的值跟这两个字符串的LCS还有一定的关系,即编辑距离等于x和y的长度之和减去他们LCS长度的两倍。当然,有些定义的编辑距离还会支持“替换”或者“交换”之类的操作,其实意思也都差不多了。

  

  

  9、杰卡德相似系数(Jaccardsimilarity coefficient) 杰卡德距离 (Jaccard distance)

  (1) 杰卡德相似系数:两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示。杰卡德相似系数是衡量两个集合的相似度一种指标。

  (2) 杰卡德距离:与杰卡德相似系数相反的概念是杰卡德距离(Jaccard distance)。杰卡德距离用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度。

  $$d(x,y)=1-SIM(x,y)$$

  Jaccard系数定义为两个集合A和B的交集元素在其并集中所占的比例,即 $$J(A,B)=\dfrac{A\cap B}{A\cup B}$$ 对于两个数据对象$x$和$y$,均由$n$个二元属性组成,则 $$J=\dfrac{f_{11}}{f_{01}+f_{10}+f_{11}}$$ 式中,$f_{11}$为$x$取$1$且$y$取$1$的属性个数,$f_{01}$为$x$取$0$且$y$取$1$的属性个数,$f_{10}$为$x$取$1$且$y$取$0$的属性个数。 Jaccard系数适用于处理仅包含非对称的二元属性的对象。 广义Jaccard系数定义如下: $$EJ(x,y)=\dfrac{xy}{‖x‖^2+‖y‖^2-xy}$$ 广义Jaccard系数又称为Tanimoto系数,可用于处理文档数据,并在二元属性情况下归约为Jaccard系数。

  

  

  10、相关系数( Correlation coefficient )与相关距离(Correlation distance)

   相关系数是最早由统计学家卡尔·皮尔逊设计的统计指标,是研究变量之间线性相关程度的量,一般用字母 r 表示。由于研究对象的不同,相关系数有多种定义方式,较为常用的是皮尔逊相关系数。

两个数据对象之间的相关性是对象属性之间线性关系的度量,计算公式如下 $$\rho_{xy}=\dfrac{s_{xy}}{s_x s_y}$$ $$s_{xy}=\dfrac{1}{n-1} \Sigma_{k=1}^n (x_k-\overline{x})(y_k-\overline{y})$$ $$s_x=\sqrt{\dfrac{1}{n-1} \Sigma_{k=1}^n (x_k-\overline{x})^2}$$ $$s_y=\sqrt{\dfrac{1}{n-1} \Sigma_{k=1}^n (y_k-\overline{y})^2}$$ $$\overline{x}=\dfrac{1}{n} \Sigma_{k=1}^n x_k , \overline{y}=\dfrac{1}{n} \Sigma_{k=1}^n y_k$$ 相关系数是衡量数据对象相关程度的一种方法,取值范围为$[-1,1]$。相关系数的绝对值越大,则表明$x$和$y$相关度越高。当$x$和$y$线性相关时,相关系数取值为$1$(正线性相关)或$-1$(负线性相关);线性无关时取值为$0$。在线性回归中,使用直线拟合样本点,可利用相关系数度量其线性性。

  

  

  11、信息熵

  信息熵描述的是整个系统内部样本之间的一个距离,是衡量分布的混乱程度或分散程度的一种度量。样本分布越分散(或者说分布越平均),信息熵越大;分布越有序(或者说分布越集中),信息熵就越小。给定样本集$X$的信息熵公式定义如下: $$Entropy(X)=\Sigma_{i=1}^n -p_i log_2⁡(p_i)$$ 式中,$n$为样本集的分类数,$p_i$为第$i$类元素出现的概率。当$S$中$n$个分类出现的概率一样大时,信息熵取最大值$log2(n)$。当$X$只有一个分类时,信息熵取最小值$0$。信息熵用于度量不确定性,在决策树分类中,信息熵可用于计算子树划分前后的信息增益作为选择最佳划分的度量。

  

  

  12、巴氏距离,巴塔恰里雅距离 (Bhattacharyya distance)

  统计学中,巴氏距离(巴塔恰里雅距离 / Bhattacharyya distance)用于测量两离散概率分布。它常在分类中测量类之间的可分离性。在同一定义域X中,概率分布p和q的巴氏距离定义如下:

   (1)离散概率分布

   (2)连续概率分布

  

  分布的距离为: $$ d(y) = \sqrt{ 1 - \rho\left[{ \hat{p}(y) - \hat{q} }\right] } \tag{1} $$

  其中$$ \hat{\rho}(y) \equiv \rho\left[{ \hat{p}(y) - \hat{q} }\right] = \sum^m_{u=1}{\sqrt{ \hat{p}_u(y) \hat{q}_u }} $$

  最小化Bhattacharyya distance$$ \rho\left[{ \hat{p}(y) - \hat{q} }\right] \approx \frac{1}{2}\sum\sqrt{\hat{p}_u(\hat{y}_0)\hat{q}_u} + \frac{C_h}{2}\sum{w_i k\left({ \left| \frac{y-x_i}{h} \right| }^2 \right)} \tag{2} $$

  $$ w_i = \sum^m_{u=1}{ \sqrt{\frac{ \hat{q}_u }{ \hat{p}_u(\hat{y}_0) }} } \delta [ b(x_i) -u ] $$

  $y_0$, $q$不变,故 $\hat{p}(\hat{y}_0)\hat{q}$ 约为一个常数

  

  

  13、KL散度(Kullback-Leibler divergence)

  相对熵(relative entropy),又被称为Kullback-Leibler散度(Kullback-Leibler divergence)或信息散度(information divergence),是两个概率分布(probability distribution)间差异的非对称性度量。在在信息理论中,相对熵等价于两个概率分布的信息熵(Shannon entropy)的差值。 相对熵是一些优化算法,例如最大期望算法(Expectation-Maximization algorithm, EM)的损失函数。此时参与计算的一个概率分布为真实分布,另一个为理论(拟合)分布,相对熵表示使用理论分布拟合真实分布时产生的信息损耗

   $$D(spec1||spec2) = \sum (spec1*log(\frac{spec1}{spec2})) $$

  

  

  14、兰氏距离 (Lance distance)

  兰氏距离是聚类分析中用于确定样本间距离的一种常见方法,由Lance和Williams最早提出的,故称为兰氏距离。这个距离克服了量纲的影响,但没有考虑指标间的相关性。主要用于数理统计多元分析中心聚类。

  兰氏距离是一个无量纲的量,克服了闵可夫斯基距离与各指标的量纲有关的缺点,且兰氏距离对大的奇异值不敏感,这使其特别适合高度偏移的和数据。但兰氏距离也没有考虑变量间的相关性。 闵可夫斯基距离和兰氏距离都是假定变量之间相互独立,即在正交空间中讨论距离。但在实际问题中,变量之间往往存在着一定的相关性,为克服变量之间相关性的影响,可以采用马氏距离。

   $$ d_{ij} = \sum_{k=1} ^{n} \frac{|x_{ik} - x_{jk}|}{x_{ik} + x_{jk}} $$

  

有向哈斯图(解释结构模型)对TOPSIS魔改


   ISM跟TOPSIS联合使用是一个更合适的说法,因为其重点并不是改各种距离公式。它只借鉴了TOSIS的解决问题的思路,即夹逼的思路,或者先扒拉一下甩出两个极值的矩阵,通过两个矩阵定好一个求偏序的规矩。这个偏序的规矩才是最重要的东西。接着画出哈斯图。然后分析ISM的层级图能清楚的说明最终的排序情况,以及样品之间可能出现逆序的情况。

  基于TOPSIS思想的对抗哈斯图分析法的步骤:

  1、归一化,得到一无量纲的模糊矩阵。归一化的方法最好是基于距离的方法进行。

  2、计算正负理想点,刚好可以构成一对,对抗矩阵。

  3、根据权重大小关系:方法A、由大到小排列,然后进行累加,获得一对对抗的累加矩阵。方法B、权重有小到大排列,进行累加获得一对对抗的累加矩阵。

  4、由对抗累加矩阵求得关系矩阵,由关系矩阵即可求得层级拓扑菊花链(即有向哈斯图)。

  5、看着哈斯图,扯扯蛋,看看层级,说明排序是咋回事。

基于夹逼思想的对抗哈斯图组方法——算例


  数据来源1:A research on the cutting database system based on machining features and TOPSIS

  数据来源2:应用偏序集表示权重难以获知的TOPSIS模型

  其中岳立柱的2文引用了1文的数据。

  两文都存在着明显的问题。

  1文、第一步都明显算错。而且排版也明显有问题,弄个欧式距离公式下标貌似弄错。

  2文、也是好几个手抖的地方,第一、引用的数据就没有算对的,归一化的矩阵就是错的;第二矩阵公式$m \times n$写成了 $ m \times m $。

  案例对工艺中的槽粗铣切削系统进行研究。有四个切削参数,为:主轴转速$SS(r/min)$、加料速度$FR(mm/min)$、切削宽度$CW(mm)$、切削深度$CD(mm)$。并给出7组数据,运用TOPSIS给出7组数据的排序。

  原始数据如下:

$$ \begin{array}{c|c|c|c|c|c|c}{M_{7 \times4}} &SS &FR &CW &CD\\ \hline A1 &11000 &1100 &1 &4\\ \hline A2 &11000 &2200 &1 &4\\ \hline A3 &7300 &1900 &1 &3\\ \hline A4 &6000 &2000 &1 &4\\ \hline A5 &5000 &800 &0.8 &2\\ \hline A6 &7000 &1200 &1 &5\\ \hline A7 &8000 &1800 &2 &6\\ \hline \end{array} $$

获得基于欧式距离的归一化矩阵


  原始数据以列为单位进行归一化公式如下:

  $$ y_{ij} = \frac {x_{ij}} { \sqrt{ {\sum \limits_{i=1}^{n}{x_{ij}^2}} } }= \frac {x_{ij}} { ( {\sum \limits_{i=1}^{n}{x_{ij}^2}} )^{\frac 1 2} } $$

  以第一行第一列计算为例:

  $$ y_{11} = \frac {x_{11}} { \sqrt{ {\sum \limits_{i=1}^{7}{x_{i1}^2}} } }= \frac {11000}{\sqrt{11000^2 + 11000^2 +7300^2+6000^2+5000^2+7000^2+8000^2 }}=0.508$$

  按欧式距离归一化后的矩阵如下$N$:

$$ \begin{array}{c|c|c|c|c|c|c}{M_{7 \times4}} &SS &FR &CW &CD\\ \hline A1 &1 &0.2143 &0.1667 &0.5\\ \hline A2 &1 &1 &0.1667 &0.5\\ \hline A3 &0.3833 &0.7857 &0.1667 &0.25\\ \hline A4 &0.1667 &0.8571 &0.1667 &0.5\\ \hline A5 &0 &0 &0 &0\\ \hline A6 &0.3333 &0.2857 &0.1667 &0.75\\ \hline A7 &0.5 &0.7143 &1 &1\\ \hline \end{array} $$

  1文中的数据如下:

  $$ \begin{array}{c|c|c|c|c|c|c}{M_{7 \times4}} &SS &FR &CW &CD\\ \hline A1 &0.51 &\color{red }{ 0.27} &0.32 &0.36\\ \hline A2 &0.51 &\color{red }{ 0.53} &0.32 &0.36\\ \hline A3 &0.34 &\color{red }{ 0.46} &0.32 &0.27\\ \hline A4 &0.28 &\color{red }{ 0.49} &0.32 &0.36\\ \hline A5 &0.23 &\color{red }{ 0.19} &0.26 &0.18\\ \hline A6 &0.32 &\color{red }{ 0.29} &0.32 &0.45\\ \hline A7 &0.37 &\color{red }{ 0.44} &0.64 &0.54\\ \hline \end{array}$$

  显然有一行的数据原作者手抖算错了

基于熵权法计算权重


  由归一化矩阵根据熵权法计算权重,详细的公式与方法可以参考有向哈斯图一文。最后结果如下:

$$ \begin{array}{c|c|c|c|c|c|c}{M_{2 \times4}} &SS &FR &CW &CD\\ \hline 权重 &0.2363 &0.2011 &0.3885 &0.1741\\ \hline 权重顺序 &2 &3 &1 &4\\ \hline \end{array} $$

  原文由于归一化就出现了问题,所以后续的计算基本错误,本例中尤其是权重的顺序发生了变化。

由归一化矩阵获得正负理想点与基于距离的正负对抗矩阵。


  正负理想点的公式如下,即取每列最大与最小值。

  $$ \mathbf{S^+}= ( z^+_1 ,z^+_2 ,z^+_3,…,z^+_m )\quad \quad 有: z^+_j = max( z_{ij}) \quad 且 1≤i≤n ; \quad j=1,2,… ,m $$

  $$ \mathbf{S^-}= ( z^-_1 ,z^-_2 ,z^-_3,…,z^-_m )\quad \quad 有: z^-_j = min( z_{ij}) \quad 且 1≤i≤n ; \quad j=1,2,… ,m $$

$$ \begin{array}{c|c|c|c|c|c|c}{M_{1 \times4}} &SS &FR &CW &CD\\ \hline \mathbf{S^+} &1 &1 &1 &1\\ \hline \end{array} $$$$ \begin{array}{c|c|c|c|c|c|c}{M_{1 \times4}} &SS &FR &CW &CD\\ \hline \mathbf{S^-} &0 &0 &0 &0\\ \hline \end{array} $$

  由归一化矩阵,分别对正负理想点得到对抗矩阵。公式如下:

  $$ \mathbf{K^+}= ( k^+_{ij})_{n \times m} \quad \quad 有: k^+_{ij} = ( n_{ij}- z^+_j)^2 \quad 其中 \quad n_{ij} \in N \quad z^+_j \in \mathbf{S^+} $$

  $$ \mathbf{K^-}= ( k^-_{ij})_{n \times m} \quad \quad 有: k^-_{ij} = ( n_{ij}- z^-_j)^2 \quad 其中 \quad n_{ij} \in N \quad z^-_j \in \mathbf{S^-} $$

  对抗矩阵$ \mathbf{K^+} $如下:

$$ \begin{array}{c|c|c|c|c|c|c}{M_{7 \times4}} &SS &FR &CW &CD\\ \hline A1 &0 &0.6173 &0.6944 &0.25\\ \hline A2 &0 &0 &0.6944 &0.25\\ \hline A3 &0.3803 &0.0459 &0.6944 &0.5625\\ \hline A4 &0.6944 &0.0204 &0.6944 &0.25\\ \hline A5 &1 &1 &1 &1\\ \hline A6 &0.4445 &0.5102 &0.6944 &0.0625\\ \hline A7 &0.25 &0.0816 &0 &0\\ \hline \end{array} $$

  对抗矩阵$ \mathbf{K^-} $如下:

$$ \begin{array}{c|c|c|c|c|c|c}{M_{7 \times4}} &SS &FR &CW &CD\\ \hline A1 &1 &0.0459 &0.0278 &0.25\\ \hline A2 &1 &1 &0.0278 &0.25\\ \hline A3 &0.1469 &0.6173 &0.0278 &0.0625\\ \hline A4 &0.0278 &0.7346 &0.0278 &0.25\\ \hline A5 &0 &0 &0 &0\\ \hline A6 &0.1111 &0.0816 &0.0278 &0.5625\\ \hline A7 &0.25 &0.5102 &1 &1\\ \hline \end{array} $$

由对抗矩阵$ \mathbf{K^+} \mathbf{K^-}$按照权重由小到大跟由大到小重新排列得到二对四个新的矩阵


  按照权重由大到小顺序得到$K_{d}^+ , K_{d}^-$ 下标d 表示的是权重减少的方向的意思,即down,DESC的意思

  青龙、东面、雅蠛蝶$K_{d}^+ $ 如下:

$$ \begin{array}{c|c|c|c|c|c|c}{M_{7 \times4}} &CW &SS &FR &CD\\ \hline A1 &0.6944 &0 &0.6173 &0.25\\ \hline A2 &0.6944 &0 &0 &0.25\\ \hline A3 &0.6944 &0.3803 &0.0459 &0.5625\\ \hline A4 &0.6944 &0.6944 &0.0204 &0.25\\ \hline A5 &1 &1 &1 &1\\ \hline A6 &0.6944 &0.4445 &0.5102 &0.0625\\ \hline A7 &0 &0.25 &0.0816 &0\\ \hline \end{array} $$

  白虎、西面、法克鱿 $ K_{d}^- $ 如下:

$$ \begin{array}{c|c|c|c|c|c|c}{M_{7 \times4}} &CW &SS &FR &CD\\ \hline A1 &0.0278 &1 &0.0459 &0.25\\ \hline A2 &0.0278 &1 &1 &0.25\\ \hline A3 &0.0278 &0.1469 &0.6173 &0.0625\\ \hline A4 &0.0278 &0.0278 &0.7346 &0.25\\ \hline A5 &0 &0 &0 &0\\ \hline A6 &0.0278 &0.1111 &0.0816 &0.5625\\ \hline A7 &1 &0.25 &0.5102 &1\\ \hline \end{array} $$

  按照权重由小到大顺序得到$K_{a}^+ , K_{a}^-$ 下标a 表示的是权重增加的方向的意思,即ASC的意思

  朱雀、南面、草泥马$K_{a}^+ $ 如下:

$$ \begin{array}{c|c|c|c|c|c|c}{M_{7 \times4}} &CD &FR &SS &CW \\ \hline A1 &0.25 &0.6173 &0 &0.6944\\ \hline A2 &0.25 &0 &0 &0.6944\\ \hline A3 &0.5625 &0.0459 &0.3803 &0.6944\\ \hline A4 &0.25 &0.0204 &0.6944 &0.6944\\ \hline A5 &1 &1 &1 &1\\ \hline A6 &0.0625 &0.5102 &0.4445 &0.6944\\ \hline A7 &0 &0.0816 &0.25 &0\\ \hline \end{array} $$

  玄武、北面、菊花熊 $ K_{a}^- $ 如下:

$$ \begin{array}{c|c|c|c|c|c|c}{M_{7 \times4}} &CD &FR &SS &CW \\ \hline A1 &0.25 &0.0459 &1 &0.0278\\ \hline A2 &0.25 &1 &1 &0.0278\\ \hline A3 &0.0625 &0.6173 &0.1469 &0.0278\\ \hline A4 &0.25 &0.7346 &0.0278 &0.0278\\ \hline A5 &0 &0 &0 &0\\ \hline A6 &0.5625 &0.0816 &0.1111 &0.0278\\ \hline A7 &1 &0.5102 &0.25 &1\\ \hline \end{array} $$

两组对抗矩阵即四个矩阵分别按照列从左到右累加得到二对即四个新的累加矩阵


  $K_{d}^+ , K_{d}^-$ 分别累加得到一组对抗矩阵$P_{d} , Q_{d}$

  其中$K_{d}^+ \longrightarrow P_{d} $ 可以看为青龙东方位的雅蠛蝶累加

$$ \begin{array}{c|c|c|c|c|c|c}{M_{7 \times4}} &雅蠛蝶1 &雅蠛蝶2 &雅蠛蝶3 &雅蠛蝶4\\ \hline A1 &0.694 &0.694 &1.312 &1.562\\ \hline A2 &0.694 &0.694 &0.694 &0.944\\ \hline A3 &0.694 &1.075 &1.121 &1.683\\ \hline A4 &0.694 &1.389 &1.409 &1.659\\ \hline A5 &1 &2 &3 &4\\ \hline A6 &0.694 &1.139 &1.649 &1.712\\ \hline A7 &0 &0.25 &0.332 &0.332\\ \hline \end{array} $$

  其中$K_{d}^- \longrightarrow Q_{d} $ 可以看为白虎西方位的法克鱿累加

$$ \begin{array}{c|c|c|c|c|c|c}{M_{7 \times4}} &法克鱿1 &法克鱿2 &法克鱿3 &法克鱿4\\ \hline A1 &0.028 &1.028 &1.074 &1.324\\ \hline A2 &0.028 &1.028 &2.028 &2.278\\ \hline A3 &0.028 &0.175 &0.792 &0.855\\ \hline A4 &0.028 &0.056 &0.79 &1.04\\ \hline A5 &0 &0 &0 &0\\ \hline A6 &0.028 &0.139 &0.221 &0.783\\ \hline A7 &1 &1.25 &1.76 &2.76\\ \hline \end{array} $$

  $K_{a}^+ , K_{a}^-$ 分别累加得到一组对抗矩阵$P_{a} , Q_{a}$

  其中$K_{a}^+ \longrightarrow P_{a} $ 可以看为朱雀南方位的草泥马累加

$$ \begin{array}{c|c|c|c|c|c|c}{M_{7 \times4}} &草泥马1 &草泥马2 &草泥马3 &草泥马4\\ \hline A1 &0.25 &0.867 &0.867 &1.562\\ \hline A2 &0.25 &0.25 &0.25 &0.944\\ \hline A3 &0.563 &0.608 &0.989 &1.683\\ \hline A4 &0.25 &0.27 &0.965 &1.659\\ \hline A5 &1 &2 &3 &4\\ \hline A6 &0.063 &0.573 &1.017 &1.712\\ \hline A7 &0 &0.082 &0.332 &0.332\\ \hline \end{array} $$

  其中$K_{a}^- \longrightarrow Q_{a} $ 可以看为玄武北方位的菊花熊累加

$$ \begin{array}{c|c|c|c|c|c|c}{M_{7 \times4}} &菊花熊1 &菊花熊2 &菊花熊3 &菊花熊4\\ \hline A1 &0.25 &0.296 &1.296 &1.324\\ \hline A2 &0.25 &1.25 &2.25 &2.278\\ \hline A3 &0.063 &0.68 &0.827 &0.855\\ \hline A4 &0.25 &0.985 &1.012 &1.04\\ \hline A5 &0 &0 &0 &0\\ \hline A6 &0.563 &0.644 &0.755 &0.783\\ \hline A7 &1 &1.51 &1.76 &2.76\\ \hline \end{array} $$

分别由$ \mathbf{P_d} , \mathbf{Q_d}$求出关系矩阵;$ \mathbf{P_a} , \mathbf{Q_a}$求出关系矩阵


  

  偏序的核心规则为对称性

  设:在$ \mathbf{P}, \mathbf{Q}$矩阵中任意两样本(行)$x,y$

   $$ 对于 \mathbf{P}矩阵: p_{x1} \geqslant p_{y1} 且p_{x2} \geqslant p_{y2} 且 p_{x3} \geqslant p_{y3} {\cdots}且p_{xm} \geqslant p_{ym} 同时对于 \mathbf{Q}矩阵: q_{x1} \leqslant q_{y1} 且 q_{x2} \leqslant q_{y2} 且q_{x3} \leqslant q_{y3}{\cdots} 且 q_{xm} \leqslant q_{ym}\\ $$

  记作:$\quad \quad PS_{(x)}\geqslant PS_{(y)}$

   关系矩阵值有:$$a_{xy}= \begin{cases} 1, PS_{(x)} {\geqslant} PS_{(y)} \\ 0, 其它 \end{cases} $$

  

由$ \mathbf{P_d} , \mathbf{Q_d}$求出关系矩阵,哈斯矩阵与上蹿哈斯图



关系矩阵:



$$O=\begin{array} {c|c|c|c|c|c|c|c}{M_{7 \times7}} &A1 &A2 &A3 &A4 &A5 &A6 &A7\\ \hline A1 &1 &1 &0 &0 &0 &0 &1\\ \hline A2 &0 &1 &0 &0 &0 &0 &0\\ \hline A3 &0 &1 &1 &0 &0 &0 &1\\ \hline A4 &1 &1 &0 &1 &0 &0 &1\\ \hline A5 &1 &1 &1 &1 &1 &1 &1\\ \hline A6 &1 &1 &1 &0 &0 &1 &1\\ \hline A7 &0 &0 &0 &0 &0 &0 &1\\ \hline \end{array} $$

哈斯矩阵即骨架矩阵



$$HS=\begin{array} {c|c|c|c|c|c|c|c}{M_{7 \times7}} &A1 &A2 &A3 &A4 &A5 &A6 &A7\\ \hline A1 &0 &1 &0 &0 &0 &0 &1\\ \hline A2 &0 &0 &0 &0 &0 &0 &0\\ \hline A3 &0 &1 &0 &0 &0 &0 &1\\ \hline A4 &1 &0 &0 &0 &0 &0 &0\\ \hline A5 &0 &0 &0 &1 &0 &1 &0\\ \hline A6 &1 &0 &1 &0 &0 &0 &0\\ \hline A7 &0 &0 &0 &0 &0 &0 &0\\ \hline \end{array} $$

上蹿形式的哈斯图



A1
A2
A3
A4
A5
A6
A7
第0层
第1层
第2层
第3层

由$ \mathbf{P_a} , \mathbf{Q_a}$求出关系矩阵,哈斯矩阵与上蹿哈斯图



关系矩阵:



$$O=\begin{array} {c|c|c|c|c|c|c|c}{M_{7 \times7}} &A1 &A2 &A3 &A4 &A5 &A6 &A7\\ \hline A1 &1 &1 &0 &0 &0 &0 &1\\ \hline A2 &0 &1 &0 &0 &0 &0 &0\\ \hline A3 &0 &1 &1 &1 &0 &0 &1\\ \hline A4 &0 &1 &0 &1 &0 &0 &1\\ \hline A5 &1 &1 &1 &1 &1 &1 &1\\ \hline A6 &0 &0 &0 &0 &0 &1 &1\\ \hline A7 &0 &0 &0 &0 &0 &0 &1\\ \hline \end{array} $$

哈斯矩阵即骨架矩阵



$$HS=\begin{array} {c|c|c|c|c|c|c|c}{M_{7 \times7}} &A1 &A2 &A3 &A4 &A5 &A6 &A7\\ \hline A1 &0 &1 &0 &0 &0 &0 &1\\ \hline A2 &0 &0 &0 &0 &0 &0 &0\\ \hline A3 &0 &0 &0 &1 &0 &0 &0\\ \hline A4 &0 &1 &0 &0 &0 &0 &1\\ \hline A5 &1 &0 &1 &0 &0 &1 &0\\ \hline A6 &0 &0 &0 &0 &0 &0 &1\\ \hline A7 &0 &0 &0 &0 &0 &0 &0\\ \hline \end{array} $$

上蹿形式的哈斯图



A1
A2
A3
A4
A5
A6
A7
第0层
第1层
第2层
第3层

由$ \mathbf{d^+} , \mathbf{d^-}$两列求偏序的哈斯图


  TOPSIS中关键一步是:计算各评价方案(样本)到正、负理想解的距离。

  通常用欧式距离来来算。

  $$ d_i^+=\sqrt{ {\sum \limits_{j=1}^{m}{ \omega_{j}^2 (n_{ij}-z_j^+ )^2 }} } \quad \quad i表示行,j表示列\quad 其中 \quad n_{ij} \in N \quad z^+_j \in \mathbf{S^+}$$

  $$ d_i^-=\sqrt{ {\sum \limits_{j=1}^{m}{ \omega_{j}^2 (n_{ij}-z_j^- )^2 }} } \quad \quad i表示行,j表示列\quad 其中 \quad n_{ij} \in N \quad z^-_j \in \mathbf{S^-}$$

  结果如下:

$$ \begin{array}{c|c|c|c|c|c|c}{M_{7 \times2}} &d^+ &d^-\\ \hline A1 &0.3706 &0.2636\\ \hline A2 &0.3352 &0.3287\\ \hline A3 &0.3807 &0.1981\\ \hline A4 &0.3898 &0.2075\\ \hline A5 &0.5268 &0\\ \hline A6 &0.3901 &0.1754\\ \hline A7 &0.1314 &0.4646\\ \hline \end{array} $$

  偏序规则为:

  设:任意两样本(行)$x,y$

   $$ 对于列: d_{x}^+ \geqslant d_{y}^+ 且d_{x}^- \leqslant d_{y}^- $$

  记作:$\quad \quad PS_{(x)}\geqslant PS_{(y)}$

   关系矩阵值有:$$a_{xy}= \begin{cases} 1, PS_{(x)} {\geqslant} PS_{(y)} \\ 0, 其它 \end{cases} $$


关系矩阵:



$$O=\begin{array} {c|c|c|c|c|c|c|c}{M_{7 \times7}} &A1 &A2 &A3 &A4 &A5 &A6 &A7\\ \hline A1 &1 &1 &0 &0 &0 &0 &1\\ \hline A2 &0 &1 &0 &0 &0 &0 &1\\ \hline A3 &1 &1 &1 &0 &0 &0 &1\\ \hline A4 &1 &1 &0 &1 &0 &0 &1\\ \hline A5 &1 &1 &1 &1 &1 &1 &1\\ \hline A6 &1 &1 &1 &1 &0 &1 &1\\ \hline A7 &0 &0 &0 &0 &0 &0 &1\\ \hline \end{array} $$

哈斯矩阵即骨架矩阵



$$HS=\begin{array} {c|c|c|c|c|c|c|c}{M_{7 \times7}} &A1 &A2 &A3 &A4 &A5 &A6 &A7\\ \hline A1 &0 &1 &0 &0 &0 &0 &0\\ \hline A2 &0 &0 &0 &0 &0 &0 &1\\ \hline A3 &1 &0 &0 &0 &0 &0 &0\\ \hline A4 &1 &0 &0 &0 &0 &0 &0\\ \hline A5 &0 &0 &0 &0 &0 &1 &0\\ \hline A6 &0 &0 &1 &1 &0 &0 &0\\ \hline A7 &0 &0 &0 &0 &0 &0 &0\\ \hline \end{array} $$

上蹿形式的哈斯图



A1
A2
A3
A4
A5
A6
A7
第0层
第1层
第2层
第3层
第4层
第5层

由$ \gamma _i^+ , \gamma _i^- $ 两列的偏序规则求哈斯图


  topsis的最后排序的规则稍微魔改下即可,原方法为,计算各样本(方案)与理想点的接近程度:

  $$ \gamma _i^- = \frac{ d_i^-} { d_i^- + d_i^+} \quad \quad 离正理想点近$$

  $$ \gamma _i^+ = \frac{ d_i^+} { d_i^- + d_i^+} \quad \quad 离负理想点近 $$

  结果如下:

$$ \begin{array}{c|c|c|c|c|c|c}{M_{7 \times2}} &\gamma _i^- = \frac{ d_i^-} { d_i^- + d_i^+} &\gamma _i^+ = \frac{ d_i^+} { d_i^- + d_i^+}\\ \hline A1 &0.5844 &0.4156\\ \hline A2 &0.5049 &0.4951\\ \hline A3 &0.6577 &0.3423\\ \hline A4 &0.6527 &0.3473\\ \hline A5 &1 &0\\ \hline A6 &0.6899 &0.3101\\ \hline A7 &0.2204 &0.7796\\ \hline \end{array} $$

  设:任意两样本(行)$x,y$

   $$ 对于列: \gamma_{x}^+ \geqslant \gamma_{y}^+ 且 \gamma_{x}^- \leqslant \gamma_{y}^- $$

  记作:$\quad \quad PS_{(x)}\geqslant PS_{(y)}$

   关系矩阵值有:$$a_{xy}= \begin{cases} 1, PS_{(x)} {\geqslant} PS_{(y)} \\ 0, 其它 \end{cases} $$


关系矩阵:



$$O=\begin{array} {c|c|c|c|c|c|c|c}{M_{7 \times7}} &A1 &A2 &A3 &A4 &A5 &A6 &A7\\ \hline A1 &1 &1 &0 &0 &0 &0 &1\\ \hline A2 &0 &1 &0 &0 &0 &0 &1\\ \hline A3 &1 &1 &1 &1 &0 &0 &1\\ \hline A4 &1 &1 &0 &1 &0 &0 &1\\ \hline A5 &1 &1 &1 &1 &1 &1 &1\\ \hline A6 &1 &1 &1 &1 &0 &1 &1\\ \hline A7 &0 &0 &0 &0 &0 &0 &1\\ \hline \end{array} $$

哈斯矩阵即骨架矩阵



$$HS=\begin{array} {c|c|c|c|c|c|c|c}{M_{7 \times7}} &A1 &A2 &A3 &A4 &A5 &A6 &A7\\ \hline A1 &0 &1 &0 &0 &0 &0 &0\\ \hline A2 &0 &0 &0 &0 &0 &0 &1\\ \hline A3 &0 &0 &0 &1 &0 &0 &0\\ \hline A4 &1 &0 &0 &0 &0 &0 &0\\ \hline A5 &0 &0 &0 &0 &0 &1 &0\\ \hline A6 &0 &0 &1 &0 &0 &0 &0\\ \hline A7 &0 &0 &0 &0 &0 &0 &0\\ \hline \end{array} $$

上蹿形式的哈斯图



A1
A2
A3
A4
A5
A6
A7
第0层
第1层
第2层
第3层
第4层
第5层
第6层

讨论


  topsis方法快用烂了,但是该方法的思想不会过时。那就是有点博弈论的味道,或者是夹逼的思路。

  topsis非常好魔改,只要改一下所谓的距离或者相似度的算法就OK,加上组合,那是想怎么改就怎么改,关键是要有道理。仅仅相似度的公式能找出50种以上。本人最少用过50种的距离公式。

  应用偏序集对TOPSIS模型进行表示,不仅能够对样本(方案)进行排序,还能对排序稳定性和样本的层次关系进行分析。关键是比较好八卦,天南地北,青龙白虎,朱雀玄武,雅美蝶、法克鱿、草泥马、菊花豹都可以瞎掰上去,当然这些玩意只是为了好记忆,也就是从正负方向进行收敛,进行夹逼而已。

  该方法具有很好的鲁棒性,关键看权重顺序,只要权重大小顺序不变,它就具有保序性。对不可比方案进行排序,可以从概率、模糊数、灰度等方面着手,关键还是要看对现实的符合程度,这种符合程度即反映方案排序发生的可能性。



如需用到其它方法如:
模糊解释结构模型即FISM的建模过程,包括FISM中的模糊算子的选择、诸如查徳算子、有界算子、爱因斯坦算子等等计算结果以及解释。
解释结构模型与DEMATEL:( Decision Making Trial and Evaluation Laboratory,决策试验和评价实验室 )联合使用。
解释结构模型与AHP/ANP 即层次分析法/网络分析法 联用。
解释结构模型与灰色系统 联用。
与自组织结构模型 SOM 。
与机器学习包括BP网络
与博弈论
与深度学习等等
欢迎来邮件探讨,亦可开发相关内容。
无毛定理有理解的尤其受欢迎
解释结构模型的高级运用,分子受力实时分析