按照信息论基本原理的解释,信息是系统有序程度的一个度量,熵是系统无序程度的一个度量;如果指标的信息熵越小,该指标提供的信息量越小,在综合评价中所起作用理当越小,权重就应该越低。因此,可利用信息熵这个工具,计算出各个指标的权重,为多指标综合评价提供依据。
MATLAB实现代码如下:
1 % 初始数据矩阵R 2 R=xlsread("C:\Users\PC\Desktop\数据.xlsx"); 3 % 输入矩阵的大小,rows为对象个数,cols为指标个数 4 [rows,cols]=size(R); 5 k=1/log(rows); % 求k 6 Rmin = min(R); 7 Rmax = max(R); 8 A = max(R) - min(R); 9 y = R - repmat(Rmin,2033,1); 10 for j = 1 : size(y,2) 11 y(:,j) = y(:,j)/A(j); 12 end 13 % 求Y(i,j) 14 S = sum(y,1); 15 Y = zeros(rows,cols); 16 for i = 1 : size(Y,2) 17 Y(:,i) = y(:,i)/S(i); 18 end 19 % 初始化lnYij 20 lnYij=zeros(rows,cols); 21 % 计算lnYij 22 for i=1:rows 23 for j=1:cols 24 if Y(i,j)==0 25 lnYij(i,j)=0; 26 else 27 lnYij(i,j)=log(Y(i,j)); 28 end 29 end 30 end 31 % 计算熵值Hj 32 ej=-k*(sum(Y.*lnYij,1)); 33 weights=(1-ej)/(cols-sum(ej)); 34 F = zeros(rows,cols); 35 for k = 1 : size(R,2) 36 F(:,k) = weights(k)*y(:,k); 37 end 38 format long 39 % F即为对变量进行熵权法客观赋权后,计算获得的综合评分 40 F = sum(F,2) ;
熵权法 The entropy weight method(EWM)
原文:https://www.cnblogs.com/shixinzei/p/11028752.html