基于CRITIC-TOPSIS法的各地区评价

1.CRITIC-TOPSIS法原理

1.1 基本理论

        CRITIC-TOPSIS法是一种结合CRITIC(Criteria Importance Through Intercriteria Correlation)法和TOPSIS(Technique for Order Preference by Similarity to Ideal Solution)法的综合评价方法。该方法通过CRITIC法来确定评价指标的权重,再利用TOPSIS法计算各评价对象与理想解和负理想解的接近程度,从而实现对评价对象的排序和优选。这种方法结合了两种方法的优点,既能充分考虑指标之间的冲突性和相关性,又能直观反映评价对象之间的优劣关系。

1.2 CRITIC法原理

        CRITIC法是一种客观赋权方法,它根据评价指标的对比强度和指标之间的冲突性来确定指标的权重。具体步骤如下:

  1. 数据标准化:首先,需要对原始数据进行标准化处理,以消除不同指标之间的量纲差异。标准化公式如下:

x'_{ij} = \frac{x_{ij} - \min_{i} x_{ij}}{\max_{i} x_{ij} - \min_{i} x_{ij}}

其中,x'_{ij}是标准化后的数据,x_{ij}是原始数据,i代表评价对象,j代表评价指标。

        2.计算标准差:计算每个评价指标的标准差\sigma_j,以衡量指标的对比强度。标准差越大,说明该指标在不同评价对象之间的差异越大,权重也应相应提高。

\sigma_j = \sqrt{\frac{1}{m}\sum_{i=1}{m}(x'_{ij} - \bar{x}'_j)2}

其中,m是评价对象的数量,\bar{x}'_j是第j个评价指标的平均值。

        3.计算相关系数:计算各评价指标之间的相关系数r_{jk},以衡量指标之间的冲突性。相关系数绝对值越大,说明两个指标之间的冲突性越小,权重也应相应降低。

r_{jk} = \frac{\sum_{i=1}^{m}(x'_{ij} - \bar{x}'j)(x'_{ik} - \bar{x}'_k)}{\sqrt{\sum{i=1}^{m}(x'_{ij} - \bar{x}'_j)^2\sum{i=1}{m}(x'_{ik} - \bar{x}'_k)2}}

        4.计算信息量:信息量C_j等于对比强度(标准差)与冲突性(相关系数)的乘积,它综合反映了指标的重要性。

C_j = \sigma_j \sum_{k=1}^{n}|r_{jk}|

其中,n是评价指标的总数。

        5.确定权重:最后,对各评价指标的信息量进行归一化处理,得到各指标的权重w_j

w_j = \frac{C_j}{\sum_{j=1}^{n}C_j}

1.3 TOPSIS法原理

        TOPSIS法是一种基于与理想解接近程度进行排序的多属性决策方法。具体步骤如下:

  1. 构造加权标准化决策矩阵:将标准化后的数据矩阵与CRITIC法确定的权重相乘,得到加权标准化决策矩阵Z。

Z = [z_{ij}]_{m \times n}

其中,z_{ij} = w_j x'_{ij}

        2.确定理想解和负理想解:在加权标准化决策矩阵中,找出每一列的最大值和最小值,分别构成理想解Z+和负理想解Z-。

Z^+ = [\max_{i} z_{ij}]_{1 \times n}

Z^- = [\min_{i} z_{ij}]_{1 \times n}

        3.计算距离:计算各评价对象与理想解和负理想解的距离D_i+D_i-。通常采用欧氏距离来计算。

D_i+ = \sqrt{\sum_{j=1}{n}(z_{ij} - z_j+)2}

D_i- = \sqrt{\sum_{j=1}{n}(z_{ij} - z_j-)2}

        4.计算综合接近度:计算各评价对象的综合接近度C_i,它表示评价对象与理想解的接近程度。

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

        5.排序:根据综合接近度C_i对评价对象进行排序,综合接近度越大的评价对象排名越靠前。

对象进行排序。综合接近度越大的评价对象,其排名越靠前,表示该评价对象在所有评价对象中表现越好。

