北太天元學(xué)習(xí)39-熵權(quán)法選購(gòu)手機(jī)
信息熵(Information Entropy)是信息理論中的一個(gè)概念,用于描述信息的不確定性和隨機(jī)性。它是由克勞德·艾爾伍德·香農(nóng)在1948年提出的。 信息熵理論在通信、數(shù)據(jù)壓縮、密碼學(xué)等領(lǐng)域有廣泛應(yīng)用。

信息熵是一個(gè)表示信息平均不確定性的度量。例如, 一個(gè)正常的骰子投擲一下正面朝上的點(diǎn)數(shù)
X 是一個(gè)隨機(jī)變量, P(X=1) = ... = P(X=6) = 1/6, 那么它的信息熵是
?? -6* 1/6* log_2 ( 1/6)?
?大約是2.6? (單位是bit 比特).?? ?
當(dāng)然,信息熵的定義可以是不同的,例如上面這個(gè)例子的信息熵也可以定義成
?? - k? 6 * 1/6 * log (1/6)
其中 log 表示自然對(duì)數(shù)(這是和北太天元的內(nèi)置函數(shù)log的含義保持一致), k = 1/log(6)
這樣計(jì)算得到的信息熵 是 1.? 下面我們將采用這個(gè)來(lái)定義信息熵, 即設(shè)隨機(jī)變量X取值為1,..., n, 且 P(X=i) = pi, 那么定義其信息熵是
????????S(X) =??? - k? * (p1 * log(p1) + ... + pn *log(pn) )
其中 k = 1/log(n),? log是自然對(duì)數(shù)。
如果要找一個(gè)用來(lái)作弊的骰子,使得 P(X=1) = p1, ..., P(X=6) = p6, 其中 p1,..., p6
都屬于[0,1] , 而且 p1+...+p6 = 1. 此時(shí)的信息熵是
??? -k * ( p1 * log( p1 ) + ... + p6 * log(p6) )
這里的k 還是 1/log(6), 可以證明 在 p1=...=p6=1/6 時(shí),上面的熵取到最小值(
證明提示: 利用 f(x) = -k x * log(x) 的上凸性,然后 ( f(p1)+...+f(p6) )/6 <= f ( (p1+...+p6)/ 6 ). ) ?? ?
),作弊也就是讓骰子擲出點(diǎn)數(shù)的混亂度降低了,從而更容易猜對(duì)點(diǎn)數(shù)了。 例如,極端情況,
p1=1, p2 = ... = p6 =0,
此時(shí)的熵是 0? (注意,約定 0 *log 0 = 0 ),? 也就是說(shuō)擲出的點(diǎn)是非常容易猜對(duì)的,就猜1點(diǎn)。
我們還可以證明這樣的定義的信息熵的取值屬于區(qū)間[0,1].
熵權(quán)法是一種基于信息熵確定各個(gè)指標(biāo)在綜合評(píng)價(jià)中的權(quán)重的方法。
熵是系統(tǒng)無(wú)序程度的一個(gè)度量。根據(jù)信息熵的定義,對(duì)于某項(xiàng)指標(biāo),可以用熵值來(lái)判斷某個(gè)指標(biāo)的離散程度,其信息熵值越小,指標(biāo)的離散程度越大,該指標(biāo)對(duì)綜合評(píng)價(jià)的影響(即權(quán)重)就越大。如果某項(xiàng)指標(biāo)的值全部相等,則該指標(biāo)在綜合評(píng)價(jià)中不起作用。
因此,熵權(quán)法利用信息熵這個(gè)工具,通過(guò)計(jì)算出各個(gè)指標(biāo)的權(quán)重,為多指標(biāo)綜合評(píng)價(jià)提供依據(jù)。該方法適用于信息不完全、未來(lái)情況不確定的情況,以及各指標(biāo)之間相互獨(dú)立的情況。在實(shí)際應(yīng)用中,熵權(quán)法被廣泛應(yīng)用于投資決策、風(fēng)險(xiǎn)管理、績(jī)效評(píng)估等領(lǐng)域。
我們還是以北太天元學(xué)習(xí)38-TOPSIS方法選購(gòu)手機(jī)為例來(lái)給出熵權(quán)法的步驟。
不同的指標(biāo)代表含義不一樣,有的指標(biāo)越大越好,稱為極大型指標(biāo)。有的指標(biāo)越小越好,稱為極小型指標(biāo),在北太天元學(xué)習(xí)38中,我們還介紹了區(qū)間型指標(biāo),是屏幕的尺寸,這里我們把這個(gè)指標(biāo)改成指定最優(yōu)值型指標(biāo),也就是說(shuō)該指標(biāo)在某個(gè)點(diǎn)是最好的,例如6寸屏幕是最好的。
為方便評(píng)價(jià),我們還是把所有指標(biāo)轉(zhuǎn)化成極大型型指標(biāo)。
熵權(quán)法的步驟是 1. 正向化,? 2. 標(biāo)準(zhǔn)化 , 3. 結(jié)算每個(gè)指標(biāo)的信息熵 4. 計(jì)算每個(gè)指標(biāo)的權(quán)重,5.
計(jì)算每個(gè)備選的分?jǐn)?shù)。
我下面就直接給出北太天元用熵權(quán)法給選購(gòu)的5種不同的手機(jī)進(jìn)行打分的代碼。
參考北太天元學(xué)習(xí)38中對(duì)手機(jī)的指標(biāo)的描述,第一列是RAM,第二列是MEMORY,第三列是
手機(jī)屏幕尺寸,第四列是電池容量,第五列是價(jià)格。 請(qǐng)看這個(gè)專欄文章相應(yīng)的視頻看我對(duì)
代碼的解釋,另外,我在視頻里還解釋了如何使用調(diào)試模式運(yùn)行腳本。

