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

数学建模·熵权法

熵权法

一种计算评价指标之间权重的方法。熵权法是一种客观的方法,没有主观性,比较可靠。

具体定义

熵权法的核心在于计算信息熵,信息熵反映了一个信息的紊乱程度,体现了信息的可靠性
在这里插入图片描述

具体步骤

Step1正向化处理

将所以评价指标转换为极大型,目的是将数据进一步转变为概率

  • 将极小型转换为极大型
    极小型是指评价指标越小越好
    在这里插入图片描述
  • 代码如下:注意矩阵X可以是列向量
function[res]=Min2Max(X)res=max(X)-X;
end

  • 将中间型转换为极大型

中间型是指评价指标越接近最佳值越好,其中最佳值是给出的
在这里插入图片描述

  • 代码如下
function[res]=Mid2Max(X,best)M=max(abs(X-best));res=1-abs(X-best)/M;
end

  • 将区间型转换为极大型

区间型是指评价指标在区间内最好,在区间外欠佳
在这里插入图片描述

  • 代码如下
function[res]=interval2Max(X,a,b)M=max(a-min(X),max(X)-b);for i=1:size(X)if X(i)>=a&&X(i)<=bX(i)=1;elseif X(i)<aX(i)=1-(a-X(i))/M;elseX(i)=1-(X(i)-b)/M;endendres=X;
end

Step2标准化

标准化是将每一列的每一个元素除以每一列的元素平方的求和
在这里插入图片描述
标准化的意义:消除计量单位不同造成的影响

概率矩阵

如果说正向化使每个数据是是不是好事的程度,这时候归一化就可以得到好事放生的概率
在这里插入图片描述

Step3利用信息熵计算权重集

注意信息熵的计算公式里有对数,所以应该适当修改概率矩阵值为0的项
这个公式本质上也是对每一列中所有元素按照公式求和,最后除以ln n归一化处理
在这里插入图片描述

主体代码

%% 读取数据
X=xlsread('blind date.xlsx');
disp("成功读取!")
%% 正向化
disp("现在进行正向化操作,请按照提示操作")
vec_col=input("请输入需要正向化的列数,以数组的形式输入\n");
for i=1:size(vec_col,2)%1是行数2是列数
flag = input(['第' num2str(vec_col(i)) '列是哪类数据(【1】:极小型 【2】:中间型 【3】:区间型),请输入序号:\n']);if flag==1X(:,vec_col(i))=Min2Max(X(:,vec_col(i)));elseif flag==2best=input("请你传入最佳值\n");X(:,vec_col(i))=Mid2Max(X(:,vec_col(i)),best);elsearr=input("请你输入区间的左右端点,以数组的形式\n");X(:,vec_col(i))=Interval2Max(X(:,vec_col(i)),arr(1),arr(2));end
end
disp("正向化完成!");%% 标准化
[n,m]=size(X);
Square_X=X.*X;
Sum_X=sum(Square_X).^0.5;
Stand_X=X./repmat(Sum_X,n,1);
disp("标准化完成!")
%% 概率矩阵P
P=Stand_X./repmat(sum(Stand_X),n,1);
for i=1:nfor j=1:mif P(i,j)==0P(i,j)=0.000001endend
end
H=sum(-P.*log(P));
e=H./log(n);
d=1-e;
d=d./sum(d);
disp("计算完成,下面是正向矩阵、标准矩阵和计算得出的权重矩阵");
disp(X);
disp(Stand_X);
disp(d);```
http://www.lryc.cn/news/398680.html

相关文章:

  • 开放开源开先河(一)
  • 美团收银Android一面凉经(2024)
  • 触发器练习
  • Hadoop-25 Sqoop迁移 增量数据导入 CDC 变化数据捕获 差量同步数据 触发器 快照 日志
  • Facebook社交平台的未来发展趋势分析
  • 构建Memcached帝国:分布式部署策略与实践指南
  • Arcgis横向图例设置
  • 26.7 Django单表操作
  • Android --- Kotlin学习之路:自己写一个SDK给别的APP用(暴漏一个接口,提供学生的身高数据)
  • 租用海外服务器需要考虑哪些因素
  • php将png转为jpg,可设置压缩率
  • 华为HCIP Datacom H12-821 卷37
  • 某某会员小程序后端性能优化
  • Docker:基础概念、架构与网络模式详解
  • 全国大学生数据建模比赛c题——基于蔬菜类商品的自动定价与补货决策的研究分析
  • 【漏洞复现】飞企互联-FE企业运营管理平台 uploadAttachmentServlet—文件上传漏洞
  • 基于深度学习的语言生成
  • Kafka Rebalance详解
  • 在 Markdown 编辑器中插入 空格 Space 和 空行 Enter
  • js逆向-webpack-python
  • Python精神病算法和自我认知异类数学模型
  • npm install 报错:PhantomJS not found on PATH
  • 【C++进阶学习】第六弹——set和map——体会用C++来构建二叉搜索树
  • sqlmap确定目标/实操
  • Java笔试|面试 —— 对多态性的理解
  • 从RL的专业角度解惑 instruct GPT的目标函数
  • location匹配的优先级和重定向
  • 观察矩阵(View Matrix)、投影矩阵(Projection Matrix)、视口矩阵(Window Matrix)及VPM矩阵及它们之间的关系
  • 谷粒商城学习笔记-19-快速开发-逆向生成所有微服务基本CRUD代码
  • 时序预测 | Matlab实现TCN-Transformer的时间序列预测