決策樹中的熵和基尼指數

決策樹是一種很基本的分類與迴歸方法,但正如前面博文機器學習排序算法:RankNet to LambdaRank to LambdaMART中所講的LambdaMART算法一樣,這種最基本的算法卻是很多經典、複雜、高效的機器學習算法的基礎。關於什麼是決策樹,網上一搜就會有很多博客文章,所以本文並不想討論這個話題。本文想討論的是決策樹中兩個非常重要的決策指標:熵和基尼指數。熵和基尼指數都是用來定義隨機變量的不確定性的指標。下面先介紹什麼是隨機變量的不確定性。

1. 隨機變量的不確定性

什麼是隨機變量的不確定性?舉個例子,比如一個班級有50個同學,每個同學都有且僅有一部智能手機,問:如果任意選擇一位同學,他可能用什麼品牌的手機?如果這個班的同學全部都用蘋果手機,那這個問題很好回答,也即“從這個班中任意選取的一位同學用什麼品牌的手機”這個隨機變量是確定的,不確定性爲0。但如果這個班級中$\frac{1}{3}$的同學用小米手機,$\frac{1}{3}$的同學用蘋果手機,其餘$\frac{1}{3}$的同學用華爲手機,這種情況下,這個變量的不確定性明顯增大了。那接下來就需要考慮另外一個問題:什麼情況下,這個變量的不確定性最大呢?直觀來看,如果每個同學都使用不同品牌的手機時,這個變量的不確定性應該最大的。理解了隨機變量的不確定性後,就更容易理解下面介紹的熵和基尼指數的定義。

2. 熵的定義及相關證明

在信息論與概率統計中,熵是最基礎的概念,其表示隨機變量不確定的度量。設$X$是一個取有限個值的離散隨機變量,其概率分佈爲:

$$P(X=x_i)=p_i, i=1,2,...,n$$

則隨機變量$X$的熵定義爲:

$$H(X)=-\sum_{i=1}^{n}p_i\log{p_i}$$

爲了使上式有意義,定義$0\log{0}=0$。因爲熵的定義只依賴於$X$的分佈,而與$X$的取值無關,所以我們可以將熵看成是分佈的函數:

$$H(p)=-\sum_{i=1}^{n}p_i\log{p_i}$$

上面說到均勻分佈的熵最大,但這只是直觀的感覺,並沒有證明。下面利用拉格朗日乘子法進行證明。根據拉格朗日乘子的可以將$H(p)$改寫成:

$$H(p)=-\sum_{i=1}^{n}p_i\log{p_i}+\lambda \left(\sum_{i=1}^{n}p_i-1\right)$$

$H(p)$對每個$p_i$求導,得到:

$$\frac{\partial{H(p)}}{\partial{p_i}}=-\ln{p_i}-1+\lambda=0,i=1,2,...,n$$

由$-\ln{p_i}-1+\lambda=0$可以得到$p_i=e^{\lambda-1}, i=1,2,...,n$

所以可知$p_i$是隻與$\lambda$相關的值,每個$p_i$應該都相等,即$p_1=p_2=...=p_n=\frac{1}{n}$,此時$H(p)$取得最大值$\log{n}$。由此可知熵的值域是$[0,\log{n}]$。

3. 基尼指數的定義及相關證明

基尼指數是經典決策樹CART用於分類問題時選擇最優特徵的指標。假設有$K$個類,樣本點屬於第$k$類的概率爲$p_k$,則概率分佈的基尼指數定義爲:

$$G(p)=\sum_{k=1}^{K}p_k(1-p_k)=1-\sum_{k=1}^{K}p_k^2$$

滿足條件$\sum_{k=1}^{K}p_k=1$

正如上面所說,基尼指數同樣可以描述一個隨機變量的不確定性的程度,所以可以猜測:當$p_1=p_2=...=p_K=\frac{1}{K}$時,$G(p)$取得最大值,此時隨機變量最不確定。那麼,如何進行證明?下面給出兩種方法。

方法1:同樣可以使用拉格朗日乘子法進行證明。根據拉格朗日乘子的性質,改寫$G(p)$函數爲:

$$G(p)=1-\sum_{k=1}^{K}p_k^2+\lambda \left(\sum_{k=1}^{K}p_k - 1\right)$$

$G(p)$對每個$p_i$求導,得到:

$$\frac{\partial{G(p)}}{\partial{p_i}}=-2p_i+\lambda=0,i=1,2,...,K$$

由$-2p_i+\lambda=0$可知$p_i$同樣只與常數$\lambda$相關,所以$p_1=p_2=...=p_K=\frac{1}{K}$

$G(p)$的值域爲$[0,1-\frac{1}{K}]$。

方法2:構造$K$爲空間中的兩個點$P_1=[p_1,p_2,...,p_K]^T$和$P_2=[\frac{1}{K},\frac{1}{K},...,\frac{1}{K}]^T$,其夾角爲$\theta$,所以:

$$\cos\theta=\frac{P_1\cdot P_2}{|P_1|\cdot |P_2|}=\frac{[p_1,p_2,...,p_K]\cdot [\frac{1}{K},\frac{1}{K},...,\frac{1}{K}]}{\sqrt{p_1^2+p_2^2+...+p_K^2}\cdot \sqrt{\frac{1}{K^2}+\frac{1}{K^2}+...+\frac{1}{K^2}}}\leq{1}$$

所以:

$$\sum_{k=1}^{K}p_k^2\ge \frac{(\sum_{k=1}^{K}p_k)^2}{K}$$

於是:

$$G(p)\leq 1-\frac{(\sum_{k=1}^{K}p_k)^2}{K}=1-\frac{1}{K}$$

等號在$p_1=p_2=...=p_K=\frac{1}{K}$時達到。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章