【赋权算法】Python实现熵权法
在开始之前,我们先说一下信息熵的概念。
当一件事情发生,如果是意料之中,那么这个事情就并不能拿来当做茶余饭后的谈资,我们可以说这个事情并没有什么信息和价值。而当一件不可能发生的事情发生的时候,我们可能就会觉得震撼三观,这件事情太Crazy了,带来的信息量也就很多。
哼哼,通过上文我们可以知道,一个事情越稳定,信息量就越少,那么如何去衡量呢?我们可以用概率的倒数(也就是负相关)来衡量。
I = − l o g ( p ( x ) ) I=-log(p(x)) I=−log(p(x))
I I I也就是自信息,一件事情越确定,自信息也就越小。
而信息熵就是自信息的期望,代表这一件事情的混乱程度。信息熵越大,混乱程度越大,说明这件事情越疯狂。
H = − l o g ( p ( x ) ) p ( x ) H=-log(p(x))p(x) H=−log(p(x))p(x)
再说熵权法(Entropy Weight Method),熵权法是客观赋权的一种方式,对应的主观赋权有专家打分法,相似的还有层次分析法。熵权法是利用信息稳定程度而提出的方法,一般来说,某列属性越稳定,它的信息就越可信,那么在实际的权重也应当越高。
不说人话,那就是:
一般来说,若某个指标的信息熵越小,表明指标值得变异程度越大,提供的信息量越多,在综合评价中所能起到的作用也越大,其权重也就越大。相反,某个指标的信息熵越大,表明指标值得变异程度越小,提供的信息量也越少,在综合评价中所起到的作用也越小,其权重也就越小。
你会发现在这段话中,自信息和提供信息实际上是成反比的。
不管他,只需要知道原本越稳定的数据,对异常越敏感,也越可信。
在实际计算中,遵循以下步骤:
step1 归一化
正向指标
Y i j = X i j − m i n ( X i ) m a x ( X i ) − m i n ( X i ) Y_{ij}=\frac{X_{ij}-min(X_i)}{max(X_i)-min(X_i)} Yij=max(Xi)−min(Xi)Xij−min(Xi)
负向指标
Y i j = m a x ( X i ) − X i j m a x ( X i ) − m i n ( X i ) Y_{ij}=\frac{max(X_i)-X_{ij}}{max(X_i)-min(X_i)} Yij=max(Xi)−min(Xi)max(Xi)−Xij
step2 求频率替换概率
p i j = Y i j ∑ Y i j p_{ij}=\frac{Y_{ij}}{\sum Y_{ij}} pij=∑YijYij
step3 计算归一化信息熵
E n t r o p y = − 1 l n ( n ) ∑ p i j l n ( p i j ) Entropy=-\frac{1}{ln(n)}\sum p_{ij}ln(p_{ij}) Entropy=−ln(n)1∑pijln(pij)
以什么为底的不重要啦
step4 计算权重
W j = 1 − E j k − ∑ E j W_j=\frac{1-E_j}{k-\sum E_j} Wj=k−∑Ej1−Ej
以下是实现代码:
def EWM(data):t=(data-data.min(axis=0))/(data.max(axis=0)-data.min(axis=0))t=t/t.sum(axis=0)t[t<0.0001]=0.0001entropy=-1/np.log(t.shape[0])*np.sum(t*np.log(t))return [(1-i)/(len(entropy)-sum(entropy)) for i in entropy]
当然,这样的结果只是个权重,我们还需要对数据做乘法:
np.matmul(data.values,np.array(EWM(data)).T)

对这样一组数据,A十分稳定,B是正态分布,C是二分布,得到的结果是:
信息熵:

权重:

