当前位置: 首页 > news >正文

熵权法Python代码实现

文章目录

  • 前言
  • 代码
    • 数据
    • 熵权法代码
    • 结果

前言

熵权法做实证的好像很爱用,matlab的已经实现过了,但是matlab太大了早就删了,所以搞一搞python实现的,操作空间还比较大

代码

数据

import pandas as pd
data = [[100,90,100,84,90,100,100,100,100],[100,100,78.6,100,90,100,100,100,100],[75,100,85.7,100,90,100,100,100,100],[100,100,78.6,100,90,100,94.4,100,100],[100,90,100,100,100,90,100,100,80],[100,100,100,100,90,100,100,85.7,100],[100,100,78.6,100,90,100,55.6,100,100],[87.5,100,85.7,100,100,100,100,100,100],[100,100,92.9,100,80,100,100,100,100],[100,90,100,100,100,100,100,100,100],[100,100,92.9,100,90,100,100,100,100]]
data = pd.DataFrame(data)

熵权法代码

from sklearn.preprocessing import MinMaxScaler
import numpy as np# 需要进行评价的特征(一般列名)
selected_features = list(data.columns.values)# 对选取的特征进行归一化
scaler = MinMaxScaler()
norm_data = scaler.fit_transform(data[selected_features]) #定义熵值法函数、熵值法计算变量的权重
def cal_weight(feature_num,sample_num,value):p= np.array([[0.0 for i in range(feature_num)] for i in range(sample_num)])                    for i in range(feature_num):value[:,i] += 1e-10 # 防止log0p[:,i]=(value[:,i])/np.sum(value[:,i],axis=0) # 计算特征值占比e=-1/np.log(sample_num)*sum(p*np.log(p))  #计算熵值g=1-e  # 计算一致性程度w=g/sum(g) #计算权重return wf_num = len(selected_features) # 指标个数
s_num = len(data.index.values) # 方案数、评价主体
w = cal_weight(f_num, s_num, norm_data)
w = pd.DataFrame(w,index=selected_features,columns=['weight']) # 计算出的权重
scores = np.dot(data,w).round(2) # 计算综合分数
result = pd.DataFrame(scores,index=data.index.values,columns=['score']).sort_values(by =['score'],ascending = False) # 对球员的分数进行排名

结果

在这里插入图片描述
在这里插入图片描述
和matlab结果差不多,可能归一化不一样有点差别。

不过这里指标都是正向的,即越大越好,负向指标、区间指标等还并未兼容,以后要是用到了再说吧。

相关文章:

熵权法Python代码实现

