決策樹之ID3演算法
今天,我來講解的是決策樹。對於決策樹來說,主要有兩種演算法:ID3演算法和C4.5演算法。C4.5演算法是 對ID3演算法的改進。今天主要先講ID3演算法,之後會講C4.5演算法和隨機森林等。
Contents
1. 決策樹的基本認識
2. ID3演算法介紹
3. 資訊熵與資訊增益
4. ID3演算法的python實現
-
決策樹的基本認識
決策樹是一種依託決策而建立起來的一種樹。在機器學習中,決策樹是一種預測模型,代表的是一種對 象屬性與物件值之間的一種對映關係,每一個節點代表某個物件,樹中的每一個分叉路徑代表某個可能 的屬性值,而每一個葉子節點則對應從根節點到該葉子節點所經歷的路徑所表示的物件的值。決策樹僅 有單一輸出,如果有多個輸出,可以分別建立獨立的決策樹以處理不同的輸出。接下來講解ID3演算法。
-
ID3演算法介紹
ID3演算法是決策樹的一種,它是基於奧卡姆剃刀原理的,即用盡量用較少的東西做更多的事。ID3演算法, 即Iterative Dichotomiser 3,迭代二叉樹3代,是Ross Quinlan發明的一種決策樹演算法,這個 演算法的基礎就是上面提到的奧卡姆剃刀原理,越是小型的決策樹越優於大的決策樹,儘管如此,也不總 是生成最小的樹型結構,而是一個啟發式演算法。
在資訊理論中,期望資訊越小,那麼資訊增益就越大,從而純度就越高。ID3演算法的核心思想就是以資訊 增益來度量屬性的選擇,選擇分裂後資訊增益最大的屬性進行分裂。該演算法採用自頂向下的貪婪搜尋遍 歷可能的決策空間。
-
資訊熵與資訊增益
在資訊增益中,重要性的衡量標準就是看特徵能夠為分類系統帶來多少資訊,帶來的資訊越多,該特徵越 重要。在認識資訊增益之前,先來看看資訊熵的定義
熵這個概念最早起源於物理學,在物理學中是用來度量一個熱力學系統的無序程度,而在資訊學裡面,熵 是對不確定性的度量。在1948年,夏農引入了資訊熵,將其定義為離散隨機事件出現的概率,一個系統越 是有序,資訊熵就越低,反之一個系統越是混亂,它的資訊熵就越高。所以資訊熵可以被認為是系統有序 化程度的一個度量。
假如一個隨機變數的取值為,每一種取到的概率分別是,那麼 X 的熵定義為
意思是一個變數的變化情況可能越多,那麼它攜帶的資訊量就越大。
對於分類系統來說,類別C是變數,它的取值是,而每一個類別出現的概率分別是
而這裡的n就是類別的總數,此時分類系統的熵就可以表示為
以上就是資訊熵的定義,接下來介紹資訊增益。
資訊增益是針對一個一個特徵而言的,就是看一個特徵,系統有它和沒有它時的資訊量各是多少,兩者 的差值就是這個特徵給系統帶來的資訊量,即資訊增益。
接下來以天氣預報的例子來說明。下面是描述天氣資料表,學習目標是play或者not play。
可以看出,一共14個樣例,包括9個正例和5個負例。那麼當前資訊的熵計算如下
在決策樹分類問題中,資訊增益就是決策樹在進行屬性選擇劃分前和劃分後資訊的差值。假設利用 屬性Outlook來分類,那麼如下圖
劃分後,資料被分為三部分了,那麼各個分支的資訊熵計算如下
那麼劃分後的資訊熵為
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20181108143845733.png)代表在特徵屬性的條件下樣本的條件熵。那麼最終得到特徵屬性帶來的資訊增益為
資訊增益的計算公式如下
其中為全部樣本集合,是屬性所有取值的集合,是的其中一個屬性值,是中屬性的 值為的樣例集合,為中所含樣例數。
在決策樹的每一個非葉子結點劃分之前,先計算每一個屬性所帶來的資訊增益,選擇最大資訊增益的屬性來劃 分,因為資訊增益越大,區分樣本的能力就越強,越具有代表性,很顯然這是一種自頂向下的貪心策略。以上 就是ID3演算法的核心思想。