评价模型:CRITIC客观赋权法

简介: 评价模型:CRITIC客观赋权法

1.算法原理介绍

  CRITIC方法是一种客观权重赋权法,其基本思路是确定指标的客观权数以两个基本概念为基础。一是对比强度,它表示同一指标各个评价方案取值差距的大小,以标准差的形式来表现。二是评价指标之间的冲突性,指标之间的冲突性是以指标之间的相关性为基础,如两个指标之间具有较强的正相关,说明两个指标冲突性较低。

  CRITIC方法的主要原理是通过对比强度和指标之间的冲突性来确定指标的客观权数,从而实现对评价方案的客观权重赋值。该方法适用于判断数据稳定性,并且适合分析指标或因素之间有着一定的关联的数据。

2.算法步骤

image.png

2.2 计算信息承载量

image.png
2.3 计算权重和得分
image.png
3.案例分析
假设你想购买一台新电视,考虑了以下指标:

  • 屏幕尺寸(英寸)——正向指标:尺寸越大,观看体验可能越好。
  • 价格(美元)——负向指标:价格越高,对于购买者来说可能越不吸引人。
  • 电视的能源效率(每年的电量消耗,以kWh为单位)—— 负向指标:消耗的电量越多,运行成本越高。
  • 用户评分(5星制中的星数) ——正向指标:评分越高,产品质量可能越好。
    具体数据如下表所示:
屏幕尺寸 价格 能源效率 用户评分
电视A 50 500 75 4.5
电视B 55 650 80 4.8
电视C 65 800 120 4.2
电视D 45 450 65 4.0
电视E 60 700 90 4.6

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

% 电视决策矩阵
decision_matrix = [
    50, 500, 75, 4.5;  % 电视A
    55, 650, 80, 4.8;  % 电视B
    65, 800, 120, 4.2; % 电视C
    45, 450, 65, 4.0;  % 电视D
    60, 700, 90, 4.6;  % 电视E
];
%数据标准化处理
for i=2:3
    decision_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;  % 电视A
    55, 650, 80, 4.8;  % 电视B
    65, 800, 120, 4.2; % 电视C
    45, 450, 65, 4.0;  % 电视D
    60, 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:n
    conflict(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;  % 电视A
    55, 650, 80, 4.8;  % 电视B
    65, 800, 120, 4.2; % 电视C
    45, 450, 65, 4.0;  % 电视D
    60, 700, 90, 4.6;  % 电视E
];
%数据标准化处理
for i=2:3
    decision_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:n
    conflict(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


目录
相关文章
|
机器学习/深度学习 数据采集 人工智能
Machine Learning机器学习之贝叶斯网络(BayesianNetwork)
Machine Learning机器学习之贝叶斯网络(BayesianNetwork)
|
定位技术
ArcGIS地形起伏度+地形粗糙度+地表切割深度+高程变异系数提取
ArcGIS地形起伏度+地形粗糙度+地表切割深度+高程变异系数提取
18151 0
|
11月前
|
存储 人工智能 搜索推荐
如何用大模型+RAG 给宠物做一个 AI 健康助手?——阿里云 AI 搜索开放平台
本文分享了如何利用阿里云 AI 搜索开放平台,基于 LLM+RAG 的系统框架,构建“宠物医院AI助手”的实践过程。
975 14
|
算法 数据挖掘 调度
【调度算法】NSGA III(1)
【调度算法】NSGA III
2370 0
技术经验解读:不知道怎样计算权重?告诉你8种确定权重方法
技术经验解读:不知道怎样计算权重?告诉你8种确定权重方法
|
人工智能 算法 数据可视化
DBSCAN密度聚类算法(理论+图解+python代码)
DBSCAN密度聚类算法(理论+图解+python代码)
7937 1
|
算法 Python
群智能算法:【WOA】鲸鱼优化算法详细解读
本文详细解读了鲸鱼优化算法(WOA),这是一种受鲸鱼捕食行为启发的新兴群体智能优化算法,具有强大的全局搜索能力和快速收敛速度。文章分为五个部分,分别介绍了引言、算法原理、主要步骤、特点及Python代码实现。通过模拟鲸鱼的捕食行为,该算法能够在复杂的优化问题中找到全局最优解。
|
机器学习/深度学习 人工智能 PyTorch
【深度学习】使用PyTorch构建神经网络:深度学习实战指南
PyTorch是一个开源的Python机器学习库,特别专注于深度学习领域。它由Facebook的AI研究团队开发并维护,因其灵活的架构、动态计算图以及在科研和工业界的广泛支持而受到青睐。PyTorch提供了强大的GPU加速能力,使得在处理大规模数据集和复杂模型时效率极高。
460 59
|
敏捷开发 测试技术
开发模型(瀑布、螺旋、scrum) 和 测试模型(V、W)、增量和迭代、敏捷(思想)及敏捷开发 scrum
文章详细介绍了软件开发过程中的不同开发模型(瀑布、螺旋、Scrum)和测试模型(V模型、W模型),以及增量和迭代的概念,最后阐述了敏捷思想及其在敏捷开发(如Scrum)中的应用。
2015 0
开发模型(瀑布、螺旋、scrum) 和 测试模型(V、W)、增量和迭代、敏捷(思想)及敏捷开发 scrum

热门文章

最新文章