【机器学习】熵权算法确定权重 原理+完整MATLAB代码+详细注释+操作实列

news/2024/5/1 15:47:23/文章来源:https://blog.csdn.net/m0_52474147/article/details/127176733

【机器学习】熵权算法确定权重 原理+完整MATLAB代码+详细注释+操作实列

文章目录

1. 熵权法确定指标权重

(1)构造评价矩阵 Ymn

(2)评价矩阵标准化处理

(3)计算指标信息熵值 Mj

(4)计算各指标权重 Nj

2.完整代码

2.1 熵权法(正向化指标)

2.2熵权法(负向化指标)

3.运行演示

3.1复制代码,建立函数

3.2 导入data数据集

3.3 运行指令

3.4 运行结果

3.5 结构体 result变量

3.5.1 归一化

3.5.2 熵值

3.5.3 权重

3.6 熵权法(负向化指标)

4.总结


 采用熵权法进行客观权重计算的步骤为:

①根据评价等级对指标重要性进行打分,然后构建评价矩阵;

②将评价矩阵进行归一化处理,得到归一化评价矩阵;

③根据信息熵计算公式,计算各个指标 的信息熵;

④根据熵权计算公式,计算各个指标的客观权重值 。

1. 熵权法确定指标权重

(1)构造评价矩阵 Ymn

(2)评价矩阵标准化处理

       采用线性比例变换法将评价矩阵进行初等变换,得到归一化矩阵进而解决不同指标值的同质化问题,其中正向指标与负向指标数值不同,但绝对值越大越好凹,例如计算指标的重要性与权重值的关系,权重值越大,则代表重要性越强,所以选择正向指标。

式中:yij ——评价矩阵原始值。

归一化:计算第 j 项指标下第 i 个样本值占该指标的比重 qij。

 式中:m——总样本数。

(3)计算指标信息熵值 Mj

(4)计算各指标权重 Nj

2.完整代码

2.1 熵权法(正向化指标)

%data是n个对象、m个评价指标 n行m列数据
%data是唯一需要从外界输入的数据
function  result=SQ(data);
R = data;
[rows,cols]=size(R);   % 输入矩阵的大小,rows为行数(对象个数),cols为列数(指标个数)Rmin = min(R);         %矩阵中最小行
Rmax = max(R);         %矩阵中最大行
A = max(R) - min(R);   %分母 矩阵中最大行减最小行y = R - repmat(Rmin,rows,1);      %分子 R矩阵每一行减去最小行
for j = 1 : cols                  %该循环用于正向指标标准化处理 分子/分母y(:,j) = y(:,j)/A(j);
endS = sum(y,1);                     %列之和(用于列归一化)for i = 1 : cols                  %该循环用于列的归一化Y(:,i) = y(:,i)/S(i); 
endY;                                %打印矩阵正向指标标准化处理结果k=1/log(rows);                    % 求k
lnYij1=zeros(rows,cols);           % 初始化lnYij1
% 计算lnYij1
for i=1:rows                         %循环遍历取对数for j=1:colsif Y(i,j)==0;lnYij1(i,j)=0;elselnYij1(i,j)=log(Y(i,j));  %log取对数endend
end
ej1=-k*(sum(Y.*lnYij1,1));             % 计算正向指标标准化熵值ej1weights1=(1-ej1)/(cols-sum(ej1));  %正向指标权重weights1%结构体定义
result(1).guiyihua = Y;            %矩阵归一化结果赋给result
result(1).shangzhi = ej1;          %熵值赋给result
result(1).weight = weights1;       %权重赋给result

2.2熵权法(负向化指标)

