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

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

http://www.lryc.cn/news/357004.html

相关文章:

  • 修改vuetify3的开关组件v-switch在inset模式下的大小
  • m1系列芯片aarch64架构使用docker-compose安装nacos
  • 优化耗时业务:异步线程在微服务中的应用
  • torch.scatter看图理解
  • 适合学生党的蓝牙耳机有哪些?盘点四大性价比蓝牙耳机品牌
  • 【ORB_SLAM系列3】—— 如何在Ubuntu18.04中使用自己的单目摄像头运行ORB_SLAM3(亲测有效,踩坑记录)
  • Science Advances|柔性超韧半导体纤维的大规模制备(柔性半导体器件/可穿戴电子/纤维器件/柔性电子)
  • VirtualBox虚拟机与bhyve虚拟机冲突问题解决@FreeBSD
  • 【网络层】ICMP 因特网控制协议
  • 汇编原理(四)[BX]和loop指令
  • Linux查看设备信息命令
  • transformer的特点
  • 27快28了,想转行JAVA或者大数据,还来得及吗?
  • 英飞凌 AURIX TriCore 单片机开发入门
  • Centos安装,window、ubuntus双系统基础上安装Centos安装
  • 2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷6(容器云)
  • 第13章 常用类
  • 15.数组的方法(改变原数组和不改变原数组)
  • 随后记: uniapp uview u-dropdown 下拉菜单固定高度滑动不生效
  • 一文梭哈动态代理
  • 如何查询Windows 10电脑的IP地址
  • java: 警告: 源发行版 8 需要目标发行版 8
  • CCF-CSP认证 2023年12月 2.因子化简
  • 基于Vue2与3版本的Element UI与Element Plus入门
  • Mysql数据库创建自增序列
  • macOS上用Qt creator编译并跑shotcut
  • 基于高光谱数据集的创新点实现-高斯核函数卷积神经网络
  • 【python 进阶】 绘图
  • memblock_free_all释放page到buddy,前后nr_free的情况
  • Django实现websocket