Matlab-熵权法

文章目录

  • 熵权法
  • 一、模型简介
  • 二、例题
    • 1. 数据标准化
    • 2.指标的熵值和变异程度
    • 3.权重与评分
    • 4.代码实现


熵权法

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


一、模型简介

从考生成绩说起,下面是张三、李四、王五的成绩,观察这份成绩报,有哪门课程容易拉开差距?有哪门课程不容易拉开差距?
在这里插入图片描述

  1. 熵的概念: 熵是对不确定性的一种度量,可以判断一个事件的随机性无序性程度。
    熵值可以判断某个指标的离散程度,指标的离散程度越大,该指标对综合评价的影响越大。
  2. 熵的现实意义:
    本模型中混乱程度低意味着熵值接近1评价总成绩时可以给该指标赋予低权重
    也就是在成绩中即使这个课程的成绩不加入到总成绩中也不会影响到排名。相对的,如果混乱程度高,则将这个课程成绩删除时会影响到成绩排名。
    在这里插入图片描述
  3. 特点:完全客观,追求公平公正。
    在这里插入图片描述

二、例题

例:下边是10名学生8门课程的成绩,给出这10名学生评奖学金的评分排序。
在这里插入图片描述

1. 数据标准化

   1.原因:(1)评价体系中存在数值越大越好的正向指标和数值越小越好的负向指标。(2)不同指标(原始数据)数量级有差异。(3)原始数据中有负值 。
**本例题不需要标准化,但是为了演示,故加上。**
设xij使第i个学生的第j门成绩,本题中所有指标都是正向指标
**正向指标标准化:**![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/fd2ca28a89124019bbf06c5844c2f0c1.png)

负向指标标准化:
在这里插入图片描述
标准化后aij值在【0,1】区间内,且数值越大现实意义越好。

2.指标的熵值和变异程度

1.每个评价对象在各个指标上的比重:
在这里插入图片描述
可以理解为统计意义上某种情况出现的概率。
2. .熵值:
对于第j个指标(对应一科的一列)其熵值ej:
在这里插入图片描述

  1. 变异系数:
    第j个指标的变异系数:gj=1-ej;
    显然熵值越大变异系数就越小,代表该指标越有序,该指标的信息量也就越小
    意义分析:
    如果变异系数为0就说明所有数据都一样,其信息量为0,也就是在评价体系中去掉该指标不会对评价产生任何影响。

3.权重与评分

计算第j个指标的权重:
在这里插入图片描述
指标的变异系数越大,信息量越大,代表了权重越大。
综合评分:
计算第j个评价对象的综合评价值:
在这里插入图片描述
对不同科目进行加权求和,评价值越大越好。

4.代码实现

%读取exel
scores=readmatrix('data3-3.xlsx','Range','B2:I11');
%指标标准化
%m是行也就是学生数,n是学科数
[m,n]=size(scores);
%对于学科每列成绩 i是每一列,j是学生
for i=1:nfor j=1:mscore(j,i)=(scores(j,i)-min(scores(:,i)))/(max(scores(:,i))-min(scores(:,i)));if score(j,i)==0% 求对数不能为0,故取个极小的数score(j,i)=0.0001;endend
end%比重:每个人每一科目
p=score./sum(score);
%熵值(每一科的熵值)
e=-sum(p.*log(p))/log(m)
%变异系数
g=1-e;
%权重
w=g/sum(g);
s=w*p'; %计算各个评价对象的综合评价值
[ss,rank]=sort(s,'descend'); %对评价值从大到小排序;descend表示降序

结果:
在这里插入图片描述

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

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

相关文章

英特尔LLM技术挑战记录

英特尔技术介绍: Flash Attention Flash Attention 是一种高效的注意力机制实现,旨在优化大规模 Transformer 模型中的自注意力计算。在深度学习和自然语言处理领域,自注意力是 Transformer 架构的核心组件,用于模型中不同输入元…

electron进程通信

1.渲染进程对主进程通信 主进程 ipcMain.on("saveFile" , ()>{console.log(1) }) //对外暴露api 预加载脚本 //主进程和渲染进程的桥梁 const { ipcRenderer, contextBridge } require(electron)contextBridge.exposeInMainWorld("api" , { //对外…

骆驼大赛

目录 一,主版图 二,骰子 三,初始设置 四,核心规则 五,结算 这是适合5-8人玩的一个概率推理类的回合制桌游。 一,主版图 赛道由16个格子组成,编号为1-16。 一共7个骆驼,其中正…

线程池--thread_pool解析