1.4 CRITIC-TOPSIS法原理

        CRITIC-TOPSIS法将CRITIC法和TOPSIS法相结合,首先使用CRITIC法确定各评价指标的权重,然后利用这些权重进行TOPSIS法的计算,从而得到各评价对象的综合排序。

        具体步骤如下:

  1. 数据预处理:对原始数据进行标准化处理,以消除不同指标之间的量纲差异。标准化公式如下:

其中,xij′​是标准化后的数据,xij​是原始数据。

        2.使用CRITIC法确定权重:按照前面介绍的CRITIC法步骤,计算各评价指标的权重w_{j}​。

        3.构造加权标准化决策矩阵:将标准化后的数据xij′​与权重wj​相乘,得到加权标准化决策矩阵Z。

        4.确定理想解和负理想解:根据加权标准化决策矩阵Z,确定理想解Z+和负理想解Z−。

        5.计算距离和综合接近度:按照TOPSIS法的步骤,计算各评价对象与理想解和负理想解的距离D_i+D_i-,以及综合接近度C_i

        6.排序:根据综合接近度C_i对评价对象进行排序,综合接近度越大的评价对象排名越靠前。

1.5 优缺点分析

        CRITIC-TOPSIS法结合了CRITIC法和TOPSIS法的优点,具有以下优点:

  1. 客观性:CRITIC法基于数据的客观属性确定权重,避免了主观因素的干扰;TOPSIS法则通过计算评价对象与理想解的接近程度进行排序,结果客观可靠。
  2. 灵活性:该方法可以处理多属性、多指标的评价问题,适用于各种复杂的评价场景。
  3. 可解释性:通过计算各评价指标的权重,可以清晰地了解各指标在综合评价中的重要性;通过计算综合接近度,可以直观地了解各评价对象的表现。

        然而,CRITIC-TOPSIS法也存在一些缺点:

  1. 敏感性:该方法对原始数据较为敏感,数据的微小变化可能导致结果发生较大变化。
  2. 权重确定方法:虽然CRITIC法是一种较为客观的权重确定方法,但它仅考虑了数据的客观属性,没有考虑决策者的主观偏好和实际需求。
1.6 结论

        CRITIC-TOPSIS法是一种有效的综合评价方法,它结合了CRITIC法和TOPSIS法的优点,能够客观、准确地评价多个对象在不同指标下的表现。在实际应用中,可以根据具体问题和需求选择合适的权重确定方法和排序方法,以获得更加准确和可靠的评价结果。

2.代码

数据集形式:数据与结果都不是绝对的准确,只是用来学习CRITIC-TOPSIS法。

图1

clc;clear;close all;	
load('T_25_Jun_2024_19_04_15.mat')	
test_data1=G_out_data.test_data1;	
zhibiao_label1=ones(1,size(test_data1,2));	
zhibiao_label=G_out_data.zhibiao_label;  %正向化指标设置	
if length(zhibiao_label)<length(zhibiao_label1)	
zhibiao_label=[zhibiao_label,zhibiao_label1(length(zhibiao_label)+1:size(test_data1,2))];	
end	
A_data1=jisuan(test_data1,zhibiao_label);  %正向化之后的矩阵	
[n,~]=size(A_data1);	
A_data =A_data1 ./ repmat(sum(A_data1.*A_data1) .^ 0.5, n, 1); %矩阵归一化	
symbol_label=G_out_data.symbol_label;	[~,quan]=CRITIC(A_data,symbol_label);	
score=TOPSIS(A_data,quan,symbol_label);	
disp('CRITIC-TOPSIS法')	
disp('评价得分')	
score=score'	
disp('CRITIC法 得到权重为:') 	
disp(quan) 	
Out_table(:,1)=cell2table(G_out_data.table_str);	
Out_table(:,2)=array2table(G_out_data.table_data);	
Out_table.Properties.VariableNames={'评价对象','评分'};	
disp(Out_table)	

        运行结果如下:数据与结果都不是绝对的准确,只是用来学习CRITIC-TOPSIS法。

