熵值法(熵权法)

熵值法(Entropy Method)是一种多属性决策分析方法,主要用于权重确定、排序和评价。它在风险评估、资源配置、环境管理等领域得到广泛应用。熵值法的核心思想是基于信息熵的概念,利用信息熵来度量各属性对决策的贡献程度,从而确定各属性的权重。

下面是熵值法的基本步骤:

  1. 构建决策矩阵: 将决策问题转化为一个属性-样本矩阵,其中每一列表示一个属性,每一行表示一个样本。
  2. 归一化处理: 对决策矩阵进行归一化处理,使得每个属性的值都在 [0, 1] 范围内。这可以通过将每个属性值除以该属性的最大值来实现。
  3. 计算熵值: 对每个属性计算其信息熵,熵的计算公式为:
    在这里插入图片描述
import numpy as np
import pandas as pd

##读取数据
data=pd.read_csv('data.csv',encoding='gb18030',index_col=0)
indicator=data.columns.tolist()   ##指标个数
project=data.index.tolist()    ##方案数、评价主体
value=data.values
print(indicator)
print(project)
print(value)
data.head()

在这里插入图片描述

###定义数据标准化函数。为了避免求熵值时对数无意义,对数据进行平移,对标准化后的数据统一加了常数0.001
def std_data(value,flag):
    for i in range(len(indicator)):
        #print(flag[i])
        if flag[i]=='+':
            value[:,i]=(value[:,i]-np.min(value[:,i],axis=0))/(np.max(value[:,i],axis=0)-np.min(value[:,i],axis=0))+0.001
        elif flag[i]=='-':
            value[:,i]=(np.max(value[:,i],axis=0)-value[:,i])/(np.max(value[:,i],axis=0)-np.min(value[:,i],axis=0))+0.001
    return value
#定义熵值法函数、熵值法计算变量的权重
def cal_weight(indicator,project,value):
    p= np.array([[0.0 for i in range(len(indicator))] for i in range(len(project))])                    
    ##print(p)
    for i in range(len(indicator)):
        p[:,i]=value[:,i]/np.sum(value[:,i],axis=0)
        
    e=-1/np.log(len(project))*sum(p*np.log(p))      #计算熵值
    g=1-e     # 计算一致性程度
    w=g/sum(g)     #计算权重
    return w
##数据标准化
flag=["-","+","-","+","+","+"]  ##表示指标为正向指标还是反向指标
std_value=std_data(value,flag)
std_value.round(3)

在这里插入图片描述

##结果
w=cal_weight(indicator,project,std_value)
w=pd.DataFrame(w,index=data.columns,columns=['权重'])
print("#######权重:#######")
print(w)
score=np.dot(std_value,w).round(2)
#print(score)
score=pd.DataFrame(score,index=data.index,columns=['综合得分']).sort_values(by =['综合得分'],ascending = False)
score

在这里插入图片描述

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

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

相关文章

串口环保212设备 转 profinet IO协议项目案例