% 北太天元用熵權(quán)法選購(gòu)手機(jī)的m腳本 entropy_w.m
%決策矩陣
data = [ 8? 128? 5??? 2400?? 800 ;
???????? 8? 256? 5.5? 3000?? 1500 ;
???????? 16 256? 6??? 3200?? 3000 ;
???????? 32 512? 10?? 3200?? 10000 ;
???????? 8? 256? 4??? 3000?? 2000 ];
% 正向化處理之后得到的決策矩陣是 data1
data1=data;
%% 極小型指標(biāo), 對(duì)極小型指標(biāo)的處理還是和北太天元學(xué)習(xí)38是一樣的
index=[5];% 這些指標(biāo)是越小越好
for i=1:length(index)
? data1(:,index(i))=max(data(:,index(i)))-data(:,index(i));
end
%% 指定最優(yōu)值型指標(biāo) (指定了最優(yōu)值,偏離這個(gè)最優(yōu)值越遠(yuǎn)越不好)
index=[3];
a=6;% 指定的最優(yōu)值
for i=1:length(index)
????v = data1(:,index(i));
???? w = abs( v - a );
? data1(:,index(i))=1- w ./ max(w);
end
%數(shù)據(jù)歸一化的mapminmax函數(shù)北太天元暫時(shí)是缺少的,
% 我們用m函數(shù)mapminmaxEx1來(lái)實(shí)現(xiàn)
data2=mapminmaxEx1(data1',0.002,1); % 把data1每一列的數(shù)據(jù)都映射到[0.002,1]
data2=data2';
%計(jì)算信息熵
[m,n]=size(data2);
p=zeros(m,n);
for j=1:n
??? p(:,j)=data2(:,j)/sum(data2(:,j));
end
%data2的每一列都是極大型指標(biāo),經(jīng)過(guò)上面處理的p(:,j)可以看成看成一個(gè)概率,
%因?yàn)榈梅衷礁弑贿x取的概率越大.
%計(jì)算信息熵
E = zeros(1,n); % 預(yù)先分配信息熵的存儲(chǔ)空間
for j=1:n
?? E(j)=-1/log(m)*sum(p(:,j).*log(p(:,j)));
end
% 計(jì)算每一個(gè)指標(biāo)的權(quán)重 ?
w=(1-E)/sum(1-E);
%計(jì)算分?jǐn)?shù)
s=data2*w';
Score=100*s/max(s);
disp('手機(jī)的得分如下: ')
disp(Score)
% 北太天元腳本函數(shù) mapminmaxEx1.m 用來(lái)代替暫時(shí)缺失的 mapminmax 函數(shù)
%歸一化是一種將數(shù)據(jù)縮放到 [lb, ub] 范圍內(nèi)的方法。
% 通過(guò)使用mapminmax函數(shù),我們可以將數(shù)據(jù)歸一化到 [lb, ub] 范圍內(nèi)化。
% 這個(gè)函數(shù)把矩陣A的每一行的數(shù)據(jù)映射到[lb,ub]之間,最小值映射到lb, 最大值映射到ub.
function B = mapminmaxEx1(A, lb, ub)
max_A = max(A,[], 2);
% 注意取每一行的最大值,得到一個(gè)列向量, [] 不能省略,不然含義不同
%? 你來(lái)時(shí)試試 max([ 1 2; 3, 4], 2) 和 max( [ 1 2; 3, 4], [], 2) 的計(jì)算結(jié)果有什么不同
min_A = min(A,[], 2);
B =(A -min_A) ./ ( max_A - min_A) * (ub-lb) + lb;
end
另外,統(tǒng)計(jì)物理的熵的定義和信息科學(xué)的熵的定義略有不同,我在維也納的時(shí)候曾經(jīng)去瞻仰過(guò)Boltzmann墓,墓碑上是熵的定義:
