Topsis优劣解距离法
- Topsis简述
- 几何标准化
- min-max归一化
- 正向化
- 中间型-->极大
- 区间型-->极大型
- Topsis
- 转化min-max方法
- Topsis步骤
- 思想
- 举例
- 代码
- 个人理解
- 熵权法
- 信息熵
- 熵权法步骤
- 数据预处理
- 计算概率矩阵
- 计算信息熵矩阵
- 信息熵效应值和熵权
- Topsis和熵权法结合
Topsis简述
TOPSIS 法是一种常用的综合评价方法,能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。
基本过程为先将原始数据矩阵统一指标类型(一般正向化处理)得到正向化的矩阵,再对正向化的矩阵进行标准化处理以消除各指标量纲的影响,并找到有限方案中的最优方案和最劣方案,然后分别计算各评价对象与最优方案和最劣方案间的距离,获得各评价对象与最优方案的相对接近程度,以此作为评价优劣的依据。该方法对数据分布及样本含量没有严格限制,数据计算简单易行。
几何标准化
- 消除量纲对模型的影响
对于原始数据:
进行标准化:
MATLAB代码:
X = [89,1; 60,3; 74,2; 99,0]
[n , m] = size(X)
Z = X ./ repmat(sum(X.*X) .^ 0.5, n, 1)
min-max归一化
- 适用于指标不存在理论上的最大值和最小值,例如GDP增速
- 适用于量纲和其他指标相比过大
- 消除量纲对模型的影响
min-max归一化方程:
例如:
正向化
中间型–>极大
中间型指标:指标值既不要太大也不要太小,取某特定值最好(如水质量评估 PH 值)
转化公式:
实际上本质还是使用的是到距离作为标准,不过Topsis定义是极大化,所以还是要进行转化的
区间型–>极大型
就是一组区间型指标序列,且最佳区间1,那么正向化指标公式如下:
Topsis
转化min-max方法
Topsis步骤
思想
就是通过计算和数据样本各个指标绝对最值之间的欧式距离,然后通过min-max思想来评判样本的优劣程度
举例
代码
X = [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-向量
S = D_N ./ (D_P + D_N)
个人理解
实际上Topsis就是对于同一种目标哪个是最优的选择,就是根据当前数据样本每个特征的最优值的距离作为我们的判断指标,但是有一个致命的缺点:我们经典的Topsis算法对于每一项指标的权值默认相同的,就是说他会本质是根据每个样本在每个特征中最大绝对差值中的位置决定了在结果中距离的贡献,这可能是不是最优的选择,所以我们想在Topsis基础之上通过某种方式给每种指标一个权重,于是引入熵权法给每个指标一个权值。
熵权法
信息熵
假设 表示事件 可能发生的某种情况, 表示这种情况发生的概率 ,
那么我们可以定义事件
从上面的公式可以看出,信息熵的本质就是对信息量的期望值。
可以得:
当 取最大值, 此时
就是我们对于指标中的权值,在Topsis中直接引入。
熵权法步骤
数据预处理
- 保证数据的正向化
- 保证数据非负,通过归一化标准化处理,通常保不保证都处理一下
假设有 n 个要评价的对象, m 个评价指标(已经正向化了)构成的正向化矩阵如下:
那么, 对其标准化的矩阵记为 Z, Z 中的每一个元素:
判断 Z 矩阵中是否存在着负数, 如果存在的话, 需要对 X 使用另一种标准化方法对矩阵 进行一次标准化得到
计算概率矩阵
假设有 n 个要评价的对象, m 个评价指标, 且经过了上一步处理得到的非负矩阵为:
我们计算概率矩阵 , 其中 中每一个元素 的计算公式如下:
容易验证:
计算信息熵矩阵
时, 取最大值, 此时 除以 能够使得信息熵的始终位于
信息熵效应值和熵权
信息熵越大,包含的信息量越小,有兴趣可以看一下李航老师统计学习方法的决策树对信息熵的解释。
信息效用值的定义:
那么信息效用值越大, 其对应的信息就越多。将信息效用值进行归一化, 我们就能够得到每个指标的熵权:
Topsis和熵权法结合
就是将通过和距离的结合决定和最优值的距离,相对来说比较合理,其他步骤和Topsis相同