前言:

信息熵是一种用于衡量系统内部信息量的度量。在信息论中,信息是系统有序程度的一种度量。

信息是确定性的增加,不确定性的减少(香农定理)。而信息熵是系统无序程度的一种度量,是系统不确定性的量度。两者绝对值相等,但符号相反。一个系统的信息熵越小,该系统所含的信息量越大。

信息熵被广泛用于计算机编码,通信理论,博弈论等与“信息量”和“不确定性”相关的理论模型中。

熵权法就是一个通过信息熵理论确定系统中各指标权值的赋值方法,能够较为精确客观地判断系统中各指标对总评价的贡献大小。

信息熵的概念

  信息是个很抽象的概念。人们常常说信息很多,或者信息较少,但却很难说清楚信息到底有多少。比如一本五十万字的中文书到底有多少信息量。
  直到1948年,香农提出了“信息熵”的概念,才解决了对信息的量化度量问题。信息熵这个词是C.E.香农从热力学中借用过来的。热力学中的热熵是表示分子状态混乱程度的物理量。香农用信息熵的概念来描述信源的不确定度
  信息论之父克劳德·艾尔伍德·香农第一次用数学语言阐明了概率与信息冗余度的关系。
 
  信息论之父 C. E. Shannon 在 1948 年发表的论文“通信的数学理论( A Mathematical Theory of Communication )”中, Shannon 指出,任何信息都存在冗余,冗余大小与信息中每个符号(数字、字母或单词)的出现概率或者说不确定性有关。
  Shannon 借鉴了热力学的概念,把信息中排除了冗余后的平均信息量称为“信息熵”,并给出了计算信息熵的数学表达式。
  
信息熵具有以下特点:

• 单调性,即发生概率越高的事件,其所携带的信息熵越低。极端案例就是“太阳从东方升起”,因为为确定事件,所以不携带任何信息量。从信息论的角度,认为这句话没有消除任何不确定性。

• 非负性,即信息熵不能为负。这个很好理解,因为负的信息,即你得知了某个信息后,却增加了不确定性是不合逻辑

• 累加性,即多随机事件同时发生存在的总不确定性的量度是可以表示为各事件不确定性的量度的和。

熵权法介绍

熵最先由香农引入信息论,目前已经在工程技术、社会经济等领域得到了非常广泛的应用。

熵权法的基本思路是根据指标变异性的大小来确定客观权重。

  熵权法相对于其他打分评价模型来说,具有精确客观的优点。基于信息熵所计算得出的权重能够较为精确地反应不同指标间的差别。但是相对应的,由于该模型的本质是用有限个决策样本去“估计”指标的信息熵,在样本量过少的情况下,基于熵权法所计算得出的权重则有可能出现较大误差。一般来讲,样本决策数必须大于等于指标数

  一般来说,若某个指标的信息熵越小,表明指标值得变异程度越大,提供的信息量越多,在综合评价中所能起到的作用也越大,其权重也就越大。相反,某个指标的信息熵越大,表明指标值得变异程度越小,提供的信息量也越少,在综合评价中所起到的作用也越小,其权重也就越小。

熵权法赋权步骤

数据标准化

  将各个指标的数据进行标准化处理。

  假设给定了k个指标,其中。假设对各指标数据标准化后的值为,那么

求各指标的信息熵

  根据信息论中信息熵的定义,一组数据的信息熵     ,

(近似写为:,n取e为底数) ,其中   

如果   则定义  再带入。

确定各指标权重

  根据信息熵的计算公式,计算出各个指标的信息熵为。通过信息熵计算各指标的权重:

熵权法赋权实例

背景介绍

  某医院为了提高自身的护理水平,对拥有的11个科室进行了考核,考核标准包括9项整体护理,并对护理水平较好的科室进行奖励。下表是对各个科室指标考核后的评分结果。

表1  11个科室9项整体护理评价指标得分表

  但是由于各项护理的难易程度不同,因此需要对9项护理进行赋权,以便能够更加合理的对各个科室的护理水平进行评价。

熵权法进行赋权

