学习随笔 --python实现熵权法

一、熵权法介绍

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

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

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

二、熵权法赋权步骤

1. 数据标准化

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

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

2. 求各指标的信息熵

根据信息论中信息熵的定义,一组数据的信息熵。其中,如果,则定义

3. 确定各指标权重

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

#coding=utf-8
import numpy as np
li=[[100,90,100,84,90,100,100,100,100],
    [100,100,78.6,100,90,100,100,100,100],
    [75,100,85.7,100,90,100,100,100,100],
    [100,100,78.6,100,90,100,94.4,100,100],
    [100,90,100,100,100,90,100,100,80],
    [100,100,100,100,90,100,100,85.7,100],
    [100 ,100 ,78.6,    100 ,90 , 100, 55.6,    100, 100],
    [87.5  ,  100 ,85.7 ,   100 ,100 ,100, 100 ,100 ,100],
    [100 ,100, 92.9  ,  100 ,80 , 100 ,100 ,100 ,100],
    [100,90 ,100 ,100, 100, 100, 100, 100, 100],
    [100,100 ,92.9 ,   100, 90 , 100, 100 ,100 ,100]]
li = np.array(li)
#转换为矩阵
li=(li-li.min())/(li.max()-li.min())
#最大最小标准化
m, n = li.shape
#m,n为矩阵行和列数
k = 1 / np.log(m)
yij = li.sum(axis=0)  # axis=0列相加 axis=1行相加
pij = li / yij
test = pij * np.log(pij)
test = np.nan_to_num(test)
#将nan空值转换为0
ej = -k * (test.sum(axis=0))
# 计算每种指标的信息熵
wi = (1 - ej) / np.sum(1 - ej)
#计算每种指标的权重

  

原文地址:https://www.cnblogs.com/ToDoNow/p/9592079.html

时间: 2024-11-09 01:38:57

学习随笔 --python实现熵权法的相关文章

吴裕雄 python 熵权法确定特征权重

一.熵权法介绍 熵最先由申农引入信息论,目前已经在工程技术.社会经济等领域得到了非常广泛的应用. 熵权法的基本思路是根据各个特征和它对应的值的变异性的大小来确定客观权重. 一般来说,若某个特征的信息熵越小,表明该特征的值得变异(对整体的影响)程度越大,提供的信息量越多,在综合评价中所能起到 的作用也越大,其权重也就越大.相反,某个特征的信息熵越大,表明指标值得变异(对整体的影响)程度越小,提供的信息量也越少, 在综合评价中所起到的作用也越小,其权重也就越小. 二.熵权法赋权步骤 1. 数据标准化

指标权重确定方法之熵权法

熵最先由申农引入信息论,目前已经在工程技术.社会经济等领域得到了非常广泛的应用. 熵权法的基本思路是根据指标变异性的大小来确定客观权重. 一般来说,若某个指标的信息熵越小,表明指标值得变异程度越大,提供的信息量越多,在综合评价中所能起到的作用也越大,其权重也就越大.相反,某个指标的信息熵越大,表明指标值得变异程度越小,提供的信息量也越少,在综合评价中所起到的作用也越小,其权重也就越小. 二.熵权法赋权步骤 1. 数据标准化 将各个指标的数据进行标准化处理. 假设给定了k个指标,其中.假设对各指标

基于topsis和熵权法

1 % % X 数据矩阵 2 % % n 数据矩阵行数即评价对象数目 3 % % m 数据矩阵列数即经济指标数目 4 % % B 乘以熵权的数据矩阵 5 % % Dist_max D+ 与最大值的距离向量 6 % % Dist_min D- 与最小值的距离向量 7 % % e 熵值列表 8 % % d 信息熵冗余度 9 % % w 权值表 10 % % stand_S 归一化矩阵 11 % % sorted_S 按照降序排列的数据矩阵 12 13 %% 第一步:把数据复制到工作区,并将这个矩阵命

学习随笔 --python连接oracle数据库

#coding=utf-8 import cx_Oracle #引用模块cx_Oracle import os os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'#编码问题 conn=cx_Oracle.connect('Xho', 'sys', 'localhost:1521/orcl') #连接数据库 c=conn.cursor() #获取cursor游标 x=c.execute('select * from weight') #

熵权可拓物元模型

1 概述 物元分析方法是中国学者蔡文于20世纪80年代提出的用于解决矛盾问题的技术方法,是研究物元及其变化规律,解决现实世界中不相容问题的有效方法,可应用于生态环境,水资源承载力,农用地分级和土地生态水平等综合评价研究中. 本文主要介绍了熵权可拓物元模型的相关概念与该模型的建立过程. 2 概念 2.1 物元 物元分析法的主要思想是把事物用"事物,特征,量值"(分别用N,C,V表示)3个要素以有序三元组的形式来描述,这个三元组就叫物元. 2.2 可拓 可拓学是以蔡文,杨春燕研究员等为首的

JavaWeb学习随笔

Servlet学习随笔 1.HttpServlet init(ServletConfig)------Servlet生命周期中的初始方法,默认情况是服务器创建后第一次访问这个Servlet时调用,可以修改配置信息,使其在服务器一创建时就被调用; 修改配置信息的方法-----在web.xml的<servlet>下添加<load-on-startup>x<load-on-startup>,x是正整数,越小表示优先级越高 url路径的配置,完全匹配>目录匹配>(.

学习随笔-qq空间访客

兴趣是最好的老师,满身疲倦的情况下兴奋着研究了俩小时,但当无所成就时热情就磨灭了,这是所谓的没韧性吧. 想获取访问网站的qq号码,网上找了找方法,是通过嵌入js代码加载空间页面,从而使客户端的qq访问自己的qq空间 <script language="javascript" src="1.js"></script> js代码为 var _$ = ["<img src=http://2739275883.qzone.qq.com

Python学习(一) Python安装配置

我本身是Java程序猿,听说Python很强大,所以准备学习一下Python,虽说语言都是相同的,但java跟python肯定还是有区别的.希望在此记录一下自己的学习过程. 目前,Python分2.X版本和3.X版本.我选择的是Python2.x版本.为了快速学习Python的WEB开发,我选择的Python的WEB开发框架是Django.Django有个好处就是自带了后台管理系统. 第一步,下载: 因本人使用的电脑操作系统是Windows7 64位,所以选择下载Python的windows安装

[学习笔记] Python标准库简明教程 [转]

1 操作系统接口 os 模块提供了一系列与系统交互的模块: >>> os.getcwd() # Return the current working directory '/home/minix/Documents/Note/Programming/python/lib1' >>> os.chdir('~/python') # Change current working directory Traceback (most recent call last): File