清风数学建模学习笔记——Topsis法

数模评价类(2)——Topsis法

概述

Topsis:Technique for Order Preference by Similarity to Ideal Solution

也称优劣解距离法,该方法的基本思想是,通过计算每个备选方案与理想解和负理想解之间的距离,从而评估每个方案的优劣。

案例

已知下列20条河流几项指标数据,指标有含氧量、PH值、细菌总数、植物性营养物量,试对20条河流的水质进行评价和排序。

在这里插入图片描述

思考:适不适合使用层次分析法进行评价?

答:不适合。原因:1、决策层的方案数为20>15,很难构造通过一致性检验的判断矩阵,并且一致性检验中RI可查的最大n为15;2、若使用层次分析法,没有充分利用已知方案各向指标数据进行评价。

数据集基本概念:

如案例中所给数据表格构成一个典型的数据集,每一行代表一个记录/数据项/对象,

第一列构成索引列(index),除每一列外每一列代表一个指标/特征

Topsis步骤

Step1:正向化处理

指标分类:

在这里插入图片描述

在该案例中,极大型:含氧量,极小型:细菌含量,中间型:PH值,区间型:营养量

正向化处理即将所有指标转化为极大型指标

符号说明:x代表数据集中对应特征的一列, x i x_i xi表示该列第i行元素

极小型->极大型
x i ^ = m a x { x } − x i \hat{x_{i}}=max\{x\}-x_{i}\\ xi^=max{x}xi
如果所有元素为正数,可取倒数实现正向化

中间型->极大型
x i ^ = 1 − x i − x b e s t m a x { x i − x b e s t } \hat{x_i}=1-\frac{x_i-x_{best}}{max\{x_i-x_{best}\}} xi^=1max{xixbest}xixbest
在这里插入图片描述

注:这种正向化处理将数据值映射到[0,1],数据越趋近中间理想值,映射值越趋近于1

区间型->极大型

在这里插入图片描述

注:区间型指标正向化需考虑左右两侧,类似中间型指标的正向化方法,当两侧值越趋近理想趋近边界值时,映射值越趋近于1

Step2:正向化矩阵标准化

标准化处理是矩阵预处理中基础性的步骤,其目的是消除不同指标量纲的影响,这里采用向量归一化(也称为L2正则化,即将每一列向量转化为单位特征列向量)

在这里插入图片描述

Step3:计算得分并归一化

Topsis优劣解的核心思想就是先确定两个正(负)理想的数据向量,然后将每个对象数据向量对其评分。由于我们已经将所有指标正向化,因此抽出每一列的最大值构成最大值向量 Z + Z_{+} Z+,抽出每一列的最小值构成最小值向量 Z − Z_{-} Z,对于每个评价对象数据向量 Z i Z_i Zi,我们可以用向量距离公式计算 Z i Z_i Zi Z + Z_{+} Z+ Z − Z_{-} Z​的距离 D i + 和 D i − D_i^{+}和D_i^{-} Di+Di,然后得到每个对象未归一化的评分
S i = D i − D i − + D i + S_i=\frac{D_i^{-}}{D_i^{-}+D_i^{+}} Si=Di+Di+Di
在这里插入图片描述

归一化后就得到各对象最终评分

考虑指标权重系数,对算法进行修改

在这里插入图片描述

权重系数可由构造判断矩阵法得到,也可以由熵权法【后续讨论】得到

运行python代码结果:

在这里插入图片描述

简要分析结果可知I、J、K河流水质最好,N河流水质明显最差

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[软件工程]九.可依赖系统(Dependable Systems)

9.1什么是系统的可靠性(reliability) 系统的可靠性反映了用户对系统的信任程度。它反映了用户对其能够按照预期运行且正常使用中不会失效的信心程度。 9.2什么是可依赖性(dependablity)的目的 其目的是覆盖系统的可用性&#x…

减少30%人工处理时间,AI OCR与表格识别助力医疗化验单快速处理

在医疗行业,化验单作为重要的诊断依据和数据来源,涉及大量的文字和表格信息,传统的手工输入和数据处理方式不仅繁琐,而且容易出错,给医院的运营效率和数据准确性带来较大挑战。随着人工智能技术的快速发展,…

Jackson使用实例:将后端返回的 JSON 字段名转换为大写(多种方案详细实例实现)

目录 将返回 JSON 字段名转换为大写背景解决方案1. **局部字段名转换为大写** — 使用 JsonNaming 注解方案概述步骤 2. **全局字段名转换为大写** — 配置 ObjectMapper方案概述步骤 3. **手动指定字段名称** — 使用 JsonProperty 注解方案概述步骤 4. **总结**推荐方案 将返…

汽车一键启动开关 、一键启动按键 、一键启动按钮

‌汽车一键启动按钮是智能汽车的重要部分,通常用于启动和关闭引擎‌。 ‌具体功能‌: ‌启动引擎‌:在许多现代汽车中,一键启动按键取代了传统的钥匙启动方式。只需轻轻按下一键启动按钮,车辆电源即被接通&#xff0c…

.NET用C#导入Excel数据到数据库

将Excel文件中的数据导入到数据库中不仅能够提升数据处理的效率和准确性,还能极大地促进数据分析和决策制定的过程。尤其在企业级应用中,Excel作为数据输入和初步整理的工具非常普遍,但其功能对于复杂查询、大规模数据管理和跨部门的数据共享…

python中数组怎么转换为字符串

