LeetCode 0062 Unique Paths
決策樹
概念
希望根據樣本的若干個特徵對其進行分類。
決策樹是一種判別模型。
特徵:\(X_1,X_2...X_m,Y\)
樣本:\(x_1,x_2..x_n\)
可以進行二分類也可以進行多分類。一般來說使用決策樹的時候特徵取值都是離散的。最終想要學習到的是特徵和標籤之間的關係。
\[\begin{matrix} &X_1&X_2&...&Y\\ x_1&1&0&...&1\\ x_2&0&1&...&0\\...\\ \end{matrix} \]現在從列的角度出發,可能存在某一個特徵,對於分類的作用大於其他的特徵。考慮使用樹,從根節點進行二分。設\(x_1\)
熵
設\(\Omega\)為概率空間,存在兩個離散的隨機變數\(X,Y\)。\(X\)取\(x_1,x_2...x_n\),\(Y\)取\(y_1,y_2...y_m\)。
定義\(P(X=x_i)=p(x_i)\),\(P(Y=y_j)=p(y_j)\)。根據全概率公式,\(\Sigma_{i=1}^n p(x_i)=1\)
現在來看他們的聯合分佈:\(P(X=x_i,Y=y_j)=p(x_i,y_j)\)
\(X\)的邊緣分佈:\(p(x_i)=\Sigma_{j=1}^m p(x_i,y_j)\)。
條件概率:\(P(X=x_i|Y=y_j)=\frac{P(X=x_i,Y=y_j)}{P(Y=y_j)}=\frac{p(x_i,y_j)}{p(y_j)}=p(x_i|y_j)\)。
\(H(X)=-\Sigma_{i=1}^np(x_i)logp(x_i)=\Sigma_{i=1}^np(x_i)log(\frac{1}{p(x_i)})>=0\)
那麼熵什麼時候等於0呢?\(p(x_1)=1,p(x_i)=0(i>1)\)。
那麼熵是否存在極大值呢?是否能趨向正無窮呢?注意到\(p(x_i)\)的和是1,\(H(x)\leq log\Sigma_{i=1}^np(x_i)\frac{1}{p(x_i)}=logn\)。
注意這裡的不等式實際上是根據琴聲不等式得來的。
因此可以得到熵的範圍:\([0, logn]\)
條件熵:\(H(X|Y)=-\Sigma_{j=1}^m p(y_j) (\Sigma_{i=1}^n p(x_i|y_i)log(p(y_i|x_i)))\)
\(H(X)-H(X|Y)=-\Sigma_{i=1}^n p(x_i)logp(x_i)+\Sigma_{j=1}^m p(y_j) (\Sigma_{i=1}^n p(x_i|y_i)log(p(y_i|x_i)))\\=-\Sigma_{i=1}^n p(x_i)logp(x_i)+\Sigma_{j=1}^m \Sigma_{i=1}^np(x_i,y_j)log\frac{p(x_i,y_j)}{p(y_j)}\\=....=\Sigma_{i=1}^n\Sigma_{j=1}^m p(x_i,y_j)log\frac{p(x_i,y_j)}{p(x_i)p(y_j)}\)
-
有\(H(Y)-H(Y|X)=H(X)-H(X|Y)\)。資訊增益?
-
\(X,Y\)獨立,有\(p(x_i,y_i)=p(x_i)p(y_i)\),\(H(X)-H(X|Y)=0\)。給出Y判斷X或者給出X判斷Y是沒有增益的,因為兩者獨立。
-
利用凹函式的性質,可以知道資訊增益大於等於0。
決策樹建立
先從根節點開始,計算熵 。
令\(D_0=|\{Y=0\}|\),\(D_1=|\{Y=1\}|\)
\(H(Y)=-\frac{D_0}{n}log\frac{D_0}{n}\)
令\(D_{00}=|\{X_1=0,Y=0\}|\)....\(D_{11}\),\(|\{X_1=0\}|=D_{00}+D_{01}\)...
\(H(Y|X_1)=-\frac{D_{00}+D_{01}}{n}[\frac{D_{00}}{D_{00}+D_{01}}log\frac{D_{00}}{D_{00}+D_{01}}+\frac{D_{01}}{D_{00}+D_{01}}log\frac{D_{01}}{D_{00}+D_{01}}]-\frac{D_{10}+D_{11}}{n}[\frac{D_{10}}{D_{10}+D_{11}}log\frac{D_{10}}{D_{00}+D_{11}}+\frac{D_{11}}{D_{10}+D_{11}}log\frac{D_{11}}{D_{10}+D_{11}}]\)
因此需要選\(max_{i}(H(Y)-H(Y|X_i))\)這個特徵進行第一次分類。那麼什麼時候分類停止?節點的熵等於0.