• 前言

    课题的模型需要给数据的各个属性进行分配权重,原本想使用AHP层次分析法求每个属性的权重,但因为这个算法主观因素偏重,而且我有用大量的数据,完全可以从数据中学习,最终选择了信息熵确定权重的方法。

  • 信息熵为什么能确定权值?

    信息熵是对信息不确定的一种度量,不确定性越大,信息熵越大,不确定性越小,信息熵越小,因此可以用熵值来确定一个指标的离散程度,离散程度越大,对综合评价的影响越大,其熵值越小。

  • 算法步骤1:归一化

    由于每个属性的计量单位并不统一,因此在用它们计算综合指标前,先要对它们进行标准化处理,归一化公式很简单,就是每个属性的最大值减去最小值作为分母,属性的每个值减去属性的最小值作为分子。需要注意的是使用matlab的mapminmax函数时,是对行进行处理的,也就是说需要先把每个属性的值转置,转置后的列表所示:

属性 数值 数值
属性1
属性2
属性3

  • 算法步骤2:计算每个数据占该数据所在属性的比重
    简单讲就是每个属性的所有值作为分母,单个值作为分子,求比重矩阵。

  • 算法步骤3:计算每个指标的熵值
    熵值是有专门的计算公式,如下图,将步骤2的计算结果带入即可。

    其中 :

    n为每个属性的样本个数,也就是数据矩阵的行数。

  • 算法步骤4:计算信息熵冗余度:

  • 算法步骤5: 计算每个属性的权值

  • matlab代码

