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

评价模型:CRITIC客观赋权法

目录

    • 1.算法原理介绍
    • 2.算法步骤
      • 2.1 数据标准化
      • 2.2 计算信息承载量
      • 2.3 计算权重和得分
    • 3.案例分析


1.算法原理介绍

  CRITIC方法是一种客观权重赋权法,其基本思路是确定指标的客观权数以两个基本概念为基础。一是对比强度,它表示同一指标各个评价方案取值差距的大小,以标准差的形式来表现。二是评价指标之间的冲突性,指标之间的冲突性是以指标之间的相关性为基础,如两个指标之间具有较强的正相关,说明两个指标冲突性较低。
  CRITIC方法的主要原理是通过对比强度和指标之间的冲突性来确定指标的客观权数,从而实现对评价方案的客观权重赋值。该方法适用于判断数据稳定性,并且适合分析指标或因素之间有着一定的关联的数据。

2.算法步骤

2.1 数据标准化

  设有 m m m个待评对象, n n n个评价指标,可以构成数据矩阵 X = ( x i j ) m × n X=(x_{ij})_{m\times n} X=(xij)m×n,设数据矩阵内元素经过标准化处理过后的元素为 x i j ′ x^{'}_{ij} xij

  • 对于正向指标: x i j ′ = x i j − min ⁡ ( x j ) max ⁡ ( x j ) − min ⁡ ( x j ) x_{i j}^{\prime}=\frac{x_{i j}-\min \left(x_{j}\right)}{\max \left(x_{j}\right)-\min \left(x_{j}\right)} xij=max(xj)min(xj)xijmin(xj)
  • 对于负向指标: x i j ′ = max ⁡ ( x j ) − x i j max ⁡ ( x j ) − min ⁡ ( x j ) x_{i j}^{\prime}=\frac{\max \left(x_{j}\right)-x_{i j}}{\max \left(x_{j}\right)-\min \left(x_{j}\right)} xij=max(xj)min(xj)max(xj)xij

2.2 计算信息承载量

  • 首先计算第 j j j项指标的对比强度: σ j = ∑ i = 1 m ( x i j ′ − x ˉ j ′ ) m − 1 \sigma_{j}=\sqrt{\frac{\sum_{i=1}^{m}\left(x_{i j}^{\prime}-\bar{x}_{j}^{\prime}\right)}{m-1}} σj=m1i=1m(xijxˉj)

  • 然后计算评价指标之间的冲突性
    冲突性反映的是不同指标之间的相关程度,若呈现显著正相关性,则冲突性数值越小。设指标𝑗与其余指标矛盾性大小为 f j f_j fj,则 f j = ∑ i = 1 m ( 1 − r i j ) f_{j}=\sum_{i=1}^{m}\left(1-r_{i j}\right) fj=i=1m(1rij)
    其中 r i j r_{ij} rij表示指标 i i i与指标 j j j之间的相关系数,这里使用的是皮尔逊相关系数。

  • 最后计算信息承载量 C j = σ j f j C_{j}=\sigma_{j} f_{j} Cj=σjfj

    2.3 计算权重和得分

    计算权重: w j = C j ∑ j = 1 n C j w_{j}=\frac{C_{j}}{\sum_{j=1}^{n} C_{j}} wj=j=1nCjCj
    可见信息承载量越大权重越大。
    计算得分: S i = ∑ j = 1 n w j x i j ′ S_{i}=\sum_{j=1}^{n} w_{j} x_{i j}^{\prime} Si=j=1nwjxij

    3.案例分析

    假设你想购买一台新电视,考虑了以下指标:

  • 屏幕尺寸(英寸)——正向指标:尺寸越大,观看体验可能越好。

  • 价格(美元)——负向指标:价格越高,对于购买者来说可能越不吸引人。

  • 电视的能源效率(每年的电量消耗,以kWh为单位)—— 负向指标:消耗的电量越多,运行成本越高。

  • 用户评分(5星制中的星数) ——正向指标:评分越高,产品质量可能越好。
    具体数据如下表所示:

屏幕尺寸价格能源效率用户评分
电视A50500754.5
电视B55650804.8
电视C658001204.2
电视D45450654.0
电视E60700904.6

首先对数据进行标准化处理:

% 电视决策矩阵
decision_matrix = [50, 500, 75, 4.5;  % 电视A55, 650, 80, 4.8;  % 电视B65, 800, 120, 4.2; % 电视C45, 450, 65, 4.0;  % 电视D60, 700, 90, 4.6;  % 电视E
];
%数据标准化处理
for i=2:3decision_matrix(:, i) = (max(decision_matrix(:, i)) - decision_matrix(:, i))/(max(decision_matrix(:, i)) - min(decision_matrix(:, i)))
end
for i=[1,4]decision_matrix(:, i) = (decision_matrix(:, i)-min(decision_matrix(:, i)))/(max(decision_matrix(:, i)) - min(decision_matrix(:, i)))
end
% 数据标准化
norm_matrix = zscore(decision_matrix)

或者:

% 电视决策矩阵
decision_matrix = [50, 500, 75, 4.5;  % 电视A55, 650, 80, 4.8;  % 电视B65, 800, 120, 4.2; % 电视C45, 450, 65, 4.0;  % 电视D60, 700, 90, 4.6;  % 电视E
];
% 对负向指标进行处理,将其转换为正向指标
decision_matrix(:, 2) = max(decision_matrix(:, 2)) + 1 - decision_matrix(:, 2)
decision_matrix(:, 3) = max(decision_matrix(:, 3)) + 1 - decision_matrix(:, 3)
% 数据标准化
norm_matrix = zscore(decision_matrix)

标准化结果:
在这里插入图片描述然后再根据算法步骤计算权重:

% 计算标准间的相关系数
R = corrcoef(norm_matrix);% 确定冲突度和信息量
n = size(norm_matrix, 2); % 标准的数量
conflict = zeros(1, n);
for i = 1:nconflict(i) = std(norm_matrix(:, i)) * (1 - sum(R(i, :)) / (n - 1));
end% 计算权重
weights = conflict / sum(conflict);% 显示结果
disp('指标的权重:');
disp(weights);

计算结果:
在这里插入图片描述最后计算每个电视的得分:
在这里插入图片描述完整代码:

% 电视决策矩阵
decision_matrix = [50, 500, 75, 4.5;  % 电视A55, 650, 80, 4.8;  % 电视B65, 800, 120, 4.2; % 电视C45, 450, 65, 4.0;  % 电视D60, 700, 90, 4.6;  % 电视E
];
%数据标准化处理
for i=2:3decision_matrix(:, i) = (max(decision_matrix(:, i)) - decision_matrix(:, i))/(max(decision_matrix(:, i)) - min(decision_matrix(:, i)))
end
for i=[1,4]decision_matrix(:, i) = (decision_matrix(:, i)-min(decision_matrix(:, i)))/(max(decision_matrix(:, i)) - min(decision_matrix(:, i)))
end% 对负向指标进行处理,将其转换为正向指标
% decision_matrix(:, 2) = max(decision_matrix(:, 2)) + 1 - decision_matrix(:, 2)
% decision_matrix(:, 3) = max(decision_matrix(:, 3)) + 1 - decision_matrix(:, 3)
% 数据标准化
norm_matrix = zscore(decision_matrix)% 计算标准间的相关系数
R = corrcoef(norm_matrix);% 确定冲突度和信息量
n = size(norm_matrix, 2); % 标准的数量
conflict = zeros(1, n);
for i = 1:nconflict(i) = std(norm_matrix(:, i)) * (1 - sum(R(i, :)) / (n - 1));
end% 计算权重
weights = conflict / sum(conflict);% 显示结果
disp('指标的权重:');
disp(weights);% 根据标准化的决策矩阵和权重计算每台电视的得分
scores = norm_matrix * weights';% 显示每台电视的得分
disp('每台电视的得分:');
for i = 1:size(scores, 1)fprintf('电视%d 的得分: %.2f\n', i, scores(i));
end

相关文章:

评价模型:CRITIC客观赋权法

目录 1.算法原理介绍2.算法步骤2.1 数据标准化2.2 计算信息承载量2.3 计算权重和得分 3.案例分析 1.算法原理介绍 CRITIC方法是一种客观权重赋权法,其基本思路是确定指标的客观权数以两个基本概念为基础。一是对比强度,它表示同一指标各个评价方案取值差…...

两个Tomcat插件配置不同端口,session冲突,同时登录被挤下线问题的解决

如果是配置了两个Tomcat的插件&#xff0c;在同一ip有两个需要同时登录的项目&#xff0c;可以在其中一个web项目的web.xml文件里添加session命名的配置&#xff0c;如下&#xff1a; <!--配置不同的session&#xff0c;避免管理端和手机端两个同时登录被挤下线--><se…...

Mybatis中执行Sql的执行过程

MyBatis中执行SQL的过程可以分为以下几个步骤&#xff1a; 解析配置文件&#xff1a;在运行时&#xff0c;MyBatis会加载并解析配置文件&#xff08;通常为mybatis-config.xml&#xff09;&#xff0c;获取数据库连接信息、映射文件等。 创建SqlSessionFactory&#xff1a;MyB…...

IEEE Standard for SystemVerilog—Chapter 25.7 Tasks and functions in interfaces

子例程&#xff08;任务和函数&#xff09;可以在接口中定义&#xff0c;也可以在连接的一个或多个模块中定义。这允许更抽象的建模级别。例如&#xff0c;“读”和“写”可以定义为任务&#xff0c;而不需要引用任何连线&#xff0c;主模块只能调用这些任务。在modport中&…...

一台服务器最大能支持多少条 TCP 连接

文章目录 1. 一台服务器最大能打开的文件数1.1 限制参数1.2 调整服务器能打开的最大文件数示例 2. 一台服务器最大能支持多少连接3. 一台客户端机器最多能发起多少条连接4. 其他5. 相关实际问题5.1 "too many open files" 报错是怎么回事&#xff0c;该如何解决5.2 一…...

Qt重定向QDebug,Qt/C++开源作品39-日志输出增强版V2022

Qt重定向QDebug&#xff0c;自定义一个简易的日志管理类 Chapter1 Qt重定向QDebug&#xff0c;自定义一个简易的日志管理类0.前言1.最简单的操作运行结果2.实现一个简易的日志管理类 Chapter2 Qt::Qt Log日志模块Qt Log日志模块官方解释官方Demo思路 Chapter3 QT日志模块的个性…...

linux入门---多线程的控制

目录标题 线程库pthread_create如何一次性创建多个线程线程的终止线程的等待线程取消分离线程如何看待其他语言支持的多线程线程id的本质线程的局部存储线程的封装 线程库 要想控制线程就得使用原生线程库也可以将其称为pthread库&#xff0c;这个库是遵守posix标准的&#xf…...

基于android的 rk3399 同时支持多个USB摄像头

基于android的 rk3399 同时支持多个USB摄像头 一、前文二、CameraHal_Module.h三、CameraHal_Module.cpp四、编译&烧录Image五、App验证 一、前文 Android系统默认支持2个摄像头&#xff0c;一个前置摄像头&#xff0c;一个后置摄像头 需要支持数量更多的摄像头&#xff0…...

【Qt之控件QTreeView】设置单元格高度、设置图标尺寸

设置列宽 设置高度 自定义代理 继承QItemDelegate&#xff0c;实现sizeHint ()方法&#xff0c;设置自定义委托。 class itemDelegate : public QItemDelegate {Q_OBJECTpublic:explicit itemDelegate(QObject *parent 0) : QItemDelegate(parent){}~itemDelegate(){}virtua…...

力扣42.接雨水(java,暴力法、前缀和解法)

Problem: 42. 接雨水 文章目录 思路解题方法复杂度Code 思路 要能接住雨水&#xff0c;感性的认知就是要形成一个“下凹区域”&#xff0c;则此时我们就要比较当前柱子和其左右柱子高度的关系&#xff0c;易得一个关键的式子&#xff1a;当前小区域的积水 min&#xff08;当前…...

hdlbits系列verilog解答(移位寄存器)-23

文章目录 一、问题描述二、verilog源码三、仿真结果 一、问题描述 您将获得一个具有两个输入和一个输出的模块 my_dff &#xff08;实现 D 触发器&#xff09;。实例化其中的三个&#xff0c;然后将它们链接在一起以形成长度为 3 的移位寄存器。端口 clk 需要连接到所有实例。…...

Linux命令记载

服务器基本操作 SSH登录服务器 ssh -p 端口号 用户名服务器IP 输入密码SFTP上传文件 #输入密码 #使用get命令下载远程服务器的文件&#xff0c;比如/usr/test.txt sftp>get /usr/test.txt#使用put命令上传本地文件到服务器&#xff0c;比如/usr/test1.txt sftp> put /…...

Flume 快速入门【概述、安装、拦截器】

文章目录 什么是 Flume&#xff1f;Flume 组成Flume 安装Flume 配置任务文件应用示例启动 Flume 采集任务 Flume 拦截器编写 Flume 拦截器拦截器应用 什么是 Flume&#xff1f; Flume 是一个开源的数据采集工具&#xff0c;最初由 Apache 软件基金会开发和维护。它的主要目的是…...

【pandas技巧】group by+agg+transform函数

目录 1. group by单个字段单个聚合 2. group by单个字段多个聚合 3. group by多个字段单个聚合 4. group by多个字段多个聚合 5. transform函数 studentsgradesexscoremoney0小狗小学部female958441小猫小学部male938362小鸭初中部male838543小兔小学部female909314小花小…...

一文解读WordPress网站的各类缓存-老白博客

缓存是一种重要的WordPress优化手段&#xff0c;用于提高网站的性能和加载速度。减少计算量&#xff0c;有效提升响应速度&#xff0c;让有限的资源服务更多的用户。本文老白博客便从自己的使用简单给大家介绍下WordPress的缓存&#xff0c;包括 站点缓存&#xff08;Page Cach…...

从零开始:开发直播商城APP的技术指南

时下&#xff0c;直播商城APP已经成了线上购物、电子商务的核心组成&#xff0c;本文将为您提供一个全面的技术指南&#xff0c;帮助您从零开始开发一个直播商城APP。我们将涵盖所有关键方面&#xff0c;包括技术堆栈、功能模块、用户体验和安全性。 第一部分&#xff1a;技术…...

GZ035 5G组网与运维赛题第6套

2023年全国职业院校技能大赛 GZ035 5G组网与运维赛项&#xff08;高职组&#xff09; 赛题第6套 一、竞赛须知 1.竞赛内容分布 竞赛模块1--5G公共网络规划部署与开通&#xff08;35分&#xff09; 子任务1&#xff1a;5G公共网络部署与调试&#xff08;15分&#xff09; …...

分类预测 | Matlab实现KOA-CNN-GRU-selfAttention多特征分类预测(自注意力机制)

分类预测 | Matlab实现KOA-CNN-GRU-selfAttention多特征分类预测&#xff08;自注意力机制&#xff09; 目录 分类预测 | Matlab实现KOA-CNN-GRU-selfAttention多特征分类预测&#xff08;自注意力机制&#xff09;分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matla…...

【Qt】QString怎么转成int

2023年10月29日&#xff0c;周日晚上 第一种方法 这种方法会尝试将 QString 对象转换为 int 类型。如果转换成功&#xff0c;将返回转换后的 int 值&#xff1b;如果转换失败&#xff08;例如&#xff0c;字符串中包含非数字字符&#xff09;&#xff0c;则返回 0。 QString…...

ubuntu 22.04 安装python-pcl

ubuntu 22.04 安装python-pcl 安装python-pcl修复bug 由于python-pcl库基本已经停止维护&#xff0c;所以Ubuntu22.04 在使用pip install python-pcl安装的时候会出现版本不适配的原因 安装python-pcl 使用Ubuntu22系统自带python3安装python-pcl&#xff0c;随后将下载的包拷…...

Web后端基础(基础知识)

BS架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器架构模式。客户端只需要浏览器&#xff0c;应用程序的逻辑和数据都存储在服务端。 优点&#xff1a;维护方便缺点&#xff1a;体验一般 CS架构&#xff1a;Client/Server&#xff0c;客户端/服务器架构模式。需要单独…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG

TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码&#xff1a;HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...

基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究

摘要&#xff1a;在消费市场竞争日益激烈的当下&#xff0c;传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序&#xff0c;探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式&#xff0c;分析沉浸式体验的优势与价值…...

SQL注入篇-sqlmap的配置和使用

在之前的皮卡丘靶场第五期SQL注入的内容中我们谈到了sqlmap&#xff0c;但是由于很多朋友看不了解命令行格式&#xff0c;所以是纯手动获取数据库信息的 接下来我们就用sqlmap来进行皮卡丘靶场的sql注入学习&#xff0c;链接&#xff1a;https://wwhc.lanzoue.com/ifJY32ybh6vc…...

接口 RESTful 中的超媒体:REST 架构的灵魂驱动

在 RESTful 架构中&#xff0c;** 超媒体&#xff08;Hypermedia&#xff09;** 是一个核心概念&#xff0c;它体现了 REST 的 “表述性状态转移&#xff08;Representational State Transfer&#xff09;” 的本质&#xff0c;也是区分 “真 RESTful API” 与 “伪 RESTful AP…...

深入浅出JavaScript中的ArrayBuffer:二进制数据的“瑞士军刀”

深入浅出JavaScript中的ArrayBuffer&#xff1a;二进制数据的“瑞士军刀” 在JavaScript中&#xff0c;我们经常需要处理文本、数组、对象等数据类型。但当我们需要处理文件上传、图像处理、网络通信等场景时&#xff0c;单纯依赖字符串或数组就显得力不从心了。这时&#xff…...

运行vue项目报错 errors and 0 warnings potentially fixable with the `--fix` option.

报错 找到package.json文件 找到这个修改成 "lint": "eslint --fix --ext .js,.vue src" 为elsint有配置结尾换行符&#xff0c;最后运行&#xff1a;npm run lint --fix...

NineData数据库DevOps功能全面支持百度智能云向量数据库 VectorDB,助力企业 AI 应用高效落地

NineData 的数据库 DevOps 解决方案已完成对百度智能云向量数据库 VectorDB 的全链路适配&#xff0c;成为国内首批提供 VectorDB 原生操作能力的服务商。此次合作聚焦 AI 开发核心场景&#xff0c;通过标准化 SQL 工作台与细粒度权限管控两大能力&#xff0c;助力企业安全高效…...