1 文档说明 数采仪通过串口输出环保212的数据,vfbox网关通过串口采集数采仪的数据。网关把采集的数据转换成Profinet IO从站数据。 2 测试数采仪的串口数据 测试数采仪的串口有数据输出,并且需要知道输出的数据内容。 把数采仪的串口(232或…

【记录】打印|无需排版,生成证件照打印PDF,打印在任意尺寸的纸上(简单无损!)

以前我打印证件照的时候,我总是在网上找在线证件照转换或者别的什么。但是我今天突然就琢磨了一下,用 PDF 打印应该也可以直接打印出来,然后就琢磨出来了,这么一条路大家可以参考一下。我觉得比在线转换成一张 a4 纸要方便的多&am…

AI视频教程下载:ChatGPT API、HTML、CSS 和 JS开发AI聊天机器人

在课程中,你将开启一段令人兴奋的聊天机器人开发之旅,并装备自己创建智能对话代理所需的技能和知识。 利用 ChatGPT API、HTML、CSS 和 JavaScript 的强大功能,你将学习如何设计和构建吸引用户并提供个性化体验的聊天机器人界面。深入探讨聊天机器人开发的基础知识,了解对话设…

给转行产品经理的小白的一些建议

哈喽我是小源,毕业在教培大厂做了1年的班主任,下午1点上班,被优化后gap3月找到了自己的本命岗位——产品经理! 其实这个转变也挺机缘巧合的,朋友和我都是教培行业,她是成人职教类,我是k111类&a…

SWM181系列应用

一、SWM181系列 ISP功能 1.1、注意:ISP引脚为B0,VCC,GND是UART-RX、UART-TX 下载引脚。所有型号的UART-RX - - > A0,UART-TX - - > A1。 1.2、注意:板级设计必须留出ISP引脚,防止调试过程中芯片锁死后…

Java——执行流程

一、执行流程 1、示例 //第一个Java程序 public class Hello{public static void main(String[] args){System.out.println("Hello World!");} } 编译: 执行: 我们可以看到这里的是类名,而不是字节码文件名 Hello.class &#…

Android manifest清单文件意外权限来源和合并规则

问题背景 当自写APP发现无缘无故多申请了多个权限,其中一个就是:android.permission.WAKE_LOCK. 一想就知道如果并非自己在APP main中引入的,那就是依赖的库清单文件导入进来的. 定位问题 定位手段 1.manifest-merger-buildVariant-report.txt 根据其内容可知, WAKE_LOCK 权…

分布式专题

一:分布式事务 1、理论基础 分布式事务主要区分本地事务 什么是本地事务(Local Transaction)?本地事务也称为数据库事务或传统事务(相对于分布式事务而言)。尤其对于数据库而言,为了数据安全…

图形学初识--矩阵和向量

文章目录 前言正文向量什么是向量?向量涉及哪些常见计算?1、取模2、归一化3、向量加法4、向量减法5、向量与标量乘6、向量点乘(内积)7、向量投影 向量有哪些基本应用? 矩阵什么是矩阵?矩阵涉及哪些常见计算…

【数据结构】冒泡排序、直接插入排序、希尔排序详解!

文章目录 1. 冒泡排序🍎2. 直接插入排序🍎3. 希尔排序(缩小增量排序)🍎 1. 冒泡排序🍎 🐧 基本思想: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 大的数据…

使用docker部署项目

一、docker私有镜像仓库 1、docker私有镜像仓库 库(Repository)是集中存放镜像的地方,又分为公共镜像和私有仓库。 当我们执行docker pull xxx的时候,它实际上是从registry.docker.com这个地址去查找,这就是Docker公…

基于稀疏辅助信号平滑的心电信号降噪方法(Matlab R2021B)

基于形态成分分析理论(MCA)的稀疏辅助信号分解方法是由信号的形态多样性来分解信号中添加性的混合信号成分,它最早被应用在图像处理领域,后来被引入到一维信号的处理中。 在基于MCA稀疏辅助的信号分析模型中,总变差方…

交互设计如何助力传统技艺在当代复兴?

背景介绍 榫卯是中国传统木工中一种独特的接合技术,它通过构件间的凸凹部分相互配合来实现两个或多个构件的紧密结合。这种结构方式不依赖于钉子或其他金属连接件,而是利用木材自身的特性,通过精巧的设计和工艺,实现构件间的稳定…

【MAC】Spring Boot 集成OpenLDAP(含本地嵌入式服务器方式)

目录 一、添加springboot ldap依赖: 二、本地嵌入式服务器模式 1.yml配置 2.创建数据库文件:.ldif 3.实体类 4.测试工具类 5.执行测试 三、正常连接服务器模式 1.yml配置 2.连接LDAP服务器配置类,初始化连接,创建LdapTem…

Android framework修改,禁止指定包名的apk安装到设备上(基于Android10.0.0-r41)

文章目录 Android framework修改,禁止指定包名的apk安装到设备上(基于Android10.0.0-r41)1.新增接口提供给上层调用2.在pms中实现新增的接口3.找到preparePackageLI方法。4.测试验证 Android framework修改,禁止指定包名的apk安装到设备上(基于Android10…

如何利用短链接巧妙避开多渠道推广大坑

在当下,推广渠道多样化对企业来说,那可是机遇与大坑并存!多渠道推广的重要性大家都懂,但为啥说有坑呢?一旦企业开启多渠道推广模式,就得面对大量人力物力的投入,可要是区分不了各个渠道的推广效…

超详细介绍基于微调 Faster R-CNN实现海上航拍图像中检测小物体-含源码与数据集免费下载

在航拍图像中检测小物体,尤其是对于海上救援等关键应用而言,是一项独特的挑战。及时检测水中的人可能意味着生死之间的差别。我们的研究重点是微调 Faster R-CNN(一种强大的两阶段物体检测器),以满足这一重要需求。 我们研究的核心是SeaDroneSee 数据集,这是一组重要的图…

【NumPy】全面解析add函数:高效数组加法操作

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

源达投顾的投资建议可不可信?

在金融投资领域,专业的投资顾问机构如源达投顾,为投资者提供了宝贵的投资建议和策略。然而,面对市场上众多的投资顾问机构,投资者往往会产生疑问:源达投顾的投资建议真的可信吗? 一、专业团队背景 源达投…

MSC Apex压力容器应力线性化的应用方法

应力线性化是针对压力容器设计常用的一种技术。在工程领域,应力线性化在分析复杂载荷条件下构件的结构完整性方面起着至关重要的作用。准确的应力线性化对于评估是否符合行业标准(如美国机械工程师协会(ASME)制定的标准)至关重要。为了简化应力线性化的过程&#xf…