地区评分
上海100.00 
广东92.62 
北京87.47 
江苏81.21 
浙江79.42 
山东77.76 
天津58.35 
河南53.08 
辽宁50.43 
河北47.56 
四川45.75 
福建43.13 
湖北39.52 
湖南39.26 
安徽35.10 
内蒙古32.27 
黑龙江30.14 
山西27.93 
吉林27.56 
广西27.34 
江西26.33 
云南25.35 
陕西24.90 
重庆24.53 
新疆18.88 
贵州18.46 
甘肃14.32 
宁夏13.69 
海南13.45 
青海10.59 
西藏6.41 

        简单绘制柱状图如图1所示:

图1 各地区排序

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

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

相关文章

深度学习语义分割算法之基础知识

文章目录 前言一、图像分割介绍1.语义分割2.实例分割3.全景分割 二、常见数据集格式1.PASCAL VOC2.MS COCO 三、语义分割结果四、语义分割常见评价指标1.Pixel Accuracy2.mean Accuracy3.mean IoU 五、语义分割标注工具结束语 &#x1f482; 个人主页:风间琉璃&#x1f91f; 版…

Python 入门 —— 描述器

Python 入门 —— 描述器 文章目录 Python 入门 —— 描述器描述器简单示例定制名称只读属性状态交互验证器类自定义验证器验证器的使用 对象关系映射 描述器 前面我们介绍了两种属性拦截的方式&#xff1a;特性&#xff08;property&#xff09;以及重载属性访问运算符&#…

更适合敏感口腔的护理牙刷

最近在用一款清九野小红盾舒敏牙刷&#xff0c;感觉它很适合牙龈敏感的人&#xff0c;让刷牙体验有了显著的提升。这款牙刷的柔软刷毛和精细设计让我的刷牙过程变得轻松愉快。它的内外圈双重植毛技术&#xff0c;在清洁牙齿的同时&#xff0c;还能深入牙缝&#xff0c;温和地去…

设计模式原则——单一职责原则(SPS)

设计模式原则 设计模式示例代码库地址&#xff1a; https://gitee.com/Jasonpupil/designPatterns 单一职责原则&#xff08;SPS&#xff09;&#xff1a; 又称单一功能原则&#xff0c;面向对象五个基本原则&#xff08;SOLID&#xff09;之一原则定义&#xff1a;一个类应…

linux启动jar包,提示jvm内存不足

出现场景 服务器内存还剩余很多&#xff0c;但是启动jar报内存不足 Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f66434f0000, 65536, 1) failed; error无法分配内存 (errno12) [thread 140076481570560 also had an error] # # Compiler re…

基于Docker的淘客返利平台部署

基于Docker的淘客返利平台部署 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;在本文中&#xff0c;我们将探讨如何利用Docker技术来部署一个淘客返利平台。Doc…

还能这样执行命令?命令执行绕过及防护规则研究

一、引言 我是渗透工程师->很多小伙伴在做攻防实战时发现有时在命令执行的payload中穿插单双引号命令也能执行成功&#xff0c;有时却又不行。那么到底在什么条件下用什么样的方式能实现对命令的切分呢&#xff1f;其中的原理又是如何&#xff1f;有没有其他绕过方式&#…

openlayers 轨迹回放(历史轨迹),实时轨迹

本篇介绍一下使用openlayers轨迹回放&#xff08;历史轨迹&#xff09;&#xff0c;实时轨迹 1 需求 轨迹回放&#xff08;历史轨迹&#xff09;实时轨迹 2 分析 主要是利用定时器&#xff0c;不断添加feature 轨迹回放&#xff08;历史轨迹&#xff09;&#xff0c;一般是…

Ubuntu 22.04 MySQL安装并设置远程访问

Ubuntu 22.04 LTS环境下 1 安装 # 更新软件包列表 sudo apt update# 查看可使用的安装包 sudo apt search mysql-server# 安装最新版本&#xff08;显示冲突装不了&#xff0c;可以先卸了再装&#xff09; sudo apt install -y mysql-server # 安装指定版本 sudo apt install…

rga_mm: RGA_MMU unsupported Memory larger than 4G!解决

目录 报错完整log如下:解决方案:报错完整log如下: [ 3668.824164] rga_mm: RGA_MMU unsupported Memory larger than 4G! [ 3668.824305] rga_mm: scheduler core[4] unsupported mm_flag[0x0]! [ 3668.824320] rga_mm: rga_mm_map_buffer map dma_buf err

