zoukankan      html  css  js  c++  java
  • 学习随笔 --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)
    #计算每种指标的权重
    

      

  • 相关阅读:
    C# 之 HttpRequest 类
    C# 之 日常问题积累(一)
    DataGrid前台数据绑定技巧
    [转]C,C++开源项目中的100个Bugs
    10行Python代码解决约瑟夫环(模拟)
    基于ASP.NET的comet简单实现 http长连接,IAsyncResult
    架构设计分享之权限系统(看图说话)
    内核request_mem_region 和 ioremap的理解
    【调侃】IOC前世今生 工厂模式 反射 依赖倒置
    ecos内核概览--bakayi译
  • 原文地址:https://www.cnblogs.com/ToDoNow/p/9592079.html
Copyright © 2011-2022 走看看