数学建模——熵权法

2022-11-15 14:57:23 浏览数 (1)

一、熵权法基础知识

  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同学

80

90

90

70

90

90

B同学

60

90

100

70

90

80

C同学

70

100

90

80

70

70

D同学

90

70

80

100

80

80

E同学

100

100

80

70

90

60

F同学

100

70

70

90

80

80

G同学

90

100

90

70

100

80

1 数据归一化

均为正向指标

采用

2.计算变异性指标

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

3 计算信息熵

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

4 计算信息熵冗余度

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

5 计算各指标权重

计算第j项指标的权重

6 计算综合成绩

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

五、matlab代码

shangquanfa_main.m

代码语言:javascript复制
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

代码语言:javascript复制
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同学

80

90

90

70

90

90

B同学

60

90

100

70

90

80

C同学

70

100

90

80

70

70

D同学

90

70

80

100

80

80

E同学

100

100

80

70

90

60

F同学

100

70

70

90

80

80

G同学

90

100

90

70

100

80

0 人点赞