Decision Tree学习笔记(基础篇)
寫在前面,博客僅供個人學習所用,不得商用。有問題請評論,我也是初學者,大家共同進步。
參考鏈接:決策樹的一些基本概念以及實現原理
決策樹python調用
決策樹實現代碼python
基本概念
決策樹的改進路線:
ID3—>C4.5—>CART
(1)其中ID3是基于信息增益來選擇劃分屬性
(2)C4.5不直接使用增益率來選擇劃分屬性,而是使用了一個啟發式:先從候選劃分屬性中選取信息增益高于平局水平的屬性,再從中選擇增益率最高的。
(3)CART(Classification and Regression Tree)算法使用基尼系數來代替信息增益比。
信息:
這個是熵和信息增益的基礎概念,是對一個抽象事物的命名,無論用不用‘信息’來命名這種抽象事物,或者用其他名稱來命名這種抽象事物,這種抽象事物是客觀存在的。如果帶分類的事物集合可以劃分為多個類別當中,則某個類(xi)的信息(量)定義如下:
I(x)用來表示隨機變量的信息,p(xi)指是當xi發生時的概率。當事件xi發生的概率p(xi)很小,但是它卻發生了,那這個信息量相當大,比如買彩票中獎了,那么這個信息量肯定是很大的。相反,對于大概率事件,人們習以為常,那么這個事件的信息量就很小。這就體現在上述公式中。
總結:事物所含信息量,越是概率小事物發生所含的信息量越大。反之則反
信息熵
“信息熵”是度量樣本純度最常用的一種指標。所謂樣本純度,相反而言之就是凌亂程度。如一個數據集U中的樣本都屬于同一類,那么這時樣本純度最高而凌亂程度最低。信息熵定義為:
其中D表示樣本集合,|y|樣本中類別的數目, pk表示第k種分類占集合的比例。Ent(D)的值越小,D的純度越高。
信息熵即是樣本純度
信息增熵
信息增益 指的是,使用某一個屬性a進行劃分后,所帶來的純度提高的大小。一般而言,信息增益越大,意味著使用屬性a來進行劃分所獲得的“純度提升”越大。
即
信息增益 = 根節點的信息熵 - 所有分支節點的信息熵的加權和
其中,權值為劃分后屬性a=ak節點中樣本的數量與劃分前節點中的樣本數量的比值,即概率。概率確保了權重的和為1.
上圖描述的是,使用屬性a對樣本集合D進行劃分,因為a有V個取值,因此決策樹會有V個分支。劃分后每一個節點中樣本的數量為屬性a=ak的樣本的數量。
問:如何理解:信息增益越大,意味著使用屬性a來進行劃分所獲得的“純度提升”越大?
答:因為Ent(D)的值越小,D的純度越高。而劃分后,所有的分支節點的Ent(Dk)的和就是劃分后的信息熵,公式體現了前后的差距,如果差距越大,那么就說明劃分后所有的分支節點的信息熵越小,純度提升越大。
總結:信息增熵即是 信息樣本進行分塊劃分后的信息純度的增加量
增益率
信息增益率偏向于可能取值減少的屬性。
尼基值
基尼值 Gini(D) 反映了從數據集中隨機抽取兩個樣本,其類別標記不一致的概率。當數據集的純度越高,每次抽到不同類別標記的概率越小。打個比方,在一個袋子里裝100個乒乓球,其中有99個白球,1個黃球,那么當我們隨機抽取兩個球的時候,很大概率是抽到兩個白球。
所以數據集D的純度可以用基尼值來度量,其定義如下:
基尼值越小,數據集D純度越高。
總結:尼基值表示隨機取取兩個樣本后該兩樣本不相同的概率。尼基值越小純度越高
尼基指數
基尼指數是針對于屬性定義的,其反映的是,使用屬性a進行劃分后,所有分支中(使用基尼值度量的)純度的加權和。
屬性a的基尼指數定義如下:
我們在屬性集合A中選擇劃分屬性的時候,就選擇使得劃分后基尼指數最小的屬性作為最優劃分屬性。CART就是用基尼指數來選擇劃分屬性的。
總結:尼基指數就是樣本劃分后的加權信息增熵
偽代碼
構建決策樹的一般算法是:[3]檢查上述基本情況對于每個特征a,計算劃分a的信息增益記a_best為最高信息增益的特征創建一個在a_best上劃分的決策節點使用劃分后的樣本創建作為當前決策節點的子節點,并在這些子節點上遞歸地處理具體實現例子
見鏈接c4.5算法詳解包含基本概念和舉例
備注:其他算法只需要將將選擇分裂子節點的選擇標準依次改變即可
總結
以上是生活随笔為你收集整理的Decision Tree学习笔记(基础篇)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++中的 extern C
- 下一篇: linux脚本编程(shell)浅介