前言:昨天写了一篇熵权法的文章,我想可能有部分数模小白们只是根据公式来机械的实现代码,而并没有很好的理解算法的内涵,所以我想用比较通俗易懂的方法来解释这些算法。希望能够帮助到同样热爱数模的同学们,我们一起学习,一起进步!
topsis法,又称优劣解距离法,是数学建模中很经典的方法。
一.正向化
同熵权法一样,我们需要进行数据的规范化处理,并且这里了解到了对多种指标的处理方法:
上面这些公式需要在编程的时候实现,然而很多时候我们没有很好地理解它们的内涵。
稍稍解释一下区间型指标正向化操作的意义:
将脱离最优区间之外的指标的值化为它与这个区间端点(可能是最大值也可能是最小值)的距离,然后用1-(距离/最大距离)作为这个区间外指标正向化之后的值,区间内指标值直接赋值为1 。同时中间型指标只不过是将区间型指标的两端变为相同的数,其意义是一样的。
二.标准化
标准化的方法有很多种,有zi=xi/Σxi的方法,也有zi=xi/sqrt(Σxi**2) 的方法
但这些标准化的目标都是为了去量纲
三.topsis距离计算
假设有m个指标,n个单位
每一个指标下都有最大值和最小值:
用m维空间中的点来描述能够更好地理解
各个指标下的最大值构成m维空间中的一个最大参照点
各个指标下的最小值构成m维空间中的一个最小参照点
每个单位的在各个指标下的所有数据都是m维空间中的一个点
每个点到最大参照点的距离为Di+
每个点到最小参照点的距离为Di-
(距离的定义类似二维平面和三维空间里的距离)
最终每个单位的得分即为Si=Di-/(Di- + Di+)
显然Di-越大,Di+就越小,表明该单位的总体表现更接近最大参照点,得分就越高
最后归一化,使各单位的得分总和为1
具体实例参见【清风数学建模学习笔记—TOPSIS法】
希望能对你有所帮助!~~