数学建模常用算法—熵权法(EWM)
解决问题
建模比赛中最基础的模型之一,其主要用于解决评价类问题(例如:选择哪种方案最好、哪位运动员或者员工表现的更优秀),用于确定每个指标所占权重,权重用于计算最终得分。
优点
层次分析法最大的缺点在于判断矩阵的确定依赖于专家,如果专家的判断存在主观性的话, 会对结果产生很大的影响。
熵权法是一种客观赋权方法 ,它依据的原理是:指标的变异程度越小,所反映的信息量也越少,其对应 的权值也应该越低(客观= 数据本身就可以告诉我们权重)。
缺点
因为概率p是位于0‐1之间,因此需要对原始数据进行标准化,我们应该选择哪种方式进行标准化呢?查看知网的文献会发现, 并没有约定俗成的标准,每个人的选取可能 都不一样。但是不同方式标准化得到的结果可能有很大差异,所以说熵权法也存在着一定的问题。
一般步骤
1. 判断输入的矩阵中是否存在负数,如果有则要重新标准化到非负区间 (后面计算概率时需要保证每一个元素为非负数)
数据正向化过程请参考文章:
数学建模常用算法—优劣解距离法(TOPSIS)
https://blog.csdn.net/cyj972628089/article/details/107541291
2. 计算第j项指标下第i个样本所占的比重,并将其看作相对熵计算中用到的概率
3. 计算每个指标的信息熵,并计算信息效用值,并归一化得到每个指标的熵权
代码
Z = []; % n*m的矩阵(要经过正向化和标准化处理,且元素中不存在负数)[n,m] = size(Z);D = zeros(1,m); % 初始化保存信息效用值的行向量for i = 1:mx = Z(:,i); % 取出第i列的指标p = x / sum(x);% 注意,p有可能为0,此时计算ln(p)*p时,Matlab会返回NaN,所以这里我们自己定义一个函数e = -sum(p .* mylog(p)) / log(n); % 计算信息熵D(i) = 1- e; % 计算信息效用值endW = D ./ sum(D); % 将信息效用值归一化,得到权重
end
function [lnp] = mylog(p)
n = length(p); % 向量的长度
lnp = zeros(n,1); % 初始化最后的结果for i = 1:n % 开始循环if p(i) == 0 % 如果第i个元素为0lnp(i) = 0; % 那么返回的第i个结果也为0elselnp(i) = log(p(i)); endend
end
数学建模常用算法—熵权法(EWM)相关推荐
- 【Python数学建模常用算法代码(二)之BP神经网络】
Python数学建模常用算法代码(二) BP神经网络模型Python代码 import numpy as np import math import random import string impo ...
- 数学建模常用算法—优劣解距离法(TOPSIS)
解决问题 建模比赛中最基础的模型之一,其主要用于解决评价类问题(例如:选择哪种方案最好.哪位运动员或者员工表现的更优秀),用于确定各个方案层的最终得分. 优点 TOPSIS 法是一种常用的综合评价方法 ...
- 二维动态规划降维误差一般为多少_数学建模常用算法模型
数学模型的分类 按模型的数学方法分: 几何模型.图论模型.微分方程模型.概率模型.最优控制模型.规划论模型.马氏链模型等 按模型的特征分: 静态模型和动态模型,确定性模型和随机模型,离散模型和连续性模 ...
- 《零基础数学建模》——TOPSIS+熵权法
目录 前言 一.TOPSIS法(优劣解距离法) 1.模型原理 2.建模步骤 二.模型实现 第一步:将原始矩阵正向化 第二步:正向化矩阵标准化 第三步:计算得分并归一化 四.TOPSIS模型的总结与 ...
- (1)评价算法—熵权法
文章目录 1.什么是熵权法 1.1 优点 1.2 缺点 1.3 适用范围 2.使用熵权法过程 2.1 数据预处理 2.1.1清洗指标极值 2.1.2 归一化指标处理 2.1.2.1 临界值法 2.1. ...
- 数学建模常用算法—马尔可夫预测
今天数模君带大家学习一下数学建模中的预测算法之马尔科夫预测. 目录 模型的含义 实例分析 模型的含义 马尔可夫(Markov)预测法,就是一种关于事件发生的概率预测方法.它是根据事件的目前状况来预测其 ...
- 数学建模常用算法—灰色预测
今天数模君给大家讲解一下数学建模比赛中常用的一种预测方法:灰色预测法. 目录 模型的含义 灰色预测的原理 实例 模型的含义 灰色预测模型 ( Gray Forecast Model )是通过少量的.不 ...
- 数学建模常用算法汇总及python,MATLAB实现(五) —— 拟合
拟合 比较重要的就是2.1和2.3 2.2可以浅看一下, 自己敲着试一试 就拟合部分来说, MATLAB比python强大很多, 自带cftool工具包, 并且有很多快速的函数, 个人建议使用MATL ...
- 【数学建模常用算法】之灰色预测模型GM
作者:張張張張 github地址:https://github.com/zhanghekai [转载请注明出处,谢谢!] 文章目录 一.灰色预测模型GM(1,1) 1.数据检验与数据预处理 1.1 构 ...
- 数学建模常用算法汇总及python,MATLAB实现(六) —— pandas和matlab实现插值
插值 2的拉格朗日插值用的其实比较少, 可以看一下了解一下插值的原理 主要看看3里的结论和4的实现代码 文章目录 插值 1. 定义 2.拉格朗日插值 2.1 概念 3. Rouge现象 3.1 是什么 ...
最新文章
- [转]XPS转JPG转换器
- jq onclick 定义_从HTML中的onClick属性调用jQuery方法
- 如何把不同尺寸ico格式图标_还在为图标设计犯难?这篇告诉你图标设计so easy!...
- tcp前4字节消息长度_RocketMQ的消息存储格式
- 简单线性分类学习机(平分最近点法)matlab实现
- 新生命 · 人工智能 · 未来
- [记录] --- safari浏览器对于yyyy-MM的坑
- Python中浅拷贝和深拷贝的理解与研究
- 转载:做了5年运维,靠着这份监控知识体系,我从3K变成了40K
- 如何在 Mac 上的“磁盘工具”中使用密码加密和保护储存设备?
- python标准库math中用来计算平方根的函数_Python程序设计试题(卷)库
- 无线网服务器在哪里设置方法,无线网络如何设置静态ip地址
- 问脉首创旁路云原生安全检测框架!
- python 实现多元线性回归
- 【记忆化搜索/数位DP】zznu2175(长度为n的含有ACM的字符串)
- SPI接口的MISO和MOSI连接时注意
- English digest
- SecureCRT连接开发板
- 抖音快手B站等平台视频检测机制和规避方法
- android系统ime指令
热门文章
- 重置linux系统root密码,CentOS(Linux)重置root密码
- 负载均衡性能参数如何测评?
- Nginx 配置长连接
- win7计算机高级还原,主编教您win7怎么一键还原
- [数学学习笔记]函数的连续性
- docker服务假死解决方案
- Weighted Boxes Fusion加权检测框合并
- phalapi可以依赖注入么_[2.11]-核心思想:DI依赖注入-让资源更可控 | PhalApi(π框架) - PHP轻量级开源接口框架 - 接口,从简单开始!...
- 读书笔记 - 《上帝的跳蚤》
- 分布式事务之 LCN 框架实现方案的原理、配置与使用