目錄決策樹中涉及到了資訊熵、資訊增益、資訊增益率、基尼係數等公式,作為相應演算法(id3、c4.5、cart樹)的衡量標準,今天就來稍微推導一下這些公式~
已知集合d的資訊熵的定義為
\[\operatorname(d)=-\sum_^|} p_ \log _ p_
\]其中,\(| \mathcal|\)表示樣本類別總數,\(p_k\)表示第k類樣本所佔的比例,且\(0 \leq p_k \leq 1,\sum_^p_k=1\)。
若令\(| \mathcal|=n,p_k=x_k\),那麼資訊熵\(\operatorname(d)\)就可以看作乙個\(n\)元實值函式,也即
\[\operatorname(d)=f(x_1,...,x_n)=-\sum_^ x_ \log _ x_
\]其中,\(0 \leq x_k \leq 1,\sum_^x_k=1\),下面考慮求該多元函式的最值。
求最大值:
如果不考慮約束\(0 \leq x_k \leq 1\),僅考慮\(\sum_^x_k=1\)的話,對\(f(x_1,...,x_n)\)求最大值等價於如下最小化問題
\[\begin} & ^ x_ \log _ x_ } \\
} & ^x_k=1}
\end\]
顯然,在\(0 \leq x_k \leq 1\)時,此問題為凸優化問題,而對於凸優化問題來說,滿足kkt條件的點即為最優解。由於此最小化問題僅含等式約束,那麼能令其拉格朗日函式的一階偏導數等於0的點即為滿足kkt條件的點。根據拉格朗日乘子法可知,該優化問題的拉格朗日函式為
\[l(x_1,...,x_n,\lambda)=-\sum_^ x_ \log _ x_+\lambda(\sum_^x_k-1)
\]其中,\(\lambda\)為拉格朗日乘子。對\(l(x_1,...,x_n,\lambda)\)分別關於\(x_1,...,x_n,\lambda\)求一階偏導數,並令偏導數等於0可得
\[\begin
\cfrac&=\cfrac\left[-\sum_^ x_ \log _ x_+\lambda(\sum_^x_k-1)\right]=0\\
&=-\log _ x_-x_1\cdot \cfrac+\lambda=0 \\
&=-\log _ x_-\cfrac+\lambda=0 \\
&\rightarrow \lambda=\log _ x_+\cfrac\\
\cfrac&=\cfrac\left[-\sum_^ x_ \log _ x_+\lambda(\sum_^x_k-1)\right]=0\\
&\rightarrow \lambda=\log _ x_+\cfrac\\
\vdots\\
\cfrac&=\cfrac\left[-\sum_^ x_ \log _ x_+\lambda(\sum_^x_k-1)\right]=0\\
&\rightarrow \lambda=\log _ x_+\cfrac\\
\cfrac&=\cfrac\left[-\sum_^ x_ \log _ x_+\lambda(\sum_^x_k-1)\right]=0\\
&\rightarrow \sum_^x_k=1\\
\end\]
整理一下可得
\[\left\
\lambda=\log _ x_+\cfrac=\log _ x_+\cfrac=...=\log _ x_+\cfrac \\
\sum\limits_^x_k=1
\end\right.\]
由以上兩個方程可以解得
\[x_1=x_2=...=x_n=\cfrac
\]又因為\(x_k\)還滿足約束\(0 \leq x_k \leq 1\),顯然\(0 \leq\cfrac\leq 1\),所以\(x_1=x_2=...=x_n=\cfrac\)是滿足所有約束的最優解,也即為當前最小化問題的目標函式的最小值點,同樣也是\(f(x_1,...,x_n)\)的最大值點。將\(x_1=x_2=...=x_n=\cfrac\)代入\(f(x_1,...,x_n)\)中可得
\[f(\cfrac,...,\cfrac)=-\sum_^ \cfrac \log _ \cfrac=-n\cdot\cfrac \log _ \cfrac=\log _ n
\]所以\(f(x_1,...,x_n)\)在滿足約束\(0 \leq x_k \leq 1,\sum_^x_k=1\)時的最大值為\(\log _ n\)。
求最小值:
如果不考慮約束\(\sum_^x_k=1\),僅考慮\(0 \leq x_k \leq 1\)的話,\(f(x_1,...,x_n)\)可以看做是\(n\)個互不相關的一元函式的加和,也即
\[f(x_1,...,x_n)=\sum_^ g(x_k)
\]其中,\(g(x_k)=-x_ \log _ x_,0 \leq x_k \leq 1\)。那麼當\(g(x_1),g(x_2),...,g(x_n)\)分別取到其最小值時,\(f(x_1,...,x_n)\)也就取到了最小值。所以接下來考慮分別求\(g(x_1),g(x_2),...,g(x_n)\)各自的最小值,由於\(g(x_1),g(x_2),...,g(x_n)\)的定義域和函式表示式均相同,所以只需求出\(g(x_1)\)的最小值也就求出了\(g(x_2),...,g(x_n)\)的最小值。下面考慮求\(g(x_1)\)的最小值,首先對\(g(x_1)\)關於\(x_1\)求一階和二階導數
\[g^(x_1)=\cfrac \log _ x_)}=-\log _ x_-x_1\cdot \cfrac=-\log _ x_-\cfrac
\]\[g^(x_1)=\cfrac(x_1)\right)}=\cfrac x_-\cfrac\right)}=-\cfrac\ln2}
\]顯然,當\(0 \leq x_k \leq 1\)時\(g^(x_1)=-\cfrac\ln2}\)恆小於0,所以\(g(x_1)\)是乙個在其定義域範圍內開頭向下的凹函式,那麼其最小值必然在邊界取,於是分別取\(x_1=0\)和\(x_1=1\),代入\(g(x_1)\)可得
\[g(0)=-0\log _ 0=0
\]\[g(1)=-1\log _ 1=0
\]所以,\(g(x_1)\)的最小值為0,同理可得\(g(x_2),...,g(x_n)\)的最小值也為0,那麼\(f(x_1,...,x_n)\)的最小值此時也為0。但是,此時是不考慮約束\(\sum_^x_k=1\),僅考慮\(0 \leq x_k \leq 1\)時取到的最小值,若考慮約束\(\sum_^x_k=1\)的話,那麼\(f(x_1,...,x_n)\)的最小值一定大於等於0。如果令某個\(x_k=1\),那麼根據約束\(\sum_^x_k=1\)可知\(x_1=x_2=...=x_=x_=...=x_n=0\),將其代入\(f(x_1,...,x_n)\)可得
\[f(0,0,...,0,1,0,...,0)=-0 \log _0-0 \log _0...-0 \log _0-1 \log _1-0 \log _0...-0 \log _0=0
\]所以\(x_k=1,x_1=x_2=...=x_=x_=...=x_n=0\)一定是\(f(x_1,...,x_n)\)在滿足約束\(\sum_^x_k=1\)和\(0 \leq x_k \leq 1\)的條件下的最小值點,其最小值為0。
綜上可知,當\(f(x_1,...,x_n)\)取到最大值時:\(x_1=x_2=...=x_n=\cfrac\),此時樣本集合純度最低;當\(f(x_1,...,x_n)\)取到最小值時:\(x_k=1,x_1=x_2=...=x_=x_=...=x_n=0\),此時樣本集合純度最高。
\[gain(d,a) = ent(d) - \sum_^\fracent()
\]假定在樣本d中有某個離散特徵\(a\) 有 \(v\) 個可能的取值 \((a^1,a^2,...,a^v)\),若使用特徵 \(a\) 來對樣本集 \(d\) 進行劃分,則會產生 \(v\) 個分支結點,其中第 \(v\) 個分支結點包含了 \(d\) 中所有在特徵 \(a\) 上取值為 \(a^v\) 的樣本,樣本記為 \(d^v\),由於根據離散特徵a的每個值劃分的 \(v\) 個分支結點下的樣本數量不一致,對於這 \(v\) 個分支結點賦予權重 \(\frac\),即樣本數越多的分支結點的影響越大,特徵 \(a\) 對樣本集 \(d\) 進行劃分所獲得的「資訊增益」為
\[gain(d,a) = ent(d) - \sum_^\fracent()
\]資訊增益越大,表示使用特徵a來對樣本集進行劃分所獲得的純度提公升越大。
缺點:由於在計算資訊增益中傾向於特徵值越多的特徵進行優先劃分,這樣假設某個特徵值的離散值個數與樣本集 \(d\) 個數相同(假設為樣本編號),雖然用樣本編號對樣本進行劃分,樣本純度提公升最高,但是並不具有泛化能力。
\[gain-ratio(d,a)=\frac
\]基於資訊增益的缺點,\(c4.5\) 演算法不直接使用資訊增益,而是使用一種叫增益率的方法來選擇最優特徵進行劃分,對於樣本集 \(d\) 中的離散特徵 \(a\) ,增益率為
\[gain-ratio(d,a)=\frac
\]其中,
\[iv(a)=-\sum_^\fraclog_2\frac
\]iv(a) 是特徵 a 的熵。
增益率對特徵值較少的特徵有一定偏好,因此 \(c4.5\)演算法選擇特徵的方法是先從候選特徵中選出資訊增益高於平均水平的特徵,再從這些特徵中選擇增益率最高的。
\[\begin
gini(d) &=\sum_^\sum_}}\\
&=1-\sum_^p_k^2
\end
\][推導]:假定當前樣本集合 \(d\) 中第 \(k\) 類樣本所佔的比例為 \(p_k(k =1,2,...,|y|)\),則 \(d\) 的基尼值為
\[\begin
gini(p) &=\sum_^\sum_}}\\
&=\sum_^ \\
&=1-\sum_^p_k^2
\end
\]
梯度提公升決策樹公式推導
梯度提公升演算法使用損失函式的負梯度在當前模型的值,不再去學習殘差,而是學習乙個損失函式關於梯度的負值。begin begin left frac right x end end 作為回歸問題提公升決策樹演算法中殘差的近似值,擬合乙個回歸樹。如果xgboost在這裡改進的話可以採用二階梯度,因為乙個...
決策樹公式
公式機器學習 決策樹2.經驗熵h d 3.條件熵 4.資訊增益 5.資訊增益比 gini係數 outlook temperature humidity windy play sunny hothigh false nosunny hot high true noovercast hot high f...
決策樹的原理推導
決策樹可以作為分類演算法,也可以作為回歸演算法,同時特別適合整合學習比如隨機森林。1970年昆蘭找到了用資訊理論中的熵來度量決策樹的決策選擇過程,昆蘭把這個演算法叫做id3。熵度量了事物的不確定性,越不確定的事物,熵就越大。隨機變數x的熵的表示式如下 其中n代表x的n種不同的離散取值。而pi 代表了...