1. 程式人生 > 其它 >LeetCode 0062 Unique Paths

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\)

為我們所選的對於分類作用最大的特徵,把它作為根節點,\(x_1\)取1的樣本放到左邊,\(x_1\)取0的樣本放到右邊。同樣對於其兒子,又可以選擇分類作用次大的特徵繼續進行分類,注意,對於同層的節點,不一定選擇相同的特徵,而是應該選擇分類效果最好的那個特徵。不斷分類下去直到葉子節點停止分類。葉子節點的樣本的標籤相同。

\(\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\)

\(\Sigma_{j=1}^m p(y_j)=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)}\)

  1. \(H(Y)-H(Y|X)=H(X)-H(X|Y)\)。資訊增益?

  2. \(X,Y\)獨立,有\(p(x_i,y_i)=p(x_i)p(y_i)\)\(H(X)-H(X|Y)=0\)。給出Y判斷X或者給出X判斷Y是沒有增益的,因為兩者獨立。

  3. 利用凹函式的性質,可以知道資訊增益大於等於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.