TOPSIS综合评价
TOPSIS法(Technique for Order Preference by Similarity to an Ideal Solution)是一种常用的综合评价方法,该方法根据有限个评价对象与理想化目标的接近程度进行排序,是在现有的对象中进行相对优劣的评价。
TOPSIS法的原理是通过检测评价对象与最优解、最劣解的距离来进行排序。具体来说,它首先确定各效用函数的单调性,然后计算评价对象与最优解和最劣解的距离,最后根据距离进行排序。其中,最优解的各指标值都达到各评价指标的最优值,而最劣解的各指标值都达到各评价指标的最差值。评价对象离最优解越近、离最劣解越远越好。
TOPSIS方法的一般步骤如下:
- 确定决策矩阵:首先,根据决策者的需求和各备选方案的特点,建立一个决策矩阵,其中每一行代表一个备选方案,每一列代表一个评价准则。
- 标准化决策矩阵:由于各准则的量纲和数值范围可能不同,需要对决策矩阵进行标准化处理,得到无量纲的决策矩阵。
- 确定加权决策矩阵:根据各准则的重要性,赋予相应的权重,然后计算加权决策矩阵。
- 确定理想解和负理想解:理想解是指在所有准则下都是最优的解,而负理想解则是在所有准则下都是最差的解。
- 计算各备选方案与理想解和负理想解的距离:对每个备选方案,分别计算其与理想解和负理想解的距离。
- 计算相对贴近度:根据各备选方案与理想解的距离和与负理想解的距离,计算其相对贴近度。
- 进行排序:根据相对贴近度的大小,对所有备选方案进行排序,贴近度越大的方案越优。
案例背景
本案例以2022年广西各地市的农产品产量进行建模,综合评价各地市的农业规模和水平。要求:求出各个评价对象与正理想解和负理想解的距离,并以此对各评价对象进行优劣排序。


import pandas as pd
import numpy as np
data = pd.read_clipboard()
data

# 向量归一化:极大型指标
normalization = np.linalg.norm(data.iloc[:,1:], axis=0)
norm_data = data.iloc[:,1:] / normalization
norm_data

# 求正理想解和负理想解
positive_ideal_solve = norm_data.max(axis=0)
negative_ideal_solve = norm_data.min(axis=0)
# 求正理想解的距离
positive_distance = np.linalg.norm(norm_data - positive_ideal_solve, axis=1)
# 求负理想解的距离
negative_distance = np.linalg.norm(norm_data - negative_ideal_solve, axis=1)
# 计算相对接近度
f1 = negative_distance / (negative_distance + positive_distance)
(data.assign(正理想解距离=positive_distance).assign(负理想解距离=negative_distance).assign(相对接近度=f1).assign(排名=lambda x: x.相对接近度.transform('rank', ascending=False))
)