1.数据标准化

  根据原始评分表,对数据进行标准化后可以得到下列数据标准化表

2  11个科室9项整体护理评价指标得分表标准化表

2.求各指标的信息熵

  根据信息熵的计算公式,可以计算出9项护理指标各自的信息熵如下:

3  9项指标信息熵表

3.计算各指标的权重

  根据指标权重的计算公式,可以得到各个指标的权重如下表所示:

4  9项指标权重表

4.对各个科室进行评分

  根据计算出的指标权重,以及对11个科室9项护理水平的评分。设Zl为第l个科室的最终得分,则 ,各个科室最终得分如下表所示:

5  11个科室最终得分表

实现过程

数据源:

 

python3代码:
 1 # -*- encoding=utf-8 -*-
 2
 3 import warnings
 4 warnings.filterwarnings("ignore")
 5 import pandas as pd
 6 import numpy as np
 7
 8
 9 def get_score(wi_list,data):
10     """
11     :param wi_list: 权重系数列表
12     :param data:评价指标数据框
13     :return:返回得分
14     """
15
16     #  将权重转换为矩阵
17
18     cof_var = np.mat(wi_list)
19
20     #  将数据框转换为矩阵
21     context_train_data = np.mat(data)
22
23     #  权重跟自变量相乘
24     last_hot_matrix = context_train_data * cof_var.T
25     last_hot_matrix = pd.DataFrame(last_hot_matrix)
26
27     #  累加求和得到总分
28     last_hot_score = list(last_hot_matrix.apply(sum))
29
30     #  max-min 归一化
31
32     # last_hot_score_autoNorm = autoNorm(last_hot_score)
33
34     # 值映射成分数(0-100分)
35
36     # last_hot_score_result = [i * 100 for i in last_hot_score_autoNorm]
37
38     return last_hot_score
39
40
41
42 def get_entropy_weight(data):
43     """
44     :param data: 评价指标数据框
45     :return: 各指标权重列表
46     """
47     # 数据标准化
48     data = (data - data.min())/(data.max() - data.min())
49     m,n=data.shape
50     #将dataframe格式转化为matrix格式
51     data=data.as_matrix(columns=None)
52     k=1/np.log(m)
53     yij=data.sum(axis=0)
54     #第二步,计算pij
55     pij=data/yij
56     test=pij*np.log(pij)
57     test=np.nan_to_num(test)
58
59     #计算每种指标的信息熵
60     ej=-k*(test.sum(axis=0))
61     #计算每种指标的权重
62     wi=(1-ej)/np.sum(1-ej)
63
64     wi_list=list(wi)
65
66
67     return  wi_list
68
69
70
71 if __name__ == '__main__':
72
73
74     data0 = pd.read_excel("C:\\Users\\Oreo\\Desktop\\test2.xlsx", encoding='utf8')
75
76     data = data0.iloc[:, 1:10]
77     mm=data
78     wi_list=get_entropy_weight(data)
79     score_list=get_score(mm,wi_list)
80     mm['score']=score_list
81     mm['科室']=data0['科室']
82     # 然后对数据框按得分从大到小排序
83     result = mm.sort_values(by='score', axis=0, ascending=False)
84     result['rank'] = range(1, len(result) + 1)
85
86     print(result)
87
88     # 写出csv数据
89     result.to_csv('C:\\Users\\Oreo\\Desktop\\test2_result.csv', index=False)

数据结果:

GitHub地址

Entropy_Weight_Method

参考链接

  • ★指标权重确定方法之熵权法
  • 李政毅SLog的博客
  • ★【综合评价方法 熵权法】指标权重确定方法之熵权法
  • 信息熵
  • 香农定律

转载于:https://www.cnblogs.com/-oreo/p/10328465.html