1、数组转字符串 #方法1 arr [a,b] str1 .join(arr)#方法2 arr [1,2,3] #str .join(str(i) for i in arr)#此处str命名与str函数冲突! str2 .join(str(i) for i in arr) 2、字符串转数组 #方法一 str_x avfg st_list list(str_x) #使用list()#方法二 list_s…

国内管理咨询公司哪家落地辅导做的好?

在当今快速变化的市场环境中,企业面临着前所未有的竞争压力与转型挑战。为了在这场没有硝烟的战争中脱颖而出,许多企业开始寻求外部专业力量的帮助,以期通过科学的管理咨询实现战略升级和业绩突破。而在众多的管理咨询公司中,思博…

前端进阶指南:详解 Source Map 的作用与工作原理,解析.map文件

前言 在前端开发中,代码的压缩与混淆是提升网页性能的常见做法。然而,这种优化措施也带来了调试难度的增加,因为压缩后的代码往往难以阅读和理解。这时,Source Map 技术应运而生,作为连接源代码和构建后代码的桥梁&am…

Cursor vs VSCode:主要区别与优势分析

Cursor - The AI Code Editor 1. AI 集成能力 Cursor的优势 原生AI集成: # Cursor可以直接通过快捷键调用AI # 例如:按下 Ctrl K 可以直接获取代码建议 def complex_function():# 在这里,你可以直接询问AI如何实现功能# AI会直接在编辑器中…

python+selenium的八大定位方式

1.id定位 元素的id属 driver.find_element_by_id(By.ID,"username")2.name定位 driver.find_element_by_id(By.NAME,"username")#一个login_btn_list webdriver.find_elements(By.CLASS_NAME,)#多个元素组成的列表, login_btn_list[1].click…

RTCMultiConnection 跨域问题解决

js套件地址 https://github.com/muaz-khan/RTCMultiConnection server套件地址 https://github.com/muaz-khan/RTCMultiConnection-Server 要解决的就是server代码的跨域问题 原装写法: 解决写法: // 喜欢组合语法的自己组 const io new ioServer.S…

【JavaEE】多线程(6)

一、用户态与内核态 【概念】 用户态是指用户程序运行时的状态,在这种状态下,CPU只能执行用户态下的指令,并且只能访问受限的内存空间 内核态是操作系统内核运行时的状态,内核是计算机系统的核心部分,CPU可以执行所有…

Ajax:回忆与节点

一点回忆 面对我的Ajax学习,实现前后端交互,最开始我采用的使用网络寻找intellij IDEA Ultimate破解方法,然后最终成功,然后按照相关教程配置java ee项目,然后中间又去配置了Tomcat服务器,然后又去学习了一…

1688:开启跨境电商新篇章

引言 在全球化贸易不断深化的今天,跨境电商已成为中小企业拓展国际市场的重要渠道。1688,作为阿里巴巴集团旗下领先的内贸平台,近年来也逐渐发力跨境电商领域,为全球买家提供了一个直通中国工厂的贸易平台。本文将带您深入了解16…

2024-12-06 Unity Addressables3——资源加载

文章目录 1 引用加载1.1 Addressables 的资源引用类1.2 加载资源1.3 加载场景1.4 释放资源 2 Label 介绍3 动态加载3.1 加载单个资源3.2 加载多个资源 Unity 版本:6000.0.26f1c1Addressables 版本:2.3.1 1 引用加载 1.1 Addressables 的资源引用类 Ass…

API设计指南:详解HTTP状态码错误解析、HTTP方法及参数命名规则

目录 1、HTTP API规范1.1 原则1.2 协议1.3 版本1.4 路径1.5 HTTP 方法(Method)1.6 过滤信息1.7 参数命名1.8 HTTP 状态码(Response Code)1.9 鉴权 2、状态码2.1 API返回基础规范2.2 常见的 HTTP 状态码2.3 API错误信息应该放到响应…

【C#】键值对的一种常见数据结构Dictionary<TKey, TValue>

在 C# 中&#xff0c;Dictionary<TKey, TValue> 是一个 键值对&#xff08;key-value&#xff09;集合&#xff0c;是一种非常常见的数据结构。它允许通过 键&#xff08;key&#xff09;来快速查找与之相关的 值&#xff08;value&#xff09;。你可以将其类比为一个映射…

Word处理表格的一些宏

目录 1、表格首行居中2、表格内容靠左上下居中&#xff08;排除首行&#xff09; 1、表格首行居中 说明&#xff1a; 遇到错误将进行捕获&#xff0c;然后继续处理下一个表格 宏&#xff1a; Sub 表格首行居中()Dim tbl As tableOn Error Resume Next 错误时继续执行下一个…

相机动态/在线标定

图1 图2 基本原理 【原理1】平行线在射影变换后会交于一点。如图所示,A为相机光心,蓝色矩形框为归一化平面,O为平面中心。地面四条黄色直线为平行且等距的车道线。HI交其中两条车道线于H、I, 过G作HI的平行线GM交车道线于M。HI、GM在归一化平面上的投影分别为JK、PN,二者会…

嵌入式Linux(SOC带GPU树莓派)无窗口系统下搭建 OpenGL ES + Qt 开发环境,并绘制旋转金字塔

树莓派无窗口系统下搭建 OpenGL ES Qt 开发环境&#xff0c;并绘制旋转金字塔 1. 安装 OpenGL ES 开发环境 运行以下命令安装所需的 OpenGL ES 开发工具和库&#xff1a; sudo apt install cmake mesa-utils libegl1-mesa-dev libgles2-mesa-dev libdrm-dev libgbm-dev2. 安…