数学建模:CRITIC赋权法

这篇具有很好参考价值的文章主要介绍了数学建模:CRITIC赋权法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🔆 文章首发于我的个人博客:欢迎大佬们来逛逛

CRITIC赋权法

算法流程

  1. 构建原始数据矩阵 X X X,他是一个 m ∗ n m * n mn 的矩阵, m m m 表示评价对象个数, n n n 表示指标个数
  2. 对原始数据矩阵进行正向化处理
  3. 计算矩阵的变异性,即计算矩阵的**标准差:**得到的 S i S_i Si 表示 第 i i i 个指标的标准差

{ x ˉ j   =   1 n   ∑ i = 1 n x i j S j   = ∑ i = 1 n ( x i j   − x ˉ j   ) 2 n − 1 \left\{\begin{array}{rcl}\mathrm{\bar x_j~=~\frac1n~\sum_{i=1}^nx_{ij}}\\\\\mathrm{S_j~=\sqrt{\frac{\sum_{i=1}^n\left(x_{ij}~-\bar x_j~\right)^2}{n-1}}}\end{array}\right. xˉj = n1 i=1nxijSj =n1i=1n(xij xˉj )2

  1. 描述指标的冲突性,首先计算指标之间两两的相关系数矩阵,然后计算指标的冲突性
    1. 求相关系数矩阵可以直接调用matlab的corr函数

R j   = ∑ i = 1 n ( 1 − r i j ) \mathrm{R_j~=\sum_{i=1}^n(1-r_{ij})} Rj =i=1n(1rij)

  1. 计算指标的信息承重量

C j   = S j   ∑ i = 1 n   ( 1 − r i j   ) = S j   × R j \mathrm{C_j~=S_j~\sum_{i=1}^n~(1-r_{ij}~)=S_j~\times R_j} Cj =Sj i=1n (1rij )=Sj ×Rj

  1. 计算每个指标的客观权重

W j = C j ∑ j = 1 p C j \mathrm{W_j=\frac{C_j}{\sum_{j=1}^pC_j}} Wj=j=1pCjCj文章来源地址https://www.toymoban.com/news/detail-681584.html


代码实现

%%对比性
function [Score,w]=mfunc_CRITIC(data1)
    % CRITIC方法:求解每个指标对应的客观权重算法
    % paramts: 
    %      data1: 原始数据矩阵,(m,n) m为评价对象,n为评价指标
    % returns:
    %      Score:每个评价对象的综合得分
    %      w: 所有指标的客观权重

    % 计算标准差
    STD=std(data1);
    %%矛盾性
    r=corr(data1);%计算指标间的相关系数
    f=sum(1-r);
    %%信息承载量
    c=STD.*f;
    %计算所有指标的权重
    w=c/sum(c);
    %计算得分
    [m,~]=size(data1);
    data= data1 ./ repmat(sum(data1.*data1) .^ 0.5, m, 1); %矩阵归一化
    % data=mapminmax(data1',0.002,1);%标准化到0.002-1区间
    % data=data';
    s=data*w';
    Score=100*s/max(s);
end

到了这里,关于数学建模:CRITIC赋权法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数学建模】《实战数学建模:例题与讲解》第二讲-线性规划(含Matlab代码)

    如果这篇文章对你有帮助,欢迎点赞与收藏~ 线性规划(Linear Programming,LP)是一种在数学规划领域中应用广泛的最优化问题解决方法。其基本思想是在一系列约束条件下,通过建立线性数学模型来描述目标函数,以求得使目标函数最大或最小的决策变量值。线性规划在运筹学

    2024年02月04日
    浏览(53)
  • 【数学建模】《实战数学建模:例题与讲解》第四讲-插值与拟合(含Matlab代码)

    如果这篇文章对你有帮助,欢迎点赞与收藏~ 在实际问题中,对于给定的函数 y = f(x) ,通常通过实验观测在某个区间 [a, b] 上一系列点 x_i 上的函数值 y_i = f(x_i) 得到。当需要在这些观测点 x_0, x_1, ..., x_n 之间的某些点 x 上估计函数值时,插值法和拟合是两种常用的数学方法。

    2024年02月05日
    浏览(55)
  • 数学建模------MATLAB学习使用

    多项式就是使用行向量分别表示前面的系数,这个需要按照一定的顺序,而且为0的系数不能够省略,按照从高到低的顺序进行表示; 我们接下来演示一下如何求多项式的根: 我们首先来认识一下求多项式的根的函数roots 接下来我们哪一个最高次为5的多项式举例: 这个方程

    2024年03月27日
    浏览(61)
  • 数学建模实战Matlab绘图

    二维曲线、散点图 绘图命令: plot( x,y,’line specifiers’,’ PropertyName ’, PropertyValue ) 例子:绘图表示年收入与年份的关系 ‘--r*’:-- 设置线型; r: 设置颜色为红色; * 节点型号 ‘ linewidth ’:设置线宽;‘ markersize ’ :节点大小 常用命令: hold on(off):在一张图上持续绘图

    2024年01月21日
    浏览(48)
  • Matlab数学建模实验题

    (1)用起泡法对10个数由小到大排序.即将相邻两个数比较,将小的调到前头。 (2)有一个4×5矩阵,编程求出其最大值及其所处的位置. (3)编程求 (4)一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下.求它在第10次落地时,共经过多少米?第10次反弹有多高? (

    2024年02月11日
    浏览(55)
  • 数学建模之MATLAB使用

    我们都知道MATLAB里面存在着数值计算和符号计算,但是两者之间到底是怎样的呢? 举一个很简单的例子,我们在高等数学里面的微积分学习时经常求不定积分,也就是原函数,这个过程实际上进行的就是符号运算,我们通过对一些变量字符x等等的运算,最后得出一个表达式

    2024年04月09日
    浏览(57)
  • 数学建模-插值算法(Matlab)

    注意:代码文件仅供参考,一定不要直接用于自己的数模论文中 国赛对于论文的查重要求非常严格,代码雷同也算作抄袭 如何修改代码避免查重的方法:https://www.bilibili.com/video/av59423231   //清风数学建模 简单来说是根据已知点进行线性数据预测,但数据太少需要通过数学方

    2023年04月26日
    浏览(58)
  • 数学建模——matlab基本使用

    清除工作区:clear。 清屏:clc。 圆周率表示:pi。 lnx代码化:log(x)。 e^x代码化:exp(x) x代表次数。 sin(x):sin(x);cos(x):cos(x);tan(x):tan(x)  arcsin(x):asin(x);arccos(x):acos(x);arctan(x):atan(x). .*与*的区别:.*代表进行矩阵的数值运算 *代表进行矩阵的运算。(matlab的基本操作对象是矩阵)。

    2024年02月07日
    浏览(44)
  • 数学建模-MATLAB三维作图

    导出图片用无压缩tif会更清晰 帮助文档:doc 函数名 新建实时脚本或右键文件转换为实时脚本 实时编辑器-全部运行-内嵌显示 保存为PDF

    2024年02月15日
    浏览(45)
  • 数学建模 | MATLAB数据建模方法--机器学习方法

    近年来,全国赛的题目中,多多少少都有些数据,而且数据量总体来说呈不断增加的趋势, 这是由于在科研界和工业界已积累了比较丰富的数据,伴随大数据概念的兴起及机器学习技术的发展, 这些数据需要转化成更有意义的知识或模型。 所以在建模比赛中, 只要数据量还

    2024年02月03日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包