決策樹是一種很基本的分類與回歸方法,但正如前面博文機器學習排序算法: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}$時達到。