TOPSIS综合评价

TOPSIS法(Technique for Order Preference by Similarity to an Ideal Solution)是一种常用的综合评价方法,该方法根据有限个评价对象与理想化目标的接近程度进行排序,是在现有的对象中进行相对优劣的评价。

TOPSIS法的原理是通过检测评价对象与最优解、最劣解的距离来进行排序。具体来说,它首先确定各效用函数的单调性,然后计算评价对象与最优解和最劣解的距离,最后根据距离进行排序。其中,最优解的各指标值都达到各评价指标的最优值,而最劣解的各指标值都达到各评价指标的最差值。评价对象离最优解越近、离最劣解越远越好。

TOPSIS方法的一般步骤如下:
  1. 确定决策矩阵:首先,根据决策者的需求和各备选方案的特点,建立一个决策矩阵,其中每一行代表一个备选方案,每一列代表一个评价准则。
  2. 标准化决策矩阵:由于各准则的量纲和数值范围可能不同,需要对决策矩阵进行标准化处理,得到无量纲的决策矩阵。
  3. 确定加权决策矩阵:根据各准则的重要性,赋予相应的权重,然后计算加权决策矩阵。
  4. 确定理想解和负理想解:理想解是指在所有准则下都是最优的解,而负理想解则是在所有准则下都是最差的解。
  5. 计算各备选方案与理想解和负理想解的距离:对每个备选方案,分别计算其与理想解和负理想解的距离。
  6. 计算相对贴近度:根据各备选方案与理想解的距离和与负理想解的距离,计算其相对贴近度。
  7. 进行排序:根据相对贴近度的大小,对所有备选方案进行排序,贴近度越大的方案越优。

案例背景

本案例以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中也是一个主观的过程,可能会影响最终的决策结果。

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

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

相关文章

C++ | Leetcode C++题解之第117题填充每个节点的下一个右侧节点指针II