国外的线程池库; 作者:Barak Shoshany (barakshgmail.com) (http://baraksh.com) BS命名空间 Barak Shoshany这个作者的名字简写。 decltype(std::jthread::hardware_concurrency) concurrency---并发 std::jthread::hardware_concurrency是C20引入的…

上海汉得【面试真题】

上海汉得【面试真题】 前言版权一面二面中间件Java基础框架项目反问 最后 前言 2024-5-22 15:39:51 公开发布于 2024-5-24 12:37:10 以下内容源自《【面试真题】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客…

【面试八股总结】索引(二):B+树数据结构、索引使用场景、索引优化、索引失效

参考资料:小林coding、阿秀 一、为什么InnoDB采用B树作为索引数据结构? B 树是一个自平衡多路搜索树,每一个节点最多可以包括 M 个子节点,M 称为 B 树的阶,所以 B 树就是一个多叉树。 B 树与 B 树的差异:…

如何开启tomcat管理功能

1 、修改conf/tomcat-users.xml <role rolename"manager-gui"/> <user username"tomcat" password"tomcat" roles"manager-gui"/>2、修改webapps/manager/META-INF/context.xml <Valve className"org.apache.cata…

遇到了导师放养,该怎么坚持?

最近收到学生读者的留言&#xff0c;抱怨科研的困难。导师忙碌且学生众多&#xff0c;自己只是众多学生之一&#xff0c;常常处于放养状态。除了每周的组会外&#xff0c;几乎无法接触到导师。在这种状态下&#xff0c;缺乏方向和动力&#xff0c;非常担心无法顺利毕业&#xf…

JAVA面试题大全(十八)

1、说一下 jvm 的主要组成部分&#xff1f;及其作用&#xff1f; 类加载器&#xff08;ClassLoader&#xff09;运行时数据区&#xff08;Runtime Data Area&#xff09;执行引擎&#xff08;Execution Engine&#xff09;本地库接口&#xff08;Native Interface&#xff09;…

GDAL读取波段数据1

前面用GDAL输出了一些打开文件的信息; 了解了它的基本的编程方式是, 先注册,执行GDALAllRegister(); 然后打开文件,返回一个数据集指针,即GDALDataset * 类型的指针poDataset; 再通过此指针获取下面各级的信息; 下面来读取打开文件的波段数据,并输出; 首先获得波段…

线程安全 - 笔记

1 程序a调用c.so,程序b也调用c.so c.so加载两次吗? 在这种情况下,通常 c.so 不会被加载两次。 当一个程序调用一个共享对象文件(.so)时,操作系统的动态链接器将该共享对象映射到进程的虚拟内存空间中。后续由不同程序或者同一个程序调用相同的共享对象,都不会导致共享…

力扣:15. 三数之和

15. 三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三…

在树莓派3B+中下载opencv(遇到的各种问题及解决)

目录 前言 1、删除原版本下新版本 2、python虚拟环境 3、python版本共存换链接——给版本降低 4、烧录之前版本的文件&#xff08;在清华源中可以找&#xff0c;不用官网的烧录文件就行&#xff1b; 比如&#xff1a;&#xff08;balenaEtcher&#xff09;重新烧录有问题…

Android 编译 C 文件报错 fatal error: ‘jni.h‘ file not found

场景&#xff1a;添加 cpp 文件编译出 so &#xff0c;给 app 使用。 编译报错&#xff0c; packages/apps/XxxApp/jni/native.cpp:22:10: fatal error: jni.h file not found #include <jni.h>^~~~~~~ 1 error generated.缺少声明&#xff0c;类似于 Java 里缺少了 im…

上交提出TrustGAIN,提出6G网络中可信AIGC新模式!

月16日至18日&#xff0c;2024全球6G技术大会在南京召开。会上&#xff0c;全球移动通信标准制定组织3GPP&#xff08;第三代合作伙伴计划&#xff09;的3位联席主席分享了3GPP6G标准时间表&#xff1a; 2024年9月&#xff0c;启动6G业务需求研究&#xff1b; 2025年6月&…

PHP开发入门

PHP官网&#xff1a;PHP: Hypertext Preprocessor apache官网&#xff1a;https://httpd.apache.org/ 一、搭建PHP环境 下载apache 进入官网点击download 选择下载windows版本文件 点击进入下载界面 点击下载64位版本文件 下载后解压文件 解压文件后进入 D:\httpd-2.4.59-24…

一点连接千家银行,YonSuite让“企业付款”更便利

在快速变化的商业环境中&#xff0c;企业的运营效率直接决定了其市场竞争力。特别是对于财务团队来说&#xff0c;每一次付款的流畅与便捷&#xff0c;都是企业高效运作的关键。今天&#xff0c;我们为您带来一个先进性的解决方案——YonSuite&#xff0c;它以其独特的“一点连…

医学中脑机接口技术的未来

医学中脑机接口技术的未来 李升伟 编译 对非侵入性脑机接口&#xff08;而不是植入物&#xff09;日益增长的兴趣可能会提高患者的易使用性&#xff0c;但分辨率需要提高。 图片来源&#xff1a;Denis Pobytov / DigitalVision Vectors / Getty 全球范围内正在展开一场争夺利用…

C++ fcntl 的作用和用法

C fcntl 的作用和用法 fcntl 的作用代码示例代码解释运行结果 fcntl 的作用 fcntl 是一个在 C 和 C 编程中用于操作文件描述符的函数。它提供了多种功能&#xff0c;包括获取和设置文件描述符标志、获取和设置文件锁等。fcntl 函数的原型如下&#xff1a; #include <fcntl…

使用 RT 矩阵进行 3D 点云变换详解(基于 PCL 和 Eigen 库)

在 3D 点云处理中&#xff0c;RT 矩阵是一个常用的工具&#xff0c;用于对点云进行旋转和平移操作。本文将详细介绍 RT 矩阵的概念&#xff0c;并通过一个示例程序演示如何基于 PCL 和 Eigen 库将一帧点云进行矩阵变换再输出。 本教程的示例代码和点云数据可在 GitHub 下载。 什…