确实符合越稳定权重越大。
熵权法的优点
熵值法是根据各项指标指标值的变异程度来确定指标权数的,这是一种客观赋权法,避免了人为因素带来的偏差。
相对那些主观赋值法,精度较高客观性更强,能够更好的解释所得到的结果。
熵权法的缺点
忽略了指标本身重要程度,有时确定的指标权数会与预期的结果相差甚远,同时熵值法不能减少评价指标的维数,也就是熵权法符合数学规律具有严格的数学意义,但往往会忽视决策者主观的意图;
如果指标值的变动很小或者很突然地变大变小,熵权法用起来有局限
相关文章:
【赋权算法】Python实现熵权法
在开始之前,我们先说一下信息熵的概念。 当一件事情发生,如果是意料之中,那么这个事情就并不能拿来当做茶余饭后的谈资,我们可以说这个事情并没有什么信息和价值。而当一件不可能发生的事情发生的时候,我们可能就会觉…...
docker之 Consul(注册与发现)
目录 一、什么是服务注册与发现? 二、什么是consul 三、consul 部署 3.1建立Consul服务 3.1.1查看集群状态 3.1.2通过 http api 获取集群信息 3.2registrator服务器 3.2.1安装 Gliderlabs/Registrator 3.2.2测试服务发现功能是否正常 3.2.3验证 http 和 ng…...
用NeRFMeshing精确提取NeRF网络中的3D网格
准确的 3D 场景和对象重建对于机器人、摄影测量和 AR/VR 等各种应用至关重要。 NeRF 在合成新颖视图方面取得了成功,但在准确表示底层几何方面存在不足。 推荐:用 NSDT编辑器 快速搭建可编程3D场景 我们已经看到了最新的进展,例如 NVIDIA 的…...
权限提升-Windows本地提权-AT+SC+PS命令-进程迁移-令牌窃取-getsystem+UAC
权限提升基础信息 1、具体有哪些权限需要我们了解掌握的? 后台权限,网站权限,数据库权限,接口权限,系统权限,域控权限等 2、以上常见权限获取方法简要归类说明? 后台权限:SQL注入,数…...
深入了解Kubernetes(k8s):安装、使用和Java部署指南(持续更新中)
目录 Docker 和 k8s 简介1、kubernetes 组件及其联系1.1 Node1.2 Pod1.3 Service 2、安装docker3、单节点 kubernetes 和 KubeSphere 安装3.1 安装KubeKey3.2 安装 kubernetes 和 KubeSphere3.3 验证安装结果 4、集群版 kubernetes 和 KubeSphere 安装5、kubectl 常用命令6、资…...
Oracle的学习心得和知识总结(二十九)|Oracle数据库数据库回放功能之论文三翻译及学习
目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《Oracle Database SQL Language Reference》 2、参考书籍:《PostgreSQL中文手册》 3、EDB Postgres Advanced Server User Gui…...
新版100句学完7000雅思单词
新版100句学完7000雅思单词 1. As the medical world continues to grapple with what’s acceptable and what’s not, it is clear that companies must continue to be heavily scrutinized for their sales and marketing strategies.(剑桥雅思6) 随着医学界持续努力解决…...
MATLAB图论合集(三)Dijkstra算法计算最短路径
本贴介绍最短路径的计算,实现方式为迪杰斯特拉算法;对于弗洛伊德算法,区别在于计算了所有结点之间的最短路径,考虑到MATLAB计算的便捷性,计算时只需要反复使用迪杰斯特拉即可,暂不介绍弗洛伊德的实现 迪杰斯…...
MySQL 8.0.xx 版本解决group by分组的问题
因为版本升级5.7版本以下是没有这个问题的,8.0版本以上会出现分组问题 1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column test1.sys_t.id which is not functionally dependent on columns in GROUP BY clause; t…...
设计模式—原型模式(Prototype)
目录 一、什么是原型模式? 二、原型模式具有什么优缺点吗? 三、有什么缺点? 四、什么时候用原型模式? 五、代码展示 ①、简历代码初步实现 ②、原型模式 ③、简历的原型实现 ④、深复制 ⑤、浅复制 一、什么是原型模式&…...
【pytorch】Unfold和Fold的互逆操作
1. 参数定义 Unfold https://pytorch.org/docs/stable/generated/torch.nn.Unfold.html#torch.nn.Unfold Fold https://pytorch.org/docs/stable/generated/torch.nn.Fold.html#torch.nn.Fold 注意:参数当中的padding是在四周边补零,而当fold后的尺寸…...
【AI】《动手学-深度学习-PyTorch版》笔记(二十一):目标检测
AI学习目录汇总 1、简述 通过前面的学习,已经了解了图像分类模型的原理及实现。图像分类是假定图像中只有一个目标,算法上是对整个图像做的分类。 下面我们来学习“目标检测”,即从一张图像中找出需要的目标,并标记出位置。 2、边界框 边界框:bounding box,就是一个方…...
畅捷通T+用户中locked勒索病毒后该怎么办?勒索病毒解密数据恢复
Locked勒索病毒是一种近年来在全球范围内引起广泛关注的网络安全威胁程序。它是一种加密货币劫持病毒,专门用于加密用户的数据并要求其支付赎金。Locked勒索病毒通过攻击各种系统漏洞和网络薄弱环节,使用户计算机受到感染并被加密锁定时,无法…...
神仙般的css动画参考网址,使用animate.css
Animate.css | A cross-browser library of CSS animations.Animate.css is a library of ready-to-use, cross-browser animations for you to use in your projects. Great for emphasis, home pages, sliders, and attention-guiding hints.https://animate.style/这里面有很…...
江西抚州新能源汽车3d扫描零部件逆向抄数测量改装-CASAIM中科广电
汽车改装除了在外观方面越来越受到消费者的青睐,在性能和实用性提升上面的需求也是日趋增多,能快速有效地对客户指定汽车零部件进行一个改装,是每一个汽车改装企业和工程师的追求,也是未来消费者个性化差异化的要求。下面CASAIM中…...
数据结构学习 --4 串
数据结构学习 --1 绪论 数据结构学习 --2 线性表 数据结构学习 --3 栈,队列和数组 数据结构学习 --4 串 数据结构学习 --5 树和二叉树 数据结构学习 --6 图 数据结构学习 --7 查找 数据结构学习 --8 排序 本人学习记录使用 希望对大家帮助 不当之处希望大家帮忙纠正…...
探索Kotlin K2编译器和Java编译器的功能和能力
文章首发地址 Kotlin K2编译器是Kotlin语言的编译器,负责将Kotlin源代码转换为Java字节码或者其他目标平台的代码。K2编译器是Kotlin语言的核心组件之一,它的主要功能是将Kotlin代码编译为可在JVM上运行的字节码。 K2编译器快速介绍 编译过程ÿ…...
如何安装chromadb
下载最新版本的python3.10 因为chromadb需要sqlite3的最小版本是3.35.0 使用如下命令安装 pip install chromadb 安装完毕后在python3的命令行窗口输入 import chromadb 如果不报错代表成功,如果报错sqlite3的最小版本是3.35.0,使用如下方式解决 …...
vue实现把字符串中的所有@内容,替换成带标签的
前言: 目前有个需求是,要把输入框里面的还有姓名高亮。 要求: 1、必须用 v-html ,带标签的给他渲染 2、把字符串中的全部查找出来,替换掉,注意要过滤已经替换好的,不然就是无限循环了 实现方法:…...
「MySQL-00」MySQL在Linux上的安装、登录与删除
目录 一、安装MySQL 0. 安装前请先执行一遍删除操作,把预装或残留的MySQL删除掉 1. 安装yum源 (解决了在哪里找MySQL的问题) 2. 安装哪个版本的MySQL 二、启动和登录MySQL 三、删除MySQL / MariaDB 安装与卸载前,建议先将用户切换…...
CentOS 7下‘Development Tools’和‘开发工具’组有区别吗?实测告诉你答案
CentOS 7下‘Development Tools’与‘开发工具’的隐藏关联:技术细节全解析在Linux系统管理中,yum的软件包组功能一直是个既实用又充满谜团的领域。特别是当系统语言环境与软件包元数据语言不一致时,开发者们常常会遇到一个有趣的现象&#x…...
Gofile批量下载自动化工具:5步实现高效文件管理解决方案
Gofile批量下载自动化工具:5步实现高效文件管理解决方案 【免费下载链接】gofile-downloader Download files from https://gofile.io 项目地址: https://gitcode.com/gh_mirrors/go/gofile-downloader 在当今数字化工作环境中,技术团队经常需要从…...
CentOS服务器上VNC连接失败?手把手教你排查并修复个人端口问题(附重启命令)
CentOS服务器VNC连接故障深度排查指南:从原理到实战当你在深夜赶项目时,突然发现VNC连接不上服务器,那种焦虑感我深有体会。去年参与半导体器件仿真项目时,我也曾被这个问题困扰整整两天。本文将分享一套经过实战检验的排查方法论…...
荣耀出征官方网站下载正版手游 翅膀养成细节玩法全方位讲解
玩荣耀出征的玩家都清楚,翅膀不仅是角色的颜值象征,更是提升整体战力的核心途径。很多新手玩家只顾着升级、刷装备,完全忽略翅膀养成,导致等级很高但战力始终上不去。还有不少玩家胡乱合成、盲目进阶,浪费了大量稀有翅…...
CPU架构启发的智能仓储布局优化实践
1. 仓库布局优化的核心挑战与创新机遇在物流仓储领域,拣货环节通常占据运营成本的55%-65%,而其中约50%的时间消耗在无效行走路径上。传统矩形仓库布局虽然易于规划和施工,但其正交的通道设计导致拣货员需要频繁进行90度转向,这种&…...
什么情况下会核销贷款
贷款核销的核心前提是:贷款被认定为 “损失类” 且经 “穷尽追偿” 仍无法收回,银行按监管与会计规则从账面冲销,但债权不消灭、仍可追偿。一、核心认定条件(满足其一即可)破产 / 注销 / 吊销:借款人和担保…...
Burp抓包失败的五大隐形墙与HTTPS解密断裂点排查指南
1. 这不是Burp用得不对,是环境链路断在了你没看见的地方“Burp抓不到包”——这句话我过去三年里听开发、测试、刚转安全的新人说了不下两百遍。但真正打开Burp一看,Proxy标签页里空空如也,连个localhost:8080的请求都没有,十有八…...
观察Taotoken在多模型聚合调用下的路由与失败重试效果
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 观察Taotoken在多模型聚合调用下的路由与失败重试效果 在构建依赖大模型能力的应用时,服务的稳定性是开发者关注的核心…...
别只盯着主控芯片!拆解STM32最小系统板:电源、时钟、复位三大支柱电路深度解析
STM32最小系统板设计进阶:电源、时钟与复位电路的工程实践 在嵌入式系统开发中,我们常常将注意力集中在主控芯片的功能实现上,却忽略了支撑系统稳定运行的三大基础电路——电源、时钟和复位。这些看似简单的电路模块,实则是整个系…...
还在手动触发Lindy子任务?这6个隐藏API+3个低代码集成技巧,今天就能上线全自动流水线
更多请点击: https://kaifayun.com 第一章:Lindy多步骤任务自动化的价值与演进路径 Lindy效应指出,一项技术的预期剩余寿命与其当前已存在时间正相关;在自动化领域,Lindy原则催生了对“经久验证、语义稳定、可组合性强…...