题目: 题解: class Solution { public:void handle(Node* &last, Node* &p, Node* &nextStart) {if (last) {last->next p;} if (!nextStart) {nextStart p;}last p;}Node* connect(Node* root) {if (!root) {return nullptr;}Node *…

oracle 12c DB卸载流程

1.运行卸载程序 [rootprimary1 ~]# su - oracle [oracleprimary1 ~]$ cd $ORACLE_HOME/deinstall [oracleprimary1 deinstall]$ ./deinstall Checking for required files and bootstrapping ... Please wait ... 这里选择3 、回车、y、y、回车、ASM 这里输入y 2.删除相关目录…

联想打印APP添加打印机方法

联想打印APP添加打印机操作方法: 1、在手机上下载“联想打印”APP; 2、打开“联想打印”APP,然后在软件内右下角找到“我的”图标并选择; 3、点击“请登录/注册”; 4、勾选“我已阅读并同意”然后在上面填写手机号码后&#xff0…

【NumPy】深入了解NumPy的multiply函数:高效矩阵和数组乘法指南

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

09Django项目--用户管理系统--删

对应视频链接点击直达 09Django项目--用户管理系统--删 对应视频链接点击直达删a,本质b,删除 页面相关a,index页面新增操作按钮b,ajax删除和提示c,完整版本 OVER,不会有人不会吧不会的加Q1394006513结语 一…

IDEA2024创建maven项目

1、new->project 2、创建后展示 3、生成resources文件夹 4、测试--编写一个hello文件

参数高效微调PEFT(二)快速入门P-Tuning、P-Tuning V2

参数高效微调PEFT(二)快速入门P-Tuning、P-Tuning V2 参数高效微调PEFT(一)快速入门BitFit、Prompt Tuning、Prefix Tuning 今天,我们继续了解下来自清华大学发布的两种参数高效微调方法P-Tuning和P-Tuning v2。可以简单的将P-Tuning是认为针对Prompt Tuning的改进…

用大模型理解爆火的KAN网络

五一假期的时候,KAN突然成为了热门话题。虽然最初我并没有计划弄懂它,但在老板的要求下,我还是探索了一下。 一、KAN是什么? Kolmogorov-Arnold 定理是数学领域的一个里程碑,它揭示了多元函数能够通过一组更简单的函…

希尔排序法

希尔排序为插入排序的优化,即将数组分组,将每一组进行插入排序,每一组排成有序后,最后整体就变有序了。 上面gap2,即5,14,18,27,68为一组;13,20&a…

小程序自动化辅助渗透脚本(2024)

简介 1.还在一个个反编译小程序吗? 2.还在自己一个个注入hook吗? 3.还在一个个查看找接口、查找泄露吗? 现在有自动化辅助渗透脚本了,自动化辅助反编译、自动化注入hook、自动化查看泄露 注:本工具仅用于学习交流&…

【Qt秘籍】[002]-开始你的Qt之旅-下载

一、Qt的开发工具有哪些? Qt的开发工具概述Qt支持多种开发工具,其中最常见的开发工具是 1.QtCreator 【易上手/有少量bug/适合新手】 2.VisualStudio 【功能强大/易出错/需要更多额外配置】 3.Eclipse 【清朝老兵IDE/不建议使用】 【注意&#xff1…

Java | Leetcode Java题解之第118题杨辉三角

题目&#xff1a; 题解&#xff1a; class Solution {public List<List<Integer>> generate(int numRows) {List<List<Integer>> ret new ArrayList<List<Integer>>();for (int i 0; i < numRows; i) {List<Integer> row new…

vxe-form-design 表单设计器的使用

vxe-form-design 在 vue3 中表单设计器的使用 查看官网 https://vxeui.com 安装 npm install vxe-pc-ui // ... import VxeUI from vxe-pc-ui import vxe-pc-ui/lib/style.css // ...// ... createApp(App).use(VxeUI).mount(#app) // ...使用 github vxe-form-design 用…

【MySQL事务(下)(重点)】

文章目录 再次理解MySQL事务一、MVCC机制数据库并发的场景有三种&#xff1a;3个记录隐藏列字段undo日志——由mysql维护的一段内存空间再次理解隔离性和隔离级别 Read View 理论部分RR 和 RC 的本质区别 再次理解MySQL事务 1.每个事务都有自己的事务ID&#xff0c;根据事务的…

蒙特卡洛法求解机械臂工作空间(以IRB4600型工业机械臂为例)

1. 概念 工作空间是衡量机器人工作能力的一个重要的运动学指标&#xff0c;蒙特卡洛法是一种随机模拟方法&#xff0c;用于在计算机上估计某些统计量&#xff0c;对于要估计的统计量&#xff0c;通过模拟大量的随机抽样&#xff0c;并计算这些样本的随机值来估算这个统计量的值…

释放 OSINT 的力量:在线调查综合指南

开源情报 (OSINT) 是从公开信息中提取有价值见解的艺术。无论您是网络安全专业人士、道德黑客还是情报分析师&#xff0c;OSINT 都能为您提供先进的技术&#xff0c;帮助您筛选海量的数字数据&#xff0c;发现隐藏的真相。 在本文中&#xff0c;我们将深入研究大量的OSINT 资源…

【LeetCode刷题】滑动窗口解决问题:串联所有单词的子串(困难)、最小覆盖子串(困难)

【LeetCode刷题】Day 10 题目1&#xff1a;30. 串联所有单词的子串&#xff08;困难&#xff09;思路分析&#xff1a;思路1&#xff1a;滑动窗口哈希map 题目2&#xff1a;LCR 017.最小覆盖子串思路分析思路1&#xff1a;滑动窗口哈希表 题目1&#xff1a;30. 串联所有单词的子…

【论文阅读|cryoET】DeepETPicker:使用弱监督深度学习的快速准确cryoET三维颗粒挑选算法

题目 DeepETPicker: Fast and accurate 3D particle picking for cryo-electron tomography using weakly supervised deep learning 发表期刊&#xff1a; Nature Communications 发表时间&#xff1a;2024.02 Accepted 作者&#xff1a;Guole Liu, Tongxin Niu 中科院自动化…

43-2 Linux入侵排查实验

环境准备: 老规则,我没有靶场就自己搭建了类似, 这里准备一台CentOS 7虚拟机作为受害者,然后使用CS制作木马并在受害者主机上线,具体过程可以看我之前写的一篇文章: 黑客必备利器:如何在系统上安装和使用 CobaltStrike(简称:CS)_cobalt strike-CSDN博客 最终的效果…

FPGA——eMMC验证

一.FPGA基础 1.FPGA烧录流程 (1) 加载流文件 —— bitfile (2) 烧录文件 —— cmm 二.MMC 1.基础知识 (1)jz4740、mmc、emmc、sd之间的关系&#xff1f; jz4740——处理器 mmc——存储卡标准 emmc——mmc基础上发展的高效存储解决方案 sd—— 三.eMMC和SD case验证 1.ca…