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

摘要:
熵权法的基本思路是根据指标变异性的大小来确定客观权重。#coding=utf-8importnumpyasnpli=[[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=/#最大最小标准化m,n=li.shape#m,n为矩阵行和列数k=1/np.logyij=li.sum#axis=0列相加axis=1行相加pij=li/yijtest=pij*np.logtest=np.nan_to_num#将nan空值转换为0ej=-k*#计算每种指标的信息熵wi=/np.sum#计算每种指标的权重

一、熵权法介绍

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

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

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

二、熵权法赋权步骤

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)
#计算每种指标的权重

免责声明:文章转载自《学习随笔 --python实现熵权法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇小程序调用相册和相机功能AWS 入门知识下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

kvm虚拟机快照备份

kvm虚拟机默认使用原始图像格式,该格式具有最佳性能和最快速度。它的缺点是不支持一些新功能,例如映像、zlib磁盘压缩、AES加密等。接下来,启动kvm虚拟机快照备份的过程。查看虚拟机映像快照的版本查看当前虚拟机映像snapshot的版本。您可以看到它是最新的快照版本。...

字符串解压缩类库(zip、GZIP、QuickLz、snappy、lzf、jzlib)介绍

它旨在提供高压缩速度和合理的压缩比=-1){out.write;}字节[]未压缩=输出。到字节数组();--返回提取字符串的字节数组。介绍使用预先选择的解压缩类库-GZIP压缩字符串=“这是一个用于测试的字符串”;ByteArrayOutputStreamout=新的ByteArray输出流();GZipOutputStreamgout=newGZipOut...

jenkins之部署、启动、关闭

jenkins可以通过内置的应用服务器或者借助其他应用服务器启动目录1、启动jenkins2、关闭jenkins3、重启jenkins4、重新加载jenkins配置信息前言:部署jenkins应用,是要安装java的,最新版本的jenkins是需要按照1.8版本的jdk,不然启动不了。...

GitLab 数据库

要访问GitLab数据库步骤中使用的DockerGitlab,首先输入容器dockerexec-itgitlab/bin/bash ``查找数据库配置文件``bash/var/opt/GitLab/gitlabrails/etc/database yml内容如下,记录数据库配置信息production:adapter:postgresqlencoding:u...

HBuilder控制台打开方式

今天,我关闭了Hbuilder的控制台,找不到打开它的位置,!!...

VTK 模型的旋转与平移

当从外界读入STL等三维模型时,其会按照它内部的坐标位置进行显示。但是在实际应用中,有可能需要人为地对这个模型在空间中进行旋转、平移或缩放等操作。VTK中有许多和旋转、平移相关的函数,下面一一进行测试。RotateX、RotateY、RotateZRotatetheProp3DindegreesabouttheX/Y/Zaxisusingtherightha...