[数据分析][评价方法]打分式评价-信息熵理论与熵权法相关推荐

  1. 最常用的客观赋权方法——熵权法

    我们的征途是星辰大海,而并非烟尘人间. 文章目录 一.熵权法的原理 1.1 信息熵 1.2 熵权法 二.熵权法的主要步骤 2.1 数据标准化 2.2 求各指标在各方案下的比值 2.3 求各指标的信息熵 ...

  2. 图像质量评价方法中客观评价方法又可以分为三类

    早期的图像处理是随由于通讯方面的要求而发展起来的,随着图像处理技术的发展,数字图像处理技术与理论已经成为计算机应用的一个重要领域,广泛应用于众多的科学与工程应用,如遥感.医学.气象.通信等.然而随着图 ...

  3. 评价方法-熵权法确定指标权重

    评价方法根据确定权重的方法,大体上可分为主观赋权,客观赋权:主观赋权依赖于"专家"的权重或较多独立个体的评判偏好,如层次分析法,功效系数法,模糊综合评价法,综合指数法:客观赋权法根 ...

  4. 评价类问题——熵权法

    熵权法 文章目录 熵权法 前言 一.理论 二.算法步骤 例 前言 构建完评价体系后在选择合适的评价方法即可,体系建立应秉持全面.准确.独立的三要素 在评价类问题中,需要兼顾 指标体系 权重 评价方法 ...

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

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

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

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

  7. 数学建模笔记-熵权法确定评价类问题指标的权重 清风课程笔记整理

    评价类问题: 1.层次分析法入门学习: https://blog.csdn.net/weixin_47066458/article/details/113177117 2.Topsisi入门学习: h ...

  8. (1)评价算法—熵权法

    文章目录 1.什么是熵权法 1.1 优点 1.2 缺点 1.3 适用范围 2.使用熵权法过程 2.1 数据预处理 2.1.1清洗指标极值 2.1.2 归一化指标处理 2.1.2.1 临界值法 2.1. ...

  9. 一文速学数模-评价模型(二)熵权法实战确定评价指标权重

    目录 前言 一.熵权法介绍 二.使用步骤 1.数据预处理 2.计算指标信息熵

最新文章

  1. 惊心动魄两秒钟——刷X200 SLIC2.1程序
  2. lucky前面加a还是an_“不可数”名词前何时加a/an,何时不加?来自本站教师群的两道典型题问答,揭示了规律 白话英语201931...
  3. AssetsLibrary使用介绍
  4. android数据持久化框架,Android:数据持久化、Environment、SharedPreferences、内部存储internalStorage...
  5. ios运行html游戏,Objective-c / iOS – 使用Safari打开本地html文件
  6. ajax数据显示,使用js通用模板
  7. mysql查询中使用别名_如何在MySQL选择查询中使用别名?
  8. 蓝桥杯 ALGO-71 算法训练 比较字符串
  9. python xlwt列宽设置_python xlwt 设置单元格样式
  10. 机器学习之深入理解K-means、与KNN算法区别及其代码实现
  11. oracle恢复init文件,详解NBU异机恢复ORACLE数据库
  12. Office 如何打印A4不干胶标签纸
  13. 学习备忘英语单词转载
  14. layui实际项目使用过程中遇到的兼容性问题
  15. JVM成神之路(一)---咱们为什么要学习JVM
  16. Robot Framework(3)——RIDE工具详解
  17. git官网 中文教程 使用手册 说明书
  18. 当你从美梦中惊醒的时候,你该做什么?
  19. 算法时代必读——《算法霸权》数学杀伤性武器的威胁
  20. 【Android每日一讲】2012.11.27 向左或向右 - RadioGroup组与onCheckedChanged事件

热门文章

  1. python交作业的格式_python作业4
  2. 预计2021年电视出货量有所上涨,网络推广外包之下OLED大肆布局
  3. 网络推广外包专员浅析为什么说企业网站都需要网络推广外包?
  4. php周计划表_PHP学习计划书
  5. 打印机驱动程序属于计算机硬件吗,如何安装打印机驱动程序,详细教您如何给电脑安装打印机驱动程序...
  6. 电池pack结构_3C锂电池pack中,使用弹片微针模组测试基本性能和大电流
  7. 双系统grub启动linux,双系统ubuntu与Centos的grub启动(解决VFS报错)
  8. mysql user 用户名长度_为什么注册的用户账号长度不能超过5个字符
  9. linux 更改ctime_linux常用命令
  10. 开发日记-20190509