clc
clear
load data
%算法第1步:归一化
%mapminmax函数对行进行处理,需要将数据进行转置
[x,mapping] = mapminmax(data');
%因为数据中含有0的数字,为了分母有理化进行范围规定
mapping.ymin = 0.002;
mapping.ymax = 0.996;
mapping.yrange = mapping.ymax-mapping.ymin;
data = mapminmax(data',mapping);
data = data';
%算法所需矩阵初始化,提高计算速度
[row,column] = size(data);
p = zeros(row,column);  %比重
e = zeros(1,column);  %每一项的熵值
d = ones(1,column); %信息熵冗余度
w = zeros(1,column); %各项指标权值%算法第2步:每个属性的所有值做分母,单个值作为分子,形成比重矩阵
for j = 1:columnsum_column = sum(data(:,j));for i = 1:rowp(i,j) = data(i,j)/sum_column;end
end
%算法第3步:根据公式进行计算
k = 1 / log(row);
for i = 1:columne(i) = -k*sum(p(:,i).*log(p(:,i)));
end
%算法第4步:计算信息熵冗余度
d = d - e;
%算法第5步:计算各项指标的权值
w = d./sum(d);

matlab:熵值法确定权重相关推荐

  1. matlab 值法确定各指标权重,Matlab学习系列19. 熵值法确定权重

    19. 熵值法确定权重 一.基本原理 在信息论中,熵是对不确定性的一种度量.信息量越大,不确定性就越小,熵也就越小:信息量越小,不确定性越大,熵也越大. 根据熵的特性,可以通过计算熵值来判断一个事件的 ...

  2. 熵值法计算权重有异常值_指标权重确定方法 1-熵值法

    在信息论中,熵是对不确定性或随机性的一种度量,不确定性越大,熵值就越大,不确定性越小,熵值就越小.不确定性越大,表明随机性越大,数据越离散,则包含的信息就越大,在确定权重的时候往往就越小. 熵值法确定 ...

  3. 手把手教你用熵值法计算权重

    由于对数据要求少,且容易计算,熵值法一直是备受欢迎的权重计算方法. 今天的文章,将带大家一起梳理熵值法计算权重的步骤以及如何应用到综合评价研究中. 一.研究背景 研究案例是利用熵值法来对各企业的财务状 ...

  4. 【人因工程】熵值法求权重正反向化的分析

    目录 一.问题提出 二.问题分析 1. 第一步: 2. 第二步 3. 第三步 三.进一步分析 总结 一.问题提出 所需数据集见链接: 人因工程熵值法求权重正反向化的分析配套数据-数据集文档类资源-CS ...

  5. excel熵值法计算权重_指标权重确定方法 1-熵值法

    在信息论中,熵是对不确定性或随机性的一种度量,不确定性越大,熵值就越大,不确定性越小,熵值就越小.不确定性越大,表明随机性越大,数据越离散,则包含的信息就越大,在确定权重的时候往往就越小. 熵值法确定 ...

  6. Python实现熵值法确定权重

    该文为转载文章,无排版,链接直达 Python实现熵值法确定权重 本文从以下四个方面,介绍用Python实现熵值法确定权重: 一. 熵值法介绍 二. 熵值法实现 三. Python实现熵值法示例1 四 ...

  7. 熵值法确定权重(matlab附代码)

    文章目录 一.基本原理 二.计算过程 三.实例 一.基本原理 ​ 熵值法是一种客观赋权法,是根据各项指标观测值所提供的信息的大小来确定指标权重. ​ 在信息论中,熵是对不确定性信息的一种度量.信息量月 ...

  8. excel熵值法计算权重_熵值法的Excel基本步骤

    各位亲们,前天从盐城回来,我收拾收拾就开始忙着补上上个星期拖的更了.本期主要内容主要是对盐城滨海湿地野外采样的总结,在论文写作中指标权重的赋予,以及分享几套宁波大学特有的PPT模板. 从7月28日-8 ...

  9. excel熵值法计算权重_SPSS主成分分析 | 指标权重值计算真的不难!(上)

    一 指标权重计算确定的困惑 相信很多写过或者正在写指标处理类论文的朋友都曾对如何计算指标权重充满困惑,到底是用熵值法,还是主成分分析法?或者其他各种看起来奥妙无穷却难以上手操作的神奇方法?好不容易确定 ...

最新文章

  1. JS操作iframe
  2. Oracle insert大数据量经验之谈
  3. 9032c语言程序设计,2016年中国计量学院机电工程学院9032C语言程序设计考研复试题库...
  4. Ubantu中安装sublime
  5. vi的插入模式下退格和方向键不能使用的解决方法
  6. Dubbo中负载均衡的应用
  7. leetcode 289. Game of Life | 289. 生命游戏(Java)
  8. java生成pdf_Java实现PDF文件生成并且打印pdf文件 demo
  9. clob字段怎么导出_Oracle 11g及12c+版本下为啥有些表不能exp导出?
  10. WiFi密码都不会破译​还想考清华?​
  11. 解决 invalid input detected at ‘^’ marker的问题
  12. Python os 属性(便于跨平台开发)
  13. Linux 系统下载网址
  14. 软件数控编程_这么多CNC数控编程软件, 你觉得哪个好?
  15. 微信小程序 自定义tabBar
  16. Linux系统出现验证码乱码的原因及解决办法
  17. Beta冲刺 day4
  18. Linux Vi 的使用
  19. 使用成捷讯软件制作简单的通信工程预算----以高速4G新建站为例
  20. 距离最短原则的离散点连接 Python实现

热门文章

  1. 无痕浏览会被保密局的查到吗_无痕浏览模式真的安全吗?在操作中不留下“蛛丝马迹”?你怎么看...
  2. Unity创建2.5D地图 【1】
  3. 20230408英语学习
  4. 计算机设备管理器没有网络适配器,设备管理器没有网络适配器,小编教你Win7设备管理器中没有网络适配器如何恢复...
  5. java jcseg 官网_Jcseg轻量级Java中文分词器2.6.5最新版
  6. 数据库视图解析[普通视图、物化视图以及通过修改视图修改数据]
  7. 归纳法和演绎法在java程序中的运用
  8. STM32F030开发环境搭建
  9. C# 图片转Base64
  10. python3做出倒计时效果