美文网首页
[数学建模第二讲] TOPSIS 优劣解距离法

[数学建模第二讲] TOPSIS 优劣解距离法

作者: 茶酒qqq | 来源:发表于2020-02-05 20:11 被阅读0次
image.png

TOPSIS 优劣解距离法

一般用于对已有样本进行评价/排名。

引例

按照成绩对四人进行评分

image.png

思路:按照成绩进行1234的排名,然后因为评分越高越好,所以将排名逆转。

问题:

  • 如果最高分和最低分变化后排名不变,此时评分也不变,但是考的分数就变了,而且与别人的评分差异不大(最低分得分0.1而不是0)
  • 即评分无法很好地体现成绩的变化
  • image.png

想法一:

  • 修改构造评分的公式:

    • p_i={{x_i-min}\over {max-min}}

    • max,min为样本中的最高分与最低分

    • image.png
  • 此时未归一化的评分,最高分得分1,最低分得分0,不管最低分怎么变化,得分一直是0,和别人的评分拉开了差距。

增加指标个数

下图增加了一个指标

image.png

指标有类型,分为:

  • 极大型:数值越大越好
  • 极小型:数值越小越好
  • 中间型:数值越靠近一个中间数值最好
  • 区间型:数值在一个区间内最好

因此要对拿到的指标转化,统一指标类型,一般都化为极大型,称为指标正向化

步骤

1. 将原始矩阵正向化

将指标类型统一转化为极大型指标

  • 极小型->极大型: max-x或者全部为正数时:\frac 1x

  • 中间型->极大型:

    • M = max\{|x_i-x_{best}|\}
  • \tilde{x_i} = 1 - \frac{|x_i-x_{best}|}{M}

    • 先求和最佳中间值最近的距离M,然后求每个x_i和最佳值的距离,再和M比较,再取反
  • 区间型->极大型:

    • M = max\{a-min[x_i],max[x_i]-b\}, \tilde{x_i} = \begin{cases} 1- \frac{a-x}{M} ,& x<a\\[2ex] 1, & a\le x \le b \\[2ex] 1- \frac{x-b}{M} ,& x<a\\[2ex] \end{cases}

    • 先求出max(左边和a的距离,右边和b的距离)=M,然后再按照区间有不同公式带入求分数

2. 正向化矩阵标准化

  • 消除量纲的影响。不同指标的单位不同,因此数据数值差异很大,不利于计算,因此要标准化。

  • image.png
  • 每个元素/\sqrt{其所在列元素平方和}

3. 计算得分并归一化

​ 将每个样本的指标转化为两个对象:与最大值的距离和与最小值的距离,然后计算得分

  • image.png
  • 使用如下公式计算得分,i为第i个评价对象:

  • S_{i}(评分)=\frac{Z_{i}与最小值的距离}{Z_{i}与最大值的距离 + Z_{i}与最小值的距离} \\[4ex]

  • 最大值,是一个向量,表示由每列的最大值组成的行向量:Z^+=\{max(Z_1),max(Z_2)...max(Z_m)\}

  • 最小值,是一个向量,表示由每列的最小值组成的行向量:Z^-=\{min(Z_1),min(Z_2)...min(Z_m)\}

  • Z_{i}与最大值的距离D^+_i

    • D^+_i= {\sqrt{\sum_{j=1}^m{(Z^+_j-z_{ij})^2}}}
  • Z_{i}与最小值的距离D^-_i

    • D^-_i= {\sqrt{\sum_{j=1}^m{(Z^-_j-z_{ij})^2}}}
  • 评分:

    • S_i={D^-_i \over D^+_i+D^-_i}

举例:

  • image.png

我们得到处理过的矩阵Z,下面计算得分:

  • 找出Z^+(最大值)=[0.6048, 0.8018]

  • 找出Z^-(最小值)=[0.3665, 0]

  • 计算D^+D^-

    • image.png
  • 计算得分S_i={D^-_i \over D^+_i+D^-_i}
  • image.png

扩展模型

带权重的TOPSIS模型:

image.png

权重可以用层次分析法得出。但是主观性比较大。

相关文章

网友评论

      本文标题:[数学建模第二讲] TOPSIS 优劣解距离法

      本文链接:https://www.haomeiwen.com/subject/udkexhtx.html