1. 程式人生 > >小白自學機器學習之一文讀懂決策樹演算法詳解

小白自學機器學習之一文讀懂決策樹演算法詳解

1.概念準備

  • 1.1 遞迴與迭代

    迭代是人,遞迴是神。

    區別 定義 優缺點
    遞迴(recursion) 程式呼叫自身 1.問題大化小,減少程式碼量
    2.易造成堆疊溢位,浪費空間
    迭代(iterate) 利用變數的原值推算出變數的新值 1.效率高,不增加空間開銷
    2.不易理解,程式碼不如遞迴簡介
  • 1.2 資訊熵(H(X))

    概念由來:資訊理論–>資訊量–>自資訊–>資訊熵

    資訊理論研究資訊的量化、傳輸、儲存,一個事件中包含的資訊量自資訊(I(X))來量化。
    I ( X ) =

    l o g 1 p ( x
    )
    I(X)=log\cfrac{1}{p_{(x)}}

​ 資訊熵公式
H ( X ) = E [ I ( X ) ] = E ( log 1 p ( x ) ) ) = E [ log ( p ( x ) ) ] = ( p ( x ) log 1 p ( x ) ) ) H(X)=E[I(X)]=E(\log\cfrac{1}{p_{(x)}}))=E[-\log(p_{(x)})]=\sum(p_{(x)}\log\cfrac{1}{p_{(x)}}))
的本質是對不確定性的度量,用數學公式表達只與概率p(x)有關,是資訊的期望值。熵值越高,則資料混合的種類越多,其可能的變化越多,攜帶的資訊量也就越大,只與值的種類和各種類發生概率有關。(與具體的值無關)

​ 物理意義是平均編碼長度。

​ 資訊理論中 l o g log 底數用2,對應單位是 b i t bit ;機器學習中習慣用 e e ,對應單位為 n a t nat ;底數用10,對應單位為 H a r t Hart

  • 1.3條件熵(H(Y|X))

    表示已知隨機變數X的前提下,隨機變數Y的不確定性。
    H ( Y X ) = x p ( x ) H ( Y X = x ) ) = x p ( x ) y p ( y x ) log 1 p ( y x ) = x y p ( x ) p ( y x ) log p ( y x ) = x y p ( x , y ) log p ( x , y ) p ( x ) = x y p ( x , y ) log p ( x ) p ( x , y ) H(Y|X)=\sum_x p_{(x)}H(Y|X=x)) \\ =\sum_xp_{(x)}\sum_yp_{(y|x)}\log\cfrac{1}{p{(y|x)}}\\ =-\sum_{xy}p_{(x)}p_{(y|x)}\log p_{(y|x)}\\ =-\sum_{xy}p_{(x,y)}\log\cfrac{p_{(x,y)}}{p_{(x)}}\\ =\sum_{xy}p_{(x,y)}\log\cfrac{p_{(x)}}{p_{(x,y)}}
    其中,條件概率(又稱為後驗概率):

p ( y x ) = p ( x , y ) p ( x ) p_{(y|x)}=\cfrac {p_{(x,y)}}{p_{(x)}}

通俗理解條件熵
p ( y x ) = p ( x , y ) p ( x ) p_{(y|x)}=\cfrac{p_{(x,y)}}{p_{(x)}}

  • 1.4 交叉熵

    以上是從資訊理論來理解資訊熵。從**計算機編碼角度(物理含義)**來理解:資訊熵是隨機變數平均編碼的最小長度。資訊熵是完美編碼,交叉熵是不完美編碼,相對熵是兩者差值,差值也稱為差異,即KL散度。
    R e l a t i v e E n t r o p y ( ) = C r o s s E n t r o p y ( ) I n f o r m a t i o n E n t r o p y ( ) Relative Entropy() = Cross Entropy() - Information Entropy()
    對於一個以 p p 為概率的樣本集X(資訊熵 H ( X ) = E ( I ( X ) ) = E ( log 1 p ( x