总结
TOPSIS方法的优点在于它简单直观,易于理解和操作,且不需要复杂的数学运算。它适用于准则间存在冲突的情况,可以为决策者提供一个相对客观的决策依据。然而,TOPSIS方法也有其局限性,比如它假设准则之间是独立的,而实际上准则之间可能存在相互影响。此外,权重的确定在TOPSIS中也是一个主观的过程,可能会影响最终的决策结果。
相关文章:
TOPSIS综合评价
TOPSIS法(Technique for Order Preference by Similarity to an Ideal Solution)是一种常用的综合评价方法,该方法根据有限个评价对象与理想化目标的接近程度进行排序,是在现有的对象中进行相对优劣的评价。 TOPSIS法的原理是通过…...
修改vuetify3的开关组件v-switch在inset模式下的大小
<v-switchv-model"model":label"Switch: ${model.toString()}"hide-detailsinset></v-switch>使用方式1:本页面使用 本页面中使用,必须要含有lang“scss” scoped,才会生效 <style lang"scss"…...
m1系列芯片aarch64架构使用docker-compose安装nacos
之前看到 DockerHub 上发布了 m1 芯片 aarch64 架构的 nacos 镜像, 所以就尝试的安装了下, 亲测可用: 一. docker-compose.yml 编写 请确保自己的 mysql 服务已经启动了, 并且允许远程连接 volumes 挂载目录需要换成自己的目录 二. 容器运行和网络组 2.1 查看容器运行情况 …...
优化耗时业务:异步线程在微服务中的应用
大家好,我是程序员大猩猩。 大家都知道,在我们实际开发过程中,我们经常会遇到一些耗时的业务和逻辑,比如说要上传什么大文件,又或者是大文件的数据处理。我们不能一个接口上等着这些耗时任务完成之后了,再…...
torch.scatter看图理解
torch.Tensor.scatter 有 4 个参数: scatter(dim, index, src, reduceNone) 先忽略 Reduce,最后再解释。先从最简单的开始。我们有一个 (2,4) 形状的张量,里面填充了 1: 粉红色的符号表示张量结构 并且我们传入相应的参数并得到…...
适合学生党的蓝牙耳机有哪些?盘点四大性价比蓝牙耳机品牌
对于追求高品质音乐体验而又预算有限的学生党来说,一款性价比高的蓝牙耳机无疑是最佳选择,在众多品牌和型号中,如何挑选到既适合自己需求又价格亲民的蓝牙耳机,确实是一个值得思考的问题,作为一个蓝牙耳机大户…...
【ORB_SLAM系列3】—— 如何在Ubuntu18.04中使用自己的单目摄像头运行ORB_SLAM3(亲测有效,踩坑记录)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、ORB_SLAM3源码编译二、ORB_SLAM3实时单目相机测试1. 查看摄像头的话题2. 运行测试 三. 运行测试可能的报错1. 报错一(1) 问题描述(2) 原因分析(3) 解决 2. …...
Science Advances|柔性超韧半导体纤维的大规模制备(柔性半导体器件/可穿戴电子/纤维器件/柔性电子)
北京大学 雷霆(Ting Lei)团队,在《Science Advances》上发布了一篇题为“Continuous production of ultratough semiconducting polymer fibers with high electronic performance”的论文。论文内容如下: 一、 摘要 共轭聚合物具有良好的光电特性,但其脆性和机械特性差,…...
VirtualBox虚拟机与bhyve虚拟机冲突问题解决@FreeBSD
问题 在安装完bhyve虚拟系统的主机上启动VirtualBox虚拟机的时候,报错:不能为虚拟电脑 debian 打开一个新任务. VirtualBox cant operate in VMX root mode. Please close all other virtualization programs. (VERR_VMX_IN_VMX_ROOT_MODE). 返回 代码…...
【网络层】ICMP 因特网控制协议
文章目录 ICMP 含义以及作用ICMP协议解析结合ICMP协议和ping常见问题 ICMP 含义以及作用 ICMP:Internet control massage protocol 因特网控制协议 Internet控制报文协议ICMP是网络层的一个重要协议。 ICMP协议用来在网络设备间传递各种差错和控制信息,…...
汇编原理(四)[BX]和loop指令
loop:循环 误区:在编译器里写代码和在debug里写代码是不一样的,此时,对于编译器来说,就需要用到[bx] [bx]: [bx]同样表示一个内存单元,他的偏移地址在bx中,比如下面的指令 move bx, 0 move ax,…...
Linux查看设备信息命令
dmidecode | grep Product Name 查看grub版本号:rpm -qa | grep -i "grub" 客户端操作系统版本: cat /etc/issue cat /etc/redhat-release 处理器品牌及型号: less /proc/cpuinfo |grep model...
transformer的特点
Transformers是一种用于处理序列数据的神经网络架构,最初由Vaswani等人在2017年提出,主要用于自然语言处理任务。与传统的循环神经网络(RNN)和卷积神经网络(CNN)不同,Transformers采用了一种全新…...
27快28了,想转行JAVA或者大数据,还来得及吗?
转行到JAVA或者大数据领域,27岁快28岁的年龄完全来得及。我这里有一套编程入门教程,不仅包含了详细的视频讲解,项目实战。如果你渴望学习编程,不妨点个关注,给个评论222,私信22,我在后台发给你。…...
英飞凌 AURIX TriCore 单片机开发入门
文章目录 目的硬件准备AURIX™ Development StudioInfineon MemtoolAURIX™ iLLD Drivers总结 目的 英飞凌的32位 AURIX™ TriCore™ 系列单片机 经常用于汽车和工业领域。开发该系列单片机比较常用的开发环境有 HighTec 和 AURIX™ Development Studio 。本文将基于后者&…...
Centos安装,window、ubuntus双系统基础上安装Centos安装
文章目录 前言一、准备工作二、开始安装1、2、首先选择DATE&TIME2、选择最小安装3、 选择安装位置 总结 前言 因工作需要,我需要在工控机上额外装Centos7系统,不过我是装在机械硬盘上了不知道对性能是否有影响,若有影响,后面…...
2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷6(容器云)
#需要资源(软件包及镜像)或有问题的,可私聊博主!!! #需要资源(软件包及镜像)或有问题的,可私聊博主!!! #需要资源(软件包…...
第13章 常用类
一、包装类 二、String String的常用方法: equals:判断内容是否相等,区分大小写。 String str1 "hello";String str2 "Hello";System.out.println(str1.equals(str2));//false equalsIgnoreCase:判断内容…...
15.数组的方法(改变原数组和不改变原数组)
改变原数组 (1)pop 语法:数组名.pop() 作用:删除数组最后一项 返回值:返回被删除的那一项 var arr=["zhangsna","lisi","wanger","mazi"] var res=arr.pop() console.log(arr) //[zhangsna, lisi, wange…...
随后记: uniapp uview u-dropdown 下拉菜单固定高度滑动不生效
使用u-dropdown 下拉组件 按照uview官网讲解使用 配置根本不生效 scroll-y"true" style"height: 200rpx;" 但是在下拉的时候,不能上下滑动 ,原因是自带的遮罩层挡住了 解决办法:在下拉菜单打开和关闭的时候,…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...
