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

Topsis法模型(评价类问题)

目录

本文章内容参考:

一. 概念

二. 特点和适用范围

三. 实现步骤

四. 代码实现


本文章内容参考:

TOPSIS法模型讲解(附matlab和python代码) 【数学建模快速入门】数模加油站 江北_哔哩哔哩_bilibili

一. 概念

TOPSIS(Technique for Order Preference by Similarity to an Ideal Solution)法是一种多准则决策分析方法,用于从有限的备选方案中选择最佳方案。该方法的核心思想是通过比较各备选方案与理想解负理想解距离,来评价和排序各方案的优劣。

理想解 :设想的最优的解(方案),它的各个属性值都达到各备选方案中的最好的值;
负理想解 :设想的最劣的解(方案),它的各个属性值都达到各备选方案中的最坏的值。

方案排序的规则是把各备选方案与理想解和负理想解做比较,若其中有一个方案最接近理想解,而同时又远离负理想解,则该方案是备选方案中最好的方案。TOPSIS通过最接近理想解且最远离负理想解来确定最优选择

二. 特点和适用范围

适用于多准则评价场景,可以根据实际需要赋予各准则不同的权重,增强方法的灵活性。在市场研究中用于分析和评估市场竞争力、客户满意度等,通过多个评价指标进行比较。

三. 实现步骤

1. 原始矩阵正向化

矩阵正向化的过程就是把后三种指标类型通过数值转换,转化极大型指标的指标特点,也即其值越大越好。

转化方式如下公式:

{x}_i上面带个~的值的是原始矩阵正向化后指标转换后对应的值,极大型指标无需转换。

一个转换过程的例子如下(其中颜值是极大型指标无需转换,脾气是极小型指标,身高是中间型指标,体重是区间型指标):

2. 正向化矩阵标准化

标准化的目的是为了消除不同指标的量纲影响,仅保留指标的基本特征,使得所有特征具有相同的权重。这样在计算距离(如欧氏距离)或相似性时,不会因为某个特征的数值范围过大而主导计算结果。

对其标准化的矩阵记为 R ,则 R 中的每一个元素为:

R_{ij} = \frac{x_{ij}}{\sqrt{\sum_{k=1}^{m} x_{kj}^2}}

上文提到标准化的目的是为了让所有特征先具有相同的权重,但在实际情况中,不同的指标对结果的影响程度必然是有所差异的,所有要建立更加符合现实情况的模型,我们还需要将标准化后的矩阵再给不同指标加上不同的权重,权重也有不同的计算方法,采用的权重确定方法有层次分析法、熵权法、Delphi法、对数最小二乘法等。

下图是正向化矩阵标准化的过程(没有加权重):

3. 距离计算

D_i^+ = \sqrt{\sum_{j=1}^{n} (R_{ij} - R_j^+)^2}

D_i^+ 表示方案 i 与理想解的距离。理想解是指在所有评价指标上都最优的假想解。

R_j^+ 表示理想解在第 j 个评价指标下该指标的最大值。

R_{ij} 表示加权标准化决策矩阵中的元素,表示第 i 个方案在第 j 个评价指标下的值。

n 表示指标的数量

D_i^- = \sqrt{\sum_{j=1}^{n} (R_{ij} - R_j^-)^2}

D_i^- 表示方案 i 与负理想解的距离。负理想解是指在所有评价指标上都最差的假想解。

R_j^- 表示理想解在第 j 个评价指标下该指标的最小值。

R_{ij} 表示加权标准化决策矩阵中的元素,表示第 i 个方案在第 j 个评价指标下的值。

n 表示指标的数量

4. 计算相对接近度并排序

C_i = \frac{D_i^-}{D_i^+ + D_i^-}

C_i 表示方案 i 的相对接近度,表示方案 i 相对于理想解的优越程度。

D_i^+D_i^- 含义与上一步骤相同,C_i 值越大,说明方案 i 越接近理想解,越优越。

随后按 C_i 的值进行排序以选取最优解。

四. 代码实现

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

相关文章:

  • HPA 与pod调度
  • jupyter下载
  • 蓝桥杯双周赛 第 16 场 小白入门赛 解题报告 | 珂学家 | 七夕娱乐场
  • [C++] 深入理解面向对象编程特性 : 继承
  • 汇昌联信科技做拼多多电商怎么引流?
  • 公网ip和私网ip的区别
  • 【开发踩坑】windows查看jvm gc信息
  • 时间序列预测 | CEEMDAN+CNN+Transformer多变量时间序列预测(Python)
  • vue3--实现vue2插件JSONPathPicker的路径获取功能
  • SuccBI+低代码文档中心 — 可视化分析(仪表板)(上)
  • P3156 【深基15.例1】询问学号
  • 详解Xilinx FPGA高速串行收发器GTX/GTP(5)--详解8B10B编解码
  • python 画多盘的写放大曲线方法
  • 计算机网络TCP/UDP知识点
  • JavaScript 文档元素获取
  • docker pull实现断点续传
  • 无字母数字webshell之命令执行
  • 华为OD笔试
  • HAProxy理论+实验
  • Spring Boot ⽇志
  • 最详细!教你学习haproxy七层代理
  • ElementUI 事件回调函数传参技巧与自定义参数应用
  • 优化Next的webpack配置
  • Q-Dir vs 传统文件管理器:为何开发者更偏爱这款神器?
  • 日常疑问小记录
  • Java Web —— 第四天(HTTP协议,Tomcat)
  • C++ list的基本使用
  • 云中韧性:Spring Cloud服务调用重试机制深度解析
  • 83.SAP ABAP从前台找字段所在表的两种方法整理笔记
  • docker为普通用户设置sudo权限