熵值法的應用及matlab程式碼實現
阿新 • • 發佈:2018-12-09
熵值法是指用來判斷某個指標的離散程度的數學方法。離散程度越大,對該指標對綜合評價的影響越大。可以用熵值判斷某個指標的離散程度。
離散程度越大
該指標對綜合評價的影響越大熵 是
對不確定性的一種度量 資訊量越大,不確定性
就越小,熵也就越小;資訊量越小,不確定越大
程式碼如下;
function w = shang1(A)%% 熵權法求指標權重,A為輸入矩陣,返回權重向量w
[rows,cols] = size(A); % 矩陣的大小k = 1/log(rows); % 求k
f = zeros(rows,cols); % 初始化
sumBycols = sum(A,1); % 矩陣的每一列之和
%計算f(i,j)
for i = 1:rows
for j = 1:cols
f(i,j) = A(i,j)./sumBycols(1,j);
end
end
lnfij = zeros(rows,cols); % 初始化ln f(i,j)
% 計算
for i = 1:rows
for j = 1:cols
if f(i,j)==0
lnfij(i,j) = 0;
else
lnfij(i,j) = log(f(i,j));
end
end
end
Hj = -k*(sum(f.*lnfij,1)); % 計算熵值
w = (1-Hj)/(cols-sum(Hj));%權重
end