zoukankan      html  css  js  c++  java
  • 建模学习第二天——优劣解距离法

    TOPSIS法 (优劣解距离法)

    来源:清风老师数学建模ppt,全手打

    • TOPSIS法:

      • 又名为:逼近理想排序法或优劣解距离法。
      • 是一种常用的综合评价方法,其能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。
      • 基本过程为:先将原始数据矩阵统一指标类型(一般正向化处理)得到正向化的矩阵,再对正向化的矩阵进行标准化处理消除各指标量纲的影响,并找到有限方案中的最优方案和最劣方案,然后分别计算各评价对象与最优方案和最劣方案间的距离,获得各评价对象与最优方案的相对接近程度,以此作为评价优劣的依据。该方法对数据分布及样本含量没有严格限制,数据计算简单易行。

    • 常见的四种指标:

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

    • 统一指标类型:

      • 将所有的指标转化为极大型成为指标正向化(最常用的)。
    • 标准化处理:

      • 为了消去不同指标量纲的影响,需要对已经正向化的矩阵进行标准化处理。

      • 标准化处理的公式:假设有n个要评价的对象,m个评价指标(已经正向化了)构成的正向化矩阵如下:

        • [X=left[egin{matrix}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{matrix} ight] ]

        • 那么,对其标准化的矩阵记为Z,Z中的每一个元素:

        [z_{ij}=frac{x_{ij}}{sqrt{sum_{i=1}^n x^2_{ij}}} ]



    • 构建计算公式:

      • [frac{x-min}{max-min}=frac{x-min}{(max-x)+(x-min)}=frac{x与最小值的距离}{x与最大值的距离+x与最小值的距离} ]


      • [Z=left[egin{matrix}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{matrix} ight] ]

      • 定义最大值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=((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})})

      • 定义第i(i=1,2,3,(cdots),n)个评价对象与最大值的距离:

        • [D^+_i=sqrt{sum_{j=1}^m (Z^+_j-z_{ij})^2} ]

      • 定义第i(i=1,2,3,(cdots),n)个评价对象与最小值的距离:

        • [D^-_i=sqrt{sum_{j=1}^m (Z^-_j-z_{ij})^2} ]

      • 那么,我们可以计算得出第i(i=1,2,(cdots),n)个评价对象未归一化的得分:Si=(frac{D^-_i}{D^+_i+D^-_i})很明显。0(leq)Si$leq$1,且Si越大 (D^+_i) 越小,即越接近最大值。



    解题思路:

    第一步:将原始矩阵正向化,将所有的指标类型统一转化为极大型指标。

    • 极小型指标转化为极大型指标:max-x,或者是(frac{1}{x})

    • 中间型指标转化为极大型指标:

      • 中间型指标:指标值既不要太大也不要太小,取某特定值最好。
      • {xi}是一组中间型指标序列,且最佳的数值为xbest,那么正向化公式如下:M=max{|xi—xbest|},( ilde{x})=1— (frac{|x~i~— x~best~|}{M})
    • 区间型指标转化为极大型指标:

      • [f(x)=left{ egin{aligned} 1-frac{a-x_i}{M} &,x_i<a\ 1&,aleq x_ileq b\ 1-frac{x_i-b}{M}&,x_i>b end{aligned} ight. ]

    第二步:

    • 正向化矩阵标准化。

      X = [89,1; 60,3; 74,2; 99,0]
      [n , m] = size(X)
      X ./ repmat(sum(X.*X) .^ 0.5, n, 1)
      

    第三步:

    • 构建计算公式计算得分并归一化

       = [89,1;60,3;74,2;99,0]
      [n , m] = size(X);
      Z = X ./ repmat(sum(X.*X) .^ 0.5,n,1);
      D_P = sum([(Z - repmat(max(Z),n,1)).^2 ],2) .^ 0.5  %D+向量
      D_N = sum([(Z - repmat(min(Z),n,1)).^2 ],2) .^ 0.5  %D-向量
      
      • 得分归一化:( ilde{S_i}=frac{S_i}{sum_{i=1}^n S_i}),这样的话,(sum_{i=i}^n ilde{S_i}=1)
      • 得分归一化不影响排序。
    • 当加上权重的时候,需要(D^+_i=sqrt{sum_{j=1}^m w_i(Z^+_j-z_{ij})^2}),其他的类似。wi在这里是权重。

    本是青灯不归客, 却因浊酒留风尘
  • 相关阅读:
    4.文本规范化处理
    2.自动文本分类
    3.文本分类的蓝图
    1.什么是文本分类
    2.文本规范化
    Python 处理和理解文本
    1.文本切分
    验证码识别
    随机函数
    Java编程思想笔记(多态)
  • 原文地址:https://www.cnblogs.com/wit-panda/p/13517638.html
Copyright © 2011-2022 走看看