決策樹學習是應用最廣的概括推理算法之一,是一種逼近離散值函數的方法,主要的算法有:ID3算法、C4.5算法及CART。算法
在機器學習中,決策樹是一種預測模型,表明的是一種對象屬性與對象值之間的一種映射關係,每個節點表明某個對象,樹中的每個分叉路徑表明某個可能的屬性值,而每個葉子節點則對應從根節點到該葉子節點所經歷的路徑所表示的對象的值。決策樹僅有單一輸出,若是有多個輸出,能夠分別創建獨立的決策樹以處理不一樣的輸出。app
適用的特徵:機器學習
實例由「屬性-值」對錶示 ide
目標函數具備離散的輸出值 函數
訓練數據能夠包含錯誤 post
訓練數據能夠包含缺乏屬性值的實例 學習
ID3算法介紹 ui
ID3算法是決策樹的一種,它是基於奧卡姆剃刀原理的,即用盡可能用較少的東西作更多的事。ID3算法,即Iterative Dichotomiser 3,迭代二叉樹3代,是Ross Quinlan發明的一種決策樹算法,這個算法的基礎就是上面提到的奧卡姆剃刀原理,越是小型的決策樹越優於大的決策樹,儘管如此,也不總是生成最小的樹型結構,而是一個啓發式算法。spa
在信息論中,指望信息越小,那麼信息增益就越大,從而純度就越高。ID3算法的核心思想就是以信息增益來度量屬性的選擇,選擇分裂後信息增益最大的屬性進行分裂。該算法採用自頂向下的貪婪搜索遍歷可能的決策空間。.net
3. 信息熵與信息增益
在信息增益中,重要性的衡量標準就是看特徵可以爲分類系統帶來多少信息,帶來的信息越多,該特徵越重要。在認識信息增益以前,先來看看信息熵的定義
熵這個概念最先起源於物理學,在物理學中是用來度量一個熱力學系統的無序程度,而在信息學裏面,熵是對不肯定性的度量。在1948年,香農引入了信息熵,將其定義爲離散隨機事件出現的機率,一個系統越是有序,信息熵就越低,反之一個系統越是混亂,它的信息熵就越高。因此信息熵能夠被認爲是系統有序化程度的一個度量。
假如一個隨機變量的取值爲
,每一種取到的機率分別是
,那麼
的熵定義爲
意思是一個變量的變化狀況可能越多,那麼它攜帶的信息量就越大。
對於分類系統來講,類別是變量,它的取值是
,而每個類別出現的機率分別是
而這裏的就是類別的總數,此時分類系統的熵就能夠表示爲
以上就是信息熵的定義,接下來介紹信息增益。
信息增益是針對一個一個特徵而言的,就是看一個特徵,系統有它和沒有它時的信息量各是多少,二者的差值就是這個特徵給系統帶來的信息量,即信息增益。
接下來以天氣預報的例子來講明。下面是描述天氣數據表,學習目標是play或者not play。
能夠看出,一共14個樣例,包括9個正例和5個負例。那麼當前信息的熵計算以下
在決策樹分類問題中,信息增益就是決策樹在進行屬性選擇劃分前和劃分後信息的差值。假設利用
屬性Outlook來分類,那麼以下圖
劃分後,數據被分爲三部分了,那麼各個分支的信息熵計算以下
那麼劃分後的信息熵爲
表明在特徵屬性
的條件下樣本的條件熵。那麼最終獲得特徵屬性
帶來的信息增益爲
信息增益的計算公式以下
其中爲所有樣本集合,
是屬性
全部取值的集合,
是
的其中一個屬性值,
是
中屬性
的值爲
的樣例集合,
爲
中所含樣例數。
在決策樹的每個非葉子結點劃分以前,先計算每個屬性所帶來的信息增益,選擇最大信息增益的屬性來劃分,由於信息增益越大,區分樣本的能力就越強,越具備表明性,很顯然這是一種自頂向下的貪心策略。以上就是ID3算法的核心思想。
ID3的優缺點:
優勢:
假設空間包含全部的決策樹,它是關於現有屬性的有限離散值函數的一個完整空間,避免搜索不完整假設空間的一個主要風險:假設空間可能不包含目標函數。
在搜索的每一步都使用當前的全部訓練樣例,不一樣於基於單獨的訓練樣例遞增做出決定,容錯性加強。
在搜索過程當中不進行回溯,可能收斂到局部最優而不是全局最優。
只能處理離散值的屬性,不能處理連續值的屬性。信息增益度量存在一個內在偏置,它偏袒具備較多值的屬性。
C4.5算法
C4.5 算法繼承了ID3 算法的優勢,並在如下幾方面對ID3 算法進行了改進:
增益比率度量是用前面的增益度量Gain(S,A)和分裂信息度量SplitInformation(S,A)來共同定義的,以下所示:
其中,分裂信息度量被定義爲(分裂信息用來衡量屬性分裂數據的廣度和均勻):
其中S1到Sc是c個值的屬性A分割S而造成的c個樣例子集。注意分裂信息實際上就是S關於屬性A的各值的熵。
C4.5算法構造決策樹的過程
CART算法
使用基尼指數進行屬性選擇, 請參閱 https://blog.csdn.net/gzj_1101/article/details/78355234