%data是n个对象、m个评价指标 n行m列数据
%data是唯一需要从外界输入的数据
function  result=SQfuxiang(data);
R = data;
[rows,cols]=size(R);   % 输入矩阵的大小,rows为行数(对象个数),cols为列数(指标个数)Rmin = min(R);         %矩阵中最小行
Rmax = max(R);         %矩阵中最大行
A = max(R) - min(R);   %分母 矩阵中最大行减最小行y1 = repmat(Rmax,rows,1) - R;     %分子 最大行减去R矩阵每一行for j = 1 : cols                  %该循环用于负向指标标准化处理 分子/分母y1(:,j) = y1(:,j)/A(j);
end
S = sum(y1,1);                    %列之和(用于列归一化)
for i = 1 : cols                  %该循环用于列的归一化Y1(:,i) = y1(:,i)/S(i); 
end
Y1;                               %打印矩阵负向指标标准化处理结果k=1/log(rows);                    % 求k
lnYij2=zeros(rows,cols);           % 初始化lnYij2
% 计算lnYij1
for i=1:rows                         %循环遍历取对数for j=1:colsif Y1(i,j)==0;lnYij2(i,j)=0;elselnYij2(i,j)=log(Y1(i,j));  %log取对数endend
end
ej2=-k*(sum(Y1.*lnYij2,1));             % 计算负向指标标准化熵值ej2weights2=(1-ej2)/(cols-sum(ej2));  %负向指标权重weights2%结构体定义
result(1).guiyihua = Y1;            %矩阵归一化结果赋给result
result(1).shangzhi = ej2;           %熵值赋给result
result(1).weight = weights2;        %权重赋给result

3.运行演示

3.1复制代码,建立函数

默认函数名保存即可

3.2 导入data数据集

%data是n个对象、m个评价指标 n行m列数据
%data是唯一需要从外界输入的数据

以下列子所用数据集为

     5     3     7     3
     6     7     6     4
     9     4     7     5
    10     6     9     2
     6     4     8     6
     7     2     8     3
     5     4     5     3
     9     5     9     2

3.3 运行指令

result=SQ(data)                      

result=SQfuxiang(data)           

3.4 运行结果

 

3.5 结构体 result变量

 

3.5.1 归一化

3.5.2 熵值

3.5.3 权重

3.6 熵权法(负向化指标)

运行指令换成

result=SQfuxiang(data)     

即可

运行结果就不再过多赘述。

4.总结

 采用熵权法进行客观权重计算的步骤为:

①根据评价等级对指标重要性进行打分,然后构建评价矩阵;

②将评价矩阵进行归一化处理,得到归一化评价矩阵;

③根据信息熵计算公式,计算各个指标 的信息熵;

④根据熵权计算公式,计算各个指标的客观权重值 。

本文包括了熵权算法法确定权重原理+完整MATLAB代码+详细注释+操作实列。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_19449.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

原生JS项目练习——验证码的生成及教验

一、主要功能介绍: 1、通过for循环生成生成六位随机验证码 2、通过for循环随机生成验证码颜色 3、窗口加载事件,窗口一加载就调用函数,重置验证码 4、按钮点击事件,一点击就调用函数,重置验证码 5、input输入框已失去焦…

Yarn概述

Hadoop系列 注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等,Spark Flink Kafka Hbase…

公众号网课搜题接口系统

