基于熵权法对Topsis模型的修正

一、介绍

1、层次分析法的缺点

判断矩阵的确定依赖于专家,如果专家的判断存在主观性的话,会对结果产生很大影响(主观性太强)

2、熵权法原理

指标的变异程度越小,所反映的信息量也越少,其对应的权值也越低。所以熵权法的客观体现在数据本身就可以告诉我们权重大小,那使用熵权法也有一定前提:数据。

3、如何度量信息量大小

1)定性

越有可能发生的事,所包含的信息量越少;越不可能发生的事,所包含的信息量越多,因为他把不可能的事变成可能了,那么概率就可以度量信息量大小。

2)定量

把信息量大小用I表示,概率用p表示,建立函数关系: I ( x ) = − l n ( p ( x ) ) I(x)=-ln(p(x)) I(x)=−ln(p(x))

由图可知,当一件事必然发生时能从这件事中获取的信息量为0。

4、信息熵

1)定义

事件X可能发生的情况分别为 x 1 、 x 2 、 x 3 . . . . . x n . x_{1}、x_{2}、x_{3}.....x_{n}. x1​、x2​、x3​.....xn​.所以信息熵的定义就是X可能发生的情况的概率和每个情况所代表的信息量的乘积和,具体公式如下: H ( x ) = ∑ i = 1 n [ p ( x i ) I ( x i ) ] = − ∑ i = 1 n [ p ( x i ) l n ( p ( x i ) ) ] H(x)=\sum_{i=1}^{n} [p(x_{i})I(x_{i})]=-\sum_{i=1}^{n}[p(x_{i})ln(p(x_{i}))] H(x)=i=1∑n​[p(xi​)I(xi​)]=−i=1∑n​[p(xi​)ln(p(xi​))]

二、熵权法的计算步骤

1)因为概率是大于等于0的数,所以判断输入的矩阵中是否存在负数,如果有则要重新标准化到非负区间,对于一个已经正向化的矩阵X,对其标准化成Z矩阵,其中
z i j = x i j / ∑ i = 1 n x i j 2 z_{ij}=x_{ij}/\sqrt{\sum_{i=1}^{n}x_{ij}^{2} } zij​=xij​/i=1∑n​xij2​ ​
判断Z矩阵中是否存在负数,如果存在需要对X矩阵是用另一种标准化方式
z i j ~ = x i j − m i n ( x 1 j , x 2 j , . . . , x n j ) m a x ( x 1 j , x 2 j , . . . , x n j ) − m i n ( x 1 j , x 2 j , . . . , x n j ) \tilde{z_{ij}}= \frac{x_{ij}-min(x_{1j},x_{2j},...,x_{nj})}{max(x_{1j},x_{2j},...,x_{nj})-min(x_{1j},x_{2j},...,x_{nj})} zij​~​=max(x1j​,x2j​,...,xnj​)−min(x1j​,x2j​,...,xnj​)xij​−min(x1j​,x2j​,...,xnj​)​
2)计算第j项指标下第i个样本所占的比重,并将其看作相对熵计算中用到的概率
假设有n个要评价的对象,m个评价指标,且已经经过上一步处理得到的非负矩阵为:
Z ~ = [ z 11 ~ z 12 ~ . . . z 1 m ~ z 21 ~ z 22 ~ . . . z 2 m ~ . . . . . . . . . . . . z n 1 ~ z n 2 ~ . . . z n m ~ ] \tilde{Z}= \begin{bmatrix} \tilde{z_{11}} &\tilde{z_{12}} &... &\tilde{z_{1m}} \\ \tilde{z_{21}}&\tilde{z_{22}} &... &\tilde{z_{2m}} \\ ...& ... & ... &... \\ \tilde{z_{n1}} & \tilde{z_{n2}}& ... &\tilde{z_{nm}} \end{bmatrix} Z~=⎣ ⎡​z11​~​z21​~​...zn1​~​​z12​~​z22​~​...zn2​~​​............​z1m​~​z2m​~​...znm​~​​⎦ ⎤​
我们计算概率矩阵P其中P的每一个元素Pij的计算公式如下:
p i j = z i j ~ ∑ i = 1 n z i j ~ p_{ij}= \frac{\tilde{z_{ij}}}{\sum_{i=1}^{n}\tilde{z_{ij}} } pij​=∑i=1n​zij​~​zij​~​​
3)计算每个指标的信息熵,并计算信息效用值,并归一化得到每个指标的熵权
对于第j个指标来说,其信息熵的计算公式为:
e j = − 1 ln ⁡ n ∑ i = 1 n p i j ln ⁡ p i j e_{j}=-\frac{1}{\ln_{}{n} } \sum_{i=1}^{n} p_{ij}\ln _{}{p_{ij}} ej​=−ln​n1​i=1∑n​pij​ln​pij​
信息效用值的定义: d j = 1 − e j d_{j}=1-e_{j} dj​=1−ej​那么信息效用值越大,其对应的信息就越多,将信息效用值进行归一化,我们就能得到每个指标的熵权:
W j = d j ∑ j = 1 m d j W_{j}=\frac{d_{j}}{\sum_{j=1}^{m}d_{j} } Wj​=∑j=1m​dj​dj​​

三、熵权法的问题

