清风数学建模学习笔记——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河流水质明显最差

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

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

相关文章

【认证法规】安全隔离变压器

文章目录 定义反激电源变压器 定义 安全隔离变压器(safety isolating transformer),通过至少相当于双重绝缘或加强绝缘的绝缘使输入绕组与输出绕组在电气上分开的变压器。这种变压器是为以安全特低电压向配电电路、电器或其它设备供电而设计…

喆塔科技携手国家级创新中心,共建高性能集成电路数智化未来

集创新之力成数智之塔 近日,喆塔科技与国家集成电路创新中心携手共建“高性能集成电路数智化联合工程中心”并举行签约揭牌仪式。出席此次活动的领导嘉宾包含:上海市经济和信息化委员会、上海市集成电路行业协会、复旦大学微电子学院、国家集成电路创新中…

OpenCV-图像阈值

简单阈值法 此方法是直截了当的。如果像素值大于阈值,则会被赋为一个值(可能为白色),否则会赋为另一个值(可能为黑色)。使用的函数是 cv.threshold。第一个参数是源图像,它应该是灰度图像。第二…

手游和应用出海资讯:怪物猎人AR手游累计总收入已超过2.5亿美元、SuperPlay获得迪士尼纸牌游戏发行许可

NetMarvel帮助游戏和应用广告主洞察全球市场、获取行业信息,以下为12月第一周资讯: ● 怪物猎人AR手游累计总收入已超过 2.5 亿美元 ● SuperPlay获得迪士尼纸牌游戏发行许可 ● 腾讯混元大模型上线文生视频能力 ● 网易天下事业部一拆三,蛋仔…

ARINC 标准全解析:航空电子领域多系列标准的核心内容、应用与重要意义

ARINC标准概述 ARINC标准是航空电子领域一系列重要的标准规范,由航空电子工程委员会(AEEC)编制,众多航空公司等参与支持。这些标准涵盖了从飞机设备安装、数据传输到航空电子设备功能等众多方面,确保航空电子系统的兼…

代码随想录Day35 本周小结动态规划,动态规划:01背包理论基础,动态规划:01背包理论基础(滚动数组),416. 分割等和子集。

1.本周小结动态规划 周一 动态规划:不同路径 (opens new window)中求从出发点到终点有几种路径,只能向下或者向右移动一步。 我们提供了三种方法,但重点讲解的还是动规,也是需要重点掌握的。 dp[i][j]定义 :表示从…

tomcat+jdbc报错怎么办?

1. 虽然mysql8.0以上的不用手动添加driver类,但是一旦加上driver类,就要手动添加了 不然会报找不到driver类的错误 2. java.lang.RuntimeException: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:xXX?serverTimezoneU…

【电子仪器】蓝牙测试仪的使用

大家好,我是山羊君Goat。 蓝牙测试仪是专门对于蓝牙信号,RF射频等进行综合测试的电子仪器。 掌握蓝牙测试仪是部分硬件工程师,特别是RF射频硬件工程师一个必备的技能了。 那要如何操作蓝牙测试仪呢? 这里以一款以前市场上比较流…

ansible基础教程(上)

一、介绍: Ansible是一款用于软件配置、配置管理和软件部署的开源自动化和编排工具。相比于其它的工具,Ansible的安装更加简单、易于使用。通过SSH到客户端的方式进行连接,因此它不需要在客户端有特殊的代理,并且通过将模块推送到…

典型常见的知识蒸馏方法总结一

来源:https://github.com/HobbitLong/RepDistiller收录的方法 NeurIPS2015: Distilling the Knowledge in a Neural Network 知识蒸馏开山之作,从logits中蒸馏知识,KL散度损失 ICLR2015:FitNets: Hints for Thin Deep Nets A h…

挑战用React封装100个组件【010】

Hello,大家好,今天我挑战的组件是这样的! 今天这个组件是一个打卡成功,或者获得徽章后的组件。点击按钮后,会弹出礼花。项目中的勋章是我通过AI生成的,还是很厉害的哈!稍微抠图直接使用。最后面…

【Liunx篇】基础开发工具 - yum

文章目录 🌵一.Liunx下安装软件的方案🐾1.源代码安装🐾2.rpm包安装🐾3.包管理器进行安装 🌵二.软件包管理器-yum🌵三.yum的具体操作🐾1.查看软件包🐾2.安装软件包🐾3.卸载…

MongoDB的简单使用

MongoDB(文档数据库)的简单使用 MongoDB最好的学习资料就是他的官方文档:SQL 到 MongoDB 的映射图表 - MongoDB 手册 v8.0 1.MongoDB CRUD操作 1.1Insert操作 基本方法: db.collection.insertOne() 将单个文档(document)插入集合中 db.collectio…

【射频IC进阶实践教程】2.6 LNA版图设计及DRC/LVS验证

射频集成电路的版图设计非常关键,他对寄生参数非常敏感,需要使其最小化。还需要注意相互耦合的方式本次课程主要介绍射频IC的一些相关布局和连线方面的考虑。 一、版图设计 1. 版图的元件布局 首先打开对应的原理图 点击进行版图设计 由于已经有做好的…

go语言的sdk项目搭建与git 操作标签tag并推送至远程仓库

在搭建 SDK 项目并结合 Git 操作标签(Tag)时,通常会涉及项目初始化、版本管理、Git 标签的创建与管理等内容。以下是一个完整的步骤指南,帮助您搭建 SDK 项目并学习如何使用 Git 标签。 ### 1. **搭建 SDK 项目** 首先&#xff…

超融合承载 PostgreSQL 数据库和 AI 系统的性能评测|金融行业实践

随着人工智能技术的日渐成熟,不少金融用户也开发了自己的 AI 应用系统,协助实际业务中诸如文字识别、图像转换、信息录入等工作,提升业务效率。不过,AI 应用系统普遍依赖 GPU 提供强大算力,对底层存储的性能也有较高的…

数据结构代码归纳

线性表 线性表的顺序表示 定义与初始化 typedef struct SqList{ElemType data[MaxSize];//ElemType *data 开动态数组 int length; }Sqlist; void InitList(SqList &L){L.length0;//若静态数组//若动态数组 //L.data(ElemType*)malloc(sizeof(ElemType)*MaxSize); } …

华为的USG6000为什么不能ping通

前言: 防火墙usg6000v的镜像 链接: https://pan.baidu.com/s/1uLRk0-hnHRTLYLx1Pnplow?pwdtymp 提取码: tymp 看了好多毒文章,感觉写作业更有意思,可以了解新的知识 内容: 首先看毒文章是这样说的,华为的防火墙是…

“量子跃迁与数据织网:深入探索K最近邻算法在高维空间中的优化路径、神经网络融合技术及未来机器学习生态系统的构建“

🎼个人主页:【Y小夜】 😎作者简介:一位双非学校的大二学生,编程爱好者, 专注于基础和实战分享,欢迎私信咨询! 🎆入门专栏:🎇【MySQL&#xff0…

VTK编程指南<三>:基于VTK入门程序解析来理解VTK基础知识

1、VTK入门程序 下面是一个完整的Vtk入门程序&#xff0c;我们基于这个程序来对VTK的基本知识进行一个初步了解。 #include <iostream>#include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL2);// VTK was built with vtkRenderingOpenGL2 VTK_MODULE_INI…