公众号网课搜题接口系统 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台(…

快速开发微信小程序之二-微信支付

一、背景 在面试程序员的时候,有两项经历会带来比较大的加分,第一你是否做过支付金融相关的业务,第二你是否写过底层框架中间件代码,今天我们聊一下微信支付是如何对接的。 二、相关概念 1、微信商户平台 要使用微信支付&#…

一、mini2440_bsp_led

一、芯片手册 1、板子原理图 2、GPIO使用 (1)GPxCON (2)GPxDAT 二、实现分析 1、初始化led 设置GPBCON(0x56000010)为 0x00015400 2、设置led输出,根据原理图引脚输出低电平时灯被点亮 LED1…

K8s-临时容器 Ephemeral Containers

临时容器 Ephemeral Containers 当由于容器崩溃或容器镜像不包含调试工具而导致 kubectl exec 无用时, 临时容器对于交互式故障排查很有用。尤其是,Distroless 镜像 允许用户部署最小的容器镜像,从而减少攻击面并减少故障和漏洞的暴露。 由于…

C | 枚举?看一遍就够了

CSDN话题挑战赛第2期 参赛话题:学习笔记 啊我摔倒了..有没有人扶我起来学习.... 目录前言枚举1. 枚举的定义2. 枚举的内存大小3. 枚举的优势4. 枚举需要注意的地方前言 结构体、枚举、联合体都是自定义类型,结构体主要知识点结构体内存对齐可参考《C | …

九月SLAM相关论文速递

九月SLAM相关论文速递 论文列表DirectTracker: 3D Multi-Object Tracking Using Direct Image Alignment and Photometric Bundle Adjustment3D VSG: Long-term Semantic Scene Change Prediction through 3D Variable Scene GraphsLeveraging Large Language Models for Robo…

使用服务器跑模型——案例1

案例1 该方法mac,linux,windows都通用。我们使用terminal or cmd进行操作。 假设我们本地具有一个需要跑的模型Unet,我们需要将该模型上传到服务器上跑,步骤如下: 使用tar压缩文件 我们定位到我们需要压缩的模型&a…

云原生之容器编排实践-以k8s的Service方式暴露SpringBoot服务

背景 上一篇文章云原生之容器编排实践-SpringBoot应用以Deployment方式部署到minikube以及弹性伸缩中,我们通过 Deployment 完成了将 SpringBoot 应用部署到 minikube 并测试了其弹性伸缩的丝滑体验。但是 Deployment 部署后我们还面临以下问题: 访问时…

Day761.Redis集群方案:Codis -Redis 核心技术与实战

Redis集群方案:Codis Hi,我是阿昌,今天学习记录的是关于Redis集群方案:Codis Redis 的切片集群使用多个实例保存数据,能够很好地应对大数据量的场景。哨兵集群, Redis 官方提供的切片集群方案 Redis Clus…

SPI总线通信——基于STM32MP157A

SPI总线概念 SPI总线是Motorola首先提出的全双工三线/四线同步串行总线,采用主从模式(Master Slave)架构;支持多从机(slave)模式应用,一般仅支持单主机,多从机。 时钟由主机控制&…

java培训技术处理模型数据之 ModelAndView

处理模型数据之 ModelAndView 1 ModelAndView介绍 控制器处理方法的返回值如果为 ModelAndView, 则其既包含视图信息,也包含模型 数据信息。 2)添加模型数据: MoelAndView addObject(String attributeName, Object attributeValue) ModelAndView…

C#-设计模式学习笔记

目录前言:最近得到师傅指点,建议我多学习下设计模式,简单记录下学习过程中的一些知识点1.设计模式(创建型)1.单例模式:1. 单例模式的主要作用2.单例模式能解决的问题3.单例模式的使用场景4.怎么实现单例模式…

Charles安装和抓包原理

进行APP服务器开发,接口测试、bug定位,抓取移动端请求数据包在所难免,公司使用的Charles,后面有机会使用了其它软件再做对比。Charles并不是安装即可用,涉及一些参数配置,特此记录分享。 1 安装、破解Char…

C51之温湿度检测系统(自动开关风扇)

目录 DHT11 温湿度传感器 产品概述 特点 检测模块是否存在 温湿度数据管理系统 uart.c文件 uart.h文件 lcd1602.c文件 lcd1602.H文件 dht11.c文件 dht11.h文件 delay.c文件 delay.h文件 config.h文件 main.c文件 DHT11 温湿度传感器 产品概述 DHT11数字温湿度传感…

2022/10/6——基于stm32mp157a的SPI实验

SPI总线是Motorola首先提出的全双工三线/四线同步串行总线 采用主从模式架构,支持多从机模式应用,但一般仅支持单主机,多从机 时钟由主机控制,在时钟移位脉 冲下,数据按位传输,高位在前,低位在…

网课查题系统-题库量全网最多

网课查题系统-题库量全网最多 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台&#x…

React源码分析4-深度理解diff算法

上一章中 react 的 render 阶段,其中 begin 时会调用 reconcileChildren 函数, reconcileChildren 中做的事情就是 react 知名的 diff 过程,本章会对 diff 算法进行讲解。 diff 算法介绍 react 的每次更新,都会将新的 ReactElem…

Learning With Error(LWE)问题学习

概念 又称误差还原,容错学习问题,即已知一个矩阵AAA以及一个向量,求解 b^Axe\hat{b}A xe b^Axe 这里eee是一个固定数值范围内随机采集的一个随机噪音向量,所以这个问题就转化为通过AAA和b^\hat{b}b^来还原最初的未知向量xxx 可以…