码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-09-05 18:04:10      阅读:903      评论:0      收藏:0      [点我收藏+]

标签:方法   array   计算公式   imp   基本   分享图片   odi   大小   url   

一、熵权法介绍

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

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

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

二、熵权法赋权步骤

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实现熵权法

标签:方法   array   计算公式   imp   基本   分享图片   odi   大小   url   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!