文章目录 前言代码数据熵权法代码结果 前言 熵权法做实证的好像很爱用,matlab的已经实现过了,但是matlab太大了早就删了,所以搞一搞python实现的,操作空间还比较大 代码 数据 import pandas as pd data [[100,90,100,84,90,1…...

浏览器提示ERR_SSL_KEY_USAGE_INCOMPATIBLE解决

ERR_SSL_KEY_USAGE_INCOMPATIBLE报错原因 ERR_SSL_KEY_USAGE_INCOMPATIBLE 错误通常发生在使用 SSL/TLS 连接时,指的是客户端和服务器之间进行安全通信尝试失败,原因是证书中的密钥用途(Key Usage)或扩展密钥用途(Extended Key Usage, EKU)与正在尝试的操作不兼容。这意味…...

使用深度学习进行“序列到序列”分类

目录 加载序列数据 定义 LSTM 网络架构 测试 LSTM 网络 此示例说明如何使用长短期记忆 (LSTM) 网络对序列数据的每个时间步进行分类。 要训练深度神经网络以对序列数据的每个时间步进行分类,可以使用“序列到序列”LSTM 网络。通过“序列到序列”LSTM 网络,可以对…...

Python和Java的区别(不断更新)

主要通过几个方面区分Python和Java,让大家有一个对比: 语言类型 Java是一种静态类型、编译型语言。 Python是一种动态类型、解释型语言,注重简洁和灵活的语法。 语法 在Java中,变量需要显式地声明,指定其类型。例如&am…...

Ubuntu22.04 gnome-builder gnome C 应用程序习练笔记(三)

八、ui窗体创建要点 .h文件定义(popwindowf.h)&#xff0c; TEST_TYPE_WINDOW宏是要创建的窗口样式。 #pragma once #include <gtk/gtk.h> G_BEGIN_DECLS #define TEST_TYPE_WINDOW (test_window_get_type()) G_DECLARE_FINAL_TYPE (TestWindow, test_window, TEST, WI…...

vue electron 应用在windows系统上以管理员权限打开应用

打开package.json文件&#xff0c;在build下的win增加配置 "requestedExecutionLevel": "requireAdministrator",...

c实现链表

目录 c实现链表 链表的结构定义&#xff1a; 链表的结构操作&#xff1a; 1、初始化链表 2、销毁链表 3、插入结点 4、输出链表数据 5、查找链表数据 扩展 代码实现 c实现链表 链表的结构定义&#xff1a; /*** 链表结构定义 ***/ typedef struct Node {int data; //…...

力扣231. 2 的幂(数学,二分查找,位运算)

Problem: 231. 2 的幂 文章目录 题目描述思路即解法复杂度Code 题目描述 思路即解法 思路1&#xff1a;位运算 1.易验证2的幂为正数&#xff1b; 2.易得2的幂用二进制表示只能有一个位为数字1 3.即将其转换为二进制统计其二进制1的个数 思路2&#xff1a;数学 当给定数n大于1时…...

Maven私服部署与JAR文件本地安装

Nexus3 是一个仓库管理器&#xff0c;它极大地简化了本地内部仓库的维护和外部仓库的访问。 平常我们在获取 maven 仓库资源的时候&#xff0c;都是从 maven 的官方&#xff08;或者国内的镜像&#xff09;获取。团队的多人员同样的依赖都要从远程获取一遍&#xff0c;从网络方…...

【MySQL】字符串函数的学习

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-J7VN4RbrBi51ozap {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…...

AI助力农作物自动采摘,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建作番茄采摘场景下番茄成熟度检测识别计数分析系统

去年十一那会无意间刷到一个视频展示的就是德国机械收割机非常高效自动化地24小时不间断地在超广阔的土地上采摘各种作物&#xff0c;专家设计出来了很多用于采摘不同农作物的大型机械&#xff0c;看着非常震撼&#xff0c;但是我们国内农业的发展还是相对比较滞后的&#xff0…...

记录下ibus-libpinyin输入法的重新安装

目前的版本为&#xff1a; 首先把现在的ibus-libpinyin卸了 sudo apt-get --purge remove ibus-libpinyin sudo apt-get autoremove 安装教程请参考 Installation libpinyin/ibus-libpinyin Wiki GitHub yilai sudo apt install pkg-config sudo apt-get install lib…...

第三百一十八回

文章目录 1. 概念介绍2. 使用方法2.1 本地缓冲2.2 服务器缓冲3. 示例代码4. 内容总结我们在上一章回中介绍了"如何让输入键盘不遮挡屏幕"相关的内容,本章回中将介绍如何有效地缓冲网络图片.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章回中介绍的…...

破除Github API接口的访问次数限制

破除Github API接口的访问次数限制 1、Github介绍2、Github API接口2.1 介绍2.2 使用方法 3、Github API访问限制3.1 访问限制原因3.2 访问限制类别 4、Github API访问限制破除4.1 限制破除原理4.2 限制破除示例 1、Github介绍 Github&#xff0c;是一个面向开源及私有软件项目…...

蓝桥杯嵌入式第8届真题(完成) STM32G431

蓝桥杯嵌入式第8届真题(完成) STM32G431 题目 分析和代码 对比第六届和第七届&#xff0c;这届的题目在逻辑思维上确实要麻烦不少&#xff0c;可以从题目看出&#xff0c;这届题目对时间顺序的要求很严格&#xff0c;所以就可以使用状态机的思想来编程&#xff0c;拿到类似题…...

第二节 zookeeper基础应用与实战

目录 1. Zookeeper命令操作 1.1 Zookeeper 数据模型 1.2 Zookeeper服务端常用命令 1.3 Zookeeper客户端常用命令 1.3.1 基本CRUD 1.3.2 创建临时&顺序节点 2. Zookeeper JavaAPI操作 2.1 Curator介绍 2.2 引入Curator 2.3 建立连接 2.4 添加节点 2.5 修改节点 …...

改变AI服务器:探索界面互连芯片技术的创新突破

根据TrendForce的数据&#xff0c;AI服务器的出货量约为130,000台&#xff0c;占全球服务器总出货量的约1%。随着微软、Meta、百度和字节跳动等主要制造商相继推出基于生成式AI的产品和服务&#xff0c;订单量显著增加。预测显示&#xff0c;在ChatGPT等应用的持续需求推动下&a…...

【P1506 拯救oibh总部】

拯救oibh总部 题目背景 oibh 总部突然被水淹没了&#xff01;现在需要你的救援…… 题目描述 oibh 被突来的洪水淹没了&#xff0c;还好 oibh 总部有在某些重要的地方起一些围墙。用 * 号表示&#xff0c;而一个四面被围墙围住的区域洪水是进不去的。 oibh 总部内部也有许…...

应用层 HTTP协议(1)

回顾 前面我们说到了数据链路层,网络层IP协议,传输层的TCP/UDP协议一些知识点,现在让我们谈谈 应用层的HTTP协议的知识点. 这篇我们先从大局入手,仍然是对总体报文进行全局分析,再对细节报文进行拆解分析 版本 首先我们谈谈HTTP协议的版本 HTTP 0.9 (1991) HTTP 1.0 (1992 - 1…...

Linux学习笔记(centOS)—— 文件系统

目录 一、Linux中的文件 打开方式 二、目录结构​ 三、相关命令 切换目录命令 列出当前目录下的文件和目录命令 一、Linux中的文件 “万物皆文件。” 图1.1 所有文件 打开方式 图形化界面左上角的位置→计算机&#xff0c;打开以后就可以看到Linux全部的文件了&#xf…...

Zend Framework错误处理与日志记录终极指南:10个构建稳定生产环境的技巧

Zend Framework错误处理与日志记录终极指南&#xff1a;10个构建稳定生产环境的技巧 【免费下载链接】zendframework Official Zend Framework repository 项目地址: https://gitcode.com/gh_mirrors/ze/zendframework Zend Framework作为一款成熟的PHP开发框架&#xf…...

别再为PDF表格头疼了!用Nougat+LangChain搞定RAG系统里的表格问答(附完整代码)

突破PDF表格解析瓶颈&#xff1a;Nougat与LangChain构建智能问答系统实战 每次打开满是表格的学术论文PDF时&#xff0c;你是否也经历过这样的挫败感&#xff1f;传统OCR工具要么把跨页表格拆得七零八落&#xff0c;要么将复杂的LaTeX公式识别成乱码&#xff0c;更别提准确关联…...

dexcount-gradle-plugin最佳实践:提升Android应用性能的10个技巧

dexcount-gradle-plugin最佳实践&#xff1a;提升Android应用性能的10个技巧 【免费下载链接】dexcount-gradle-plugin A Gradle plugin to report the number of method references in your APK on every build. 项目地址: https://gitcode.com/gh_mirrors/de/dexcount-grad…...

如何确保usearch内存安全:Safe C++与Rust的终极对比指南

如何确保usearch内存安全&#xff1a;Safe C与Rust的终极对比指南 【免费下载链接】usearch Fastest Open-Source Search & Clustering engine for Vectors & &#x1f51c; Strings in C, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, GoLang, and …...

嵌入式SD卡文件处理轻量级工具库LC_SDTools

1. LC_SDTools 库概述LC_SDTools 是一个面向嵌入式 SD 卡文件系统应用的轻量级工具库&#xff0c;专为解决裸机或 RTOS 环境下 SD 卡文件操作中高频缺失的基础能力而设计。其核心定位并非替代 FatFs、LittleFS 或 ChibiOS FAT 模块等完整文件系统栈&#xff0c;而是作为上层应用…...

别再只会用Burp改后缀了!5种Web文件上传绕过技巧原理深度拆解(.htaccess/MIME/00截断)

Web文件上传绕过技术&#xff1a;从原理到实战的深度解析 在CTF竞赛和实际渗透测试中&#xff0c;文件上传漏洞一直是高频出现的攻击面。许多开发者仅仅依赖简单的后缀名过滤或前端验证&#xff0c;却忽视了底层解析机制的复杂性。本文将深入剖析五种主流绕过技术的核心原理&am…...

Freeswitch实战指南:核心命令与变量操作全解析

1. Freeswitch核心命令实战解析 第一次接触Freeswitch时&#xff0c;面对密密麻麻的命令行界面&#xff0c;我完全不知道从何下手。经过几个项目的实战积累&#xff0c;我发现掌握几个核心命令就能解决80%的日常需求。下面这些命令都是我踩过无数坑后总结出来的精华&#xff0c…...

1929年大萧条的真相

29年的大萧条&#xff0c;传统经济学将那场灾难归因于投机过热&#xff0c;银行脆弱、需求不足等&#xff0c;但这只是表面因素。大萧条的本质是一场货币危机——黄金的物理极限与生产力指数级增长之间的总爆发。一战后&#xff0c;全球建立金本位体系&#xff0c;要求各国货币…...

ArcGIS Pro像素编辑器实战:5种高效影像处理技巧(附真实案例)

ArcGIS Pro像素编辑器实战&#xff1a;5种高效影像处理技巧&#xff08;附真实案例&#xff09; 遥感影像处理是GIS工程师日常工作中的重要环节&#xff0c;而ArcGIS Pro的像素编辑器就像一把精准的手术刀&#xff0c;能帮助我们对影像数据进行精细化处理。不同于传统的批量处理…...

xshell连接VMware虚拟机

一、准备工作 确保虚拟机网络配置正确 在 VMware 中&#xff0c;选择虚拟机 -> 设置 -> 网络适配器。推荐使用 NAT 模式&#xff08;默认&#xff09;或 桥接模式&#xff0c;确保虚拟机可访问外部网络。 启动虚拟机并获取 IP 地址 启动虚拟机&#xff08;如 CentOS、Ubu…...