【数学建模】熵权法 Python代码

熵权法是一种客观的赋权方法,它可以靠数据本身得出权重。

依据的原理:指标的变异程度越小,所反映的信息量也越少,其对应的权值也应该越低。

import numpy as np#自定义对数函数mylog,用于处理输入数组中的0元素
def mylog(p):n = len(p)  # 获取输入向量p的长度lnp = np.zeros(n)for i in range(n):if p[i]==0:lnp[i] = 0else:lnp[i] = np.log(p[i])return lnp # 返回计算后的对数数组# 定义指标矩阵x
X = np.array([[9, 0, 0, 0],[8, 3, 0.9, 0.5],[6, 7, 0.2, 1]])# 对矩阵标准化处理,得Z
Z = X / np.sqrt(np.sum(X*X, axis=0))print("标准化矩阵Z = ")
print(Z)# 计算熵权所需的变量和矩阵初始化
n,m = Z.shape
D = np.zeros(m)#计算每个指标的信息效用值
for i in range(m):x = Z[:, i]  # 获取Z的第二列p = x / np.sum(x)e = -np.sum(p * mylog(p)) / np.log(n) # 根据熵的定义计算第i个指标的信息熵eD[i] = 1 - e#根据信息效用值计算各指标的权重W = D / np.sum(D)print("权重 W = ")
print(W)

 

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

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

相关文章

义乌购关键字搜索API接口技术详解与代码示例

义乌购关键字搜索API接口技术详解与代码示例 在电子商务蓬勃发展的今天,义乌购作为国内知名的批发市场平台,为广大商家和消费者提供了丰富的商品资源。为了方便开发者快速接入义乌购平台,实现商品信息的搜索与获取,义乌购开放了关…

数码管的静态显示(二)

1.原理 要按照上图的顺序传递位选和段选的数据。 因为q0是最高位,共阳极数码管结构是dp....a,所以应该先传入低位a,而a在上图中的8段2进制编码中是seg[7],所以段选信号的顺序是seg[0],...seg[7]。 因为输出信号是两个时钟&#x…

HTML CSS入门:从基础到实践

🌐 HTML & CSS入门:从基础到实践 🎨 📖 引言 HTML和CSS是构建网页的基石。HTML(超文本标记语言)用于创建网页内容,而CSS(层叠样式表)则用于美化这些内容。无论你是…

unity学习(57)——选择角色界面--删除角色2

1.客户端添加点击按钮所触发的事件&#xff0c;在selectMenu界面中增加myDelete函数&#xff0c;当点击“删除角色”按钮时触发该函数的内容。 public void myDelete() {string message nowPlayer.id;//string m Coding<StringDTO>.encode(message);NetWorkScript.get…

RabbitMQ 模拟实现【四】:虚拟主机设计

文章目录 虚拟主机设计虚拟主机分析交换机和虚拟主机之间的从属关系核心 API发布消息订阅消息应答消息消费者管理类 虚拟主机设计 虚拟主机分析 类似于 MySQL 的 database&#xff0c;把交换机&#xff0c;队列&#xff0c;绑定&#xff0c;消息…进⾏逻辑上的隔离&#xff0…

如何实现Git Push之后自动部署到服务器?

在平时个人开发的过程中是不是有这样的烦恼&#xff1a; 项目开发完成&#xff0c;Push之后 登录服务器&#xff0c;手动git pull&#xff0c;然后运行部署命令 这真的很烦诶&#xff01; 那么能不能Git push之后&#xff0c;远端服务器自动 Git pull 然后运行部署命令呢&a…

2024阿里技术官重磅推出“Java进阶必备宝典” 5大专题 6000字解析

5.JVM实战 CPU占用过高案例实战 内存占用过高案例实战 15种方式编写高效优雅Java程序实战 6.JVM底层技术 亿级流量高井发下GC预估与调优 JHSDB工具透视L ambda底层实现 JVM(HotSpot)核心源码解读 JVM核心模块(GC算法)手写实战 核心三&#xff1a;网络编程与高效IO 1.网络…

还是了解下吧,大语言模型调研汇总

大语言模型调研汇总 一. Basic Language ModelT5GPT-3LaMDAJurassic-1MT-NLGGopherChinchillaPaLMU-PaLMOPTLLaMABLOOMGLM-130BERNIE 3.0 Titan 二. Instruction-Finetuned Language ModelT0FLANFlan-LMBLOOMZ & mT0GPT-3.5ChatGPTGPT-4AlpacaChatGLMERNIE BotBard 自从Cha…

IO Watch:用 Arduino UNO 制造的可编程手表

MAKER:mblaz/译:趣无尽 Cherry(转载请注明出处) 关于手表的项目,之前我们已经介绍过一款《Arduino + 3D 打印 DIY 电子手表》。本期的项目同样的一款基于 Arduino UNO 的可编程的手表,相比之下制造门槛更高一些。同时它更成熟、实用,外形也很有设计感,非常的漂亮! 这…

探索谷歌的秘密花园:Google文件系统GFS之旅(Google File System)

文章目录 &#x1f3d8;️GFS系统架构GFS系统节点类型GFS实现机制 &#x1f34e;GFS特点采用中心服务器模式不缓存数据在用户态下实现只提供专用接口 容错机制⚒️Master容错机制&#x1f504; Chunk Server容错 &#x1f6e0; 系统管理技术 &#x1f3d8;️GFS系统架构 大型分…

IDEA开启Run Dashboard

1、Run Dashboard是什么&#xff0c;为什么要使用 Run Dashboard 是 IntelliJ IDEA 中的一个工具窗口&#xff0c;用于管理和监视项目中正在运行的应用程序和配置。它提供了一种集中管理运行和调试过程的方式&#xff0c;可以让开发人员更方便地查看和控制正在运行的应用程序。…

kubernetes-污点和容忍

kubernetes-污点和容忍 kubernetes-污点和容忍1、什么是污点(Taint)2、什么是容忍度(Toleration)3、为什么master节点上不跑业务pod4、这种打污点让我想到了通过nodename可以指定node节点5、怎么打污点5.1、基本用法5.2、查了一下chat5.3、effect污点效果的三种状态5.4、打标签…