如何有效地优化 Erlang 程序的内存使用,以应对大规模数据处理的需求?

要有效地优化Erlang程序的内存使用&#xff0c;以应对大规模数据处理的需求&#xff0c;可以考虑以下几个方面&#xff1a; 减少不必要的内存分配&#xff1a;避免过多的数据复制和不必要的数据结构创建。可以使用Erlang的二进制数据类型来避免数据复制&#xff0c;使用原子数据…

Linux环境下安装MySQL5.7.20(源码安装)

&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;本专栏主要发表mysql实战的文章&#xff0c;文章主要包括&#xff1a; 各版本数据库的安装、备份和恢复,性能优化等内容的学习。。 &#x1f4e3; ***如果需要观看配套视频的小伙伴们&#xff0c;请…

【Apache Doris】周FAQ集锦:第 8 期

【Apache Doris】周FAQ集锦&#xff1a;第 8 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目&#xff01; 在这个栏目中&#xff0c;每周将筛选社区反馈的热门问题和话题&#xff0c;重点回答并进行深入探讨。旨在为广大用户和…

MySQL集群如何实现读写分离

数据源配置&#xff1a;定义了主从数据库的连接池。读写分离规则&#xff1a;通过MasterSlaveRuleConfiguration定义了主从数据库的读写分离规则。负载均衡算法&#xff1a;定义了从数据库的负载均衡算法。创建ShardingDataSource&#xff1a;使用数据源和读写分离规则创建了Sh…

STM32学习-HAL库 定时器

这里先介绍一些HAL的一些库函数&#xff0c;HAL_XXX_Init()这种是外设初始化函数&#xff0c;一般是传入结构体。 HAL_XXX_MspInit()这种是外设硬件相关的初始化函数&#xff0c;包括GPIO,NVIC,CLOCK等&#xff0c;一般会在HAL_XXX_Init()中调用。HAL_XXX_IT()这是与外设中断相…

Scikit-learn:原理与使用指南

文章目录 1. Scikit-learn 的原理1.1 一致性API1.2 模块化和可扩展性1.3 高效性 2. Scikit-learn 的使用2.1 安装 Scikit-learn2.2 导入必要的库和数据2.3 训练模型2.4 预测和评估2.5 交叉验证和网格搜索 3. 总结 Scikit-learn 是 Python 中一个非常强大且易于使用的机器学习库…

【CSS】深入探讨 CSS 的 `calc()` 函数

深入探讨 CSS 的 calc() 函数 calc() 是一个 CSS 函数&#xff0c;用于在样式表中进行数学计算&#xff0c;从而动态地设置 CSS 属性值。它允许开发者在指定长度、百分比、数值等时&#xff0c;进行加减乘除运算。通过 calc() 函数&#xff0c;我们可以实现更灵活和响应式的设…

vue3项目使用@antv/g6实现可视化流程功能

文章目录 项目需求一、需要解决的问题二、初步使用1.动态数据-组件封装(解决拖拽会留下痕迹的问题&#xff0c;引用图片&#xff0c;在节点右上角渲染图标&#xff0c;实现&#xff0c;事现旋转动画&#xff0c;达到loading效果)2.文本太长&#xff0c;超出部分显示(...),如下函…

Fluent udf编译的一些注意事项

Fluent udf编译的一些注意事项 参考链接&#xff1a;1.fluent UDF编译环境处理_哔哩哔哩_bilibili 2.【觉兽课堂】ANSYS FLUENT UDF教学02&#xff1a;UDF语法及编写 小白入门必备_哔哩哔哩_bilibili #1 需要注意的内容 ##1.1 修改vs的路径 在fluent路径中&#xff0c;打开ud…

Golang笔记:使用serial包进行串口通讯

文章目录 目的使用入门总结 目的 串口是非常常用的一种电脑与设备交互的接口。这篇文章将介绍golang中相关功能的使用。 本文使用的包为 &#xff1a;go.bug.st/serial https://pkg.go.dev/go.bug.st/serial https://github.com/bugst/go-serial 另外还有一些常见的包如&…