熵权法的另一个问题:因为概率p是位于0‐1之间,因此需要对原始数据进行标准化,我们应该选择哪种方式进行标准化呢?查看知网的文献会发现,并没有约定俗成的标准,每个人的选取可能都不一样。但是不同方式标准化得到的结果可能有很大差异,所以说熵权法也是存在着一定的问题的。
如果大家的论文要发表,别用熵权法如果大家只是用这个方法进行比赛那么可以随便用因为这个方法总比你自己随意定义好

模型学习01——评价类模型(3)相关推荐

  1. 模型学习01——评价类模型(1)

    ​ 一.层次分析法(AHP) 1.简介 将与决策有关的元素分解成目标.准则.方案等层次,在此基础之上进行定性和定量分析(形成打分表)的决策方法.主要适用于解决评价类模型. 2.目标 形成以下打分表格 ...

  2. 评价类模型——层次分析法

    评价类模型--层次分析法 注:以下故事纯属虚构,部分背景及人物姓名设定借用<你好,旧时光>这部剧,但与原剧基本无关,如有情节雷同,纯属巧合. Q:余周周同学遇到三位追求者,这三位候选人分别 ...

  3. 数学建模笔记——评价类模型之熵权法

    嗯,这次讲一讲熵权法,一种通过样本数据确定评价指标权重的方法. 熵权法 之前我们提到了TOPSIS方法,用来处理有数据的评价类模型.TOPSIS方法还蛮简单的,大概就三步. 将原始数据矩阵正向化. 也 ...

  4. 评价类模型(层次分析法与模糊评价模型)

    一.评价类模型 综合评价的基本理论和数据预处理: 评价对象 评价指标 权重系数 综合评价模型 评价者 二.AHP法-层次分析法 通过打分解决评价类问题,两两比较,推算权重. %function RI= ...

  5. Machine Learning A-Z学习笔记12-分类模型性能评级及选择

    Machine Learning A-Z学习笔记12-分类模型性能评级及选择 1.简单原理 一般认为假阴性比假阳性更严重,如核酸检测 用混淆矩阵表示如下图 准确率驳论(Accuracy Paradox ...

  6. 数学建模--评价类模型

    目录 一.主观评价 1.层次分析法(AHP) ①应用场景 ②步骤 ③模型实现 ④代码实现 ⑤优缺点评价 2.模糊综合评价法(FCE) ①应用场景 ②步骤 ③模型实现 3.灰色关联分析法(GRA) ①应 ...

  7. 评价类模型:1.层次分析法

    评价类问题 举例 高考结束,小明在华中科技大学和武汉大学之间做选择 首先,选择打分指标及其所占权重: 学习氛围,就业前景,男女比例,校园景色 随后,根据查资料或者其他途径对两所校园的各个指标进行打分 ...

  8. 评价类模型(一)层次分析法

    1.问法:确定评价指标,形成评价体系------>打分法解决评价问题------>需要填好如下表格 同一颜色的单元格的和为1,它们表示针对某一因素所占的权重或得分. 2.解决评价类问题要解 ...

  9. 从零开始的数模学习(4):熵权法(评价类模型)

    目录 1.算法简介: 2.熵权法的基本步骤: 2.1 数据归一化 4.2 计算指标变异性 4.3 计算信息熵 4.4 计算信息熵冗余度 4.5 计算权重 4.6 计算得分 3.例题 3.1 判断下列同 ...

最新文章

  1. 排好序的数组中,找出两数之和为m的所有组合
  2. java 素数 五行_【数论】素数的判定与筛法
  3. malloc free
  4. BeetleX.Http.Clients访问https服务
  5. java.sql.SQLException: ORA-01438: 值大于此列指定的允许精确度
  6. EBS业务学习之应付INVOICE类型
  7. vs2012安装过程 1006
  8. 为什么在python中整数的值没有限制_为什么在Python中整数是不可变的?
  9. CSS实现左侧固定大小,右侧自适应的布局
  10. Qt+opencv二值化
  11. Oracle、plsql安装以及使用教程
  12. 快捷方式查看系统的配置信息 使用dxdiag
  13. python3中unicode-objects must be encoded before hashing问题
  14. 《数据库原理与应用》实验二
  15. 性能测试之nmon对linux服务器的监控 侵删
  16. 通过php内核变量绕过,利用PHP内核变量绕过disable_functions(附完整代码)
  17. 大学物理复习-静电场
  18. Spark Core源码精读计划 番外篇A:AppStatusStore的底层实现
  19. 缓解疲劳,闻咖啡比喝咖啡更好
  20. win10企业版LSTC1809启用投影到此电脑功能

热门文章

  1. 中学物理数字化探究实验室建设配备
  2. 经典笔试面试题总结(一)
  3. 7T, 9T and Track
  4. 数据库工程师考点2023
  5. 医学主题词表(Medical Subject Headings, MeSH)
  6. 如何判断电脑是否被黑客入侵
  7. Spring+SpringMvc+Hibernate(SSH)+bootstrap/Jsp整合
  8. matlab命令行窗口显示长度设置_MATLAB中如何设置坐标轴的显示长度?
  9. 卫星轨道和两行数据TLE
  10. Linux过滤关键字写入另一个文件