数学建模——熵权法

一、熵权法基础知识

  1. 熵值越小越好;

  2. 熵权法是一种可以用于多对象、多指标的综合评价方法,其评价结果主要是依据客观资料,熵权法几乎不受主观因素的影响。

  3. 信息熵值越小,权重越大

二、熵权法基本思路

权重大-->提供的信息量大-->指标的变异性大-->信息熵值小

1.数据归一化 2.计算指标变异性 3.计算信息熵 4.计算权值

三、熵权法计算步骤

1.数据归一化

由于各项指标计量单位并不统一,因此在计算综合权重前先要对它们进行归一化处理,即把指标的绝对值转化为相对值,并令

正向指标

负向指标

2.计算变异性指标

计算第j项指标下第i方案指标值的比重

 3.计算信息熵

计算第j项指标的信息熵值

 其中k =1/ln(n),满足e>0。

4.计算信息熵冗余度

计算第j项指标的信息熵冗余度

5.计算各指标权重

计算第j项指标的权重

6.计算综合得分

计算第i个评价对象的综合得分

四、应用例题分析

成绩评价 判断下列同学的综合成绩排名

语文(150)数学(150)英语(150)物理(110)化学(100)生物(90)
A同学809090709090
B同学6090100709080
C同学7010090807070
D同学9070801008080
E同学10010080709060
F同学1007070908080
G同学90100907010080

1 数据归一化

均为正向指标

采用

 

2.计算变异性指标

计算第j项指标下第i方案指标值的比重

 

3 计算信息熵

计算第j项指标的信息熵值

 

4 计算信息熵冗余度

计算第j项指标的信息熵冗余度

 

5 计算各指标权重

计算第j项指标的权重

 

6 计算综合成绩

计算第i个同学的综合成绩

 

五、matlab代码

shangquanfa_main.m

clc;clear;
x=xlsread('熵权法.xlsx');
ind=ones(size(x,2),1);%正向写1,负向写2
[n,m]=size(x);%n个样本,m个指标,数据的归一化处理
for i=1:m
    if ind(i)==1%正向指标归一化
        X(:,i)=guiyi(x(:,i),1.0,0.002,1);
    else%负向指标归一化
        X(:,i)=guiyi(x(:,i),2.0,0.002,1);
    end
end
%计算第j个指标下,第i个样本占该指标的比重p(i,j)
for i=1:n
    for j=1:m
        p(i,j)=X(i,j)/sum(X(:,j));
    end
end
%计算第j个指标的熵值e(j)
k=1/log(n);
for j=1:m
    e(j)=-k*sum(p(:,j).*log(p(:,j)));
end
g=ones(1,m)-e;%计算信息熵冗余度
w=g./sum(g);%求权值w
s=X*w';%求综合得分
 

guiyi.m

function y=guiyi(x,type,ymin,ymax)
%实现正向或负向指标归一化,返回归一化后的数据矩阵
%x为原始数据矩阵,一行代表一个样本,每列对应一个指标
%type设定正向指标1,负向指标2
%ymin,ymax为归一化的区间端点
[n,m]=size(x);
y=zeros(n,m);
xmin=min(x);
xmax=max(x);
switch type
    case 1
        for j=1:m
            y(:,j)=(ymax-ymin)*(x(:,j)-xmin(j))/(xmax(j)-xmin(j))+ymin;
        end
    case 2
         for j=1:m
            y(:,j)=(ymax-ymin)*(xmax(j)-x(:,j))/(xmax(j)-xmin(j))+ymin;
         end
end

熵权法.xlsx

语文(150)数学(150)英语(150)物理(110)化学(100)生物(90)
A同学809090709090
B同学6090100709080
C同学7010090807070
D同学9070801008080
E同学10010080709060
F同学1007070908080
G同学90100907010080
  • 16
    点赞
  • 113
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值