標籤:val 啟發學習法演算法 acdream 沒有 機率 http pytho 必須 決策
決策樹之ID3演算法
Content
1.ID3概念2.資訊熵3.資訊增益 Information Gain4. ID3 bias5. Python演算法實現(待定)一、ID3概念
ID3演算法最早是由羅斯昆(J. Ross Quinlan)於1975年在雪梨大學提出的一種分類預測演算法,演算法的核心是“資訊熵”。ID3演算法通過計算每個屬性的資訊增益,認為資訊增益高的是好屬性,每次劃分選取資訊增益最高的屬性為劃分標準,重複這個過程,直至產生一個能完美分類訓練範例的決策樹。
決策樹是對資料進行分類,以此達到預測的目的。該決策樹方法先根據訓練集資料形成決策樹,如果該樹不能對所有對象給出正確的分類,那麼選擇一些例外加入到訓練集資料中,重複該過程一直到形成正確的決策集。決策樹代表著決策集的樹形結構。
ID3演算法是一種貪心演算法,用來構造決策樹。ID3演算法起源於概念學習系統(CLS),以資訊熵的下降速度為選取測試屬性的標準,即在每個節點選取還尚未被用來劃分的具有最高資訊增益的屬性作為劃分標準,然後繼續這個過程,直到產生的決策樹能完美分類訓練範例。
首選分類方法:降低隨機性——to a low entropy 紅歸紅,綠歸綠回到classification 的本質,把混合的東西分開!屬於:增大資訊增益——每次差異越大越好
P.S.貪心演算法:
貪心演算法(又稱貪婪演算法)是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的局部最優解。
奧卡姆剃刀原理:如無必要,勿增實體
ID3演算法是決策樹的一種,它是基於奧卡姆剃刀原理的,即用盡量用較少的東西做更多的事。ID3演算法,
即Iterative Dichotomiser 3,迭代二叉樹3代,是Ross Quinlan發明的一種決策樹演算法,這個
演算法的基礎就是上面提到的奧卡姆剃刀原理,越是小型的決策樹越優於大的決策樹,儘管如此,也不總
是產生最小的樹型結構,而是一個啟發學習法演算法。
在資訊理論中,期望資訊越小,那麼資訊增益就越大,從而純度就越高。ID3演算法的核心思想就是以資訊
增益來度量屬性的選擇,選擇分裂後資訊增益最大的屬性進行分裂。該演算法採用自頂向下的貪婪搜尋遍
曆可能的決策空間。
二、資訊熵 Entropy
熵Entropy——測量隨機性的一種方法
熵這個概念最早起源於物理學,在物理學中是用來度量一個熱力學系統的無序程度,而在資訊學裡面,熵
是對不確定性度量。在1948年,香農引入了資訊熵,將其定義為離散隨機事件出現的機率,一個系統越
是有序,資訊熵就越低,反之一個系統越是混亂,它的資訊熵就越高。所以資訊熵可以被認為是系統有序
化程度的一個度量。
\[H(x) = - \sum_{i=1}^{n} P_{i} log_{2} P_{i} \]
三、資訊增益 Information Gain
資訊增益是針對一個一個特徵而言的,就是看一個特徵,系統有它和沒有它時的資訊量各是多少,兩者
的差值就是這個特徵給系統帶來的資訊量,即資訊增益。
接下來以天氣預報的例子來說明。下面是描述天氣資料表,學習目標是play或者not play。
可以看出,一共14個範例,包括9個正例和5個負例。那麼當前資訊的熵計算如下
\[ Entropy(S) = -\frac{9}{14} log_2 \frac{9}{14} - \frac{5}{14} log_2 \frac{5}{14} = 0.940286\]
在決策樹分類問題中,資訊增益就是決策樹在進行屬性選擇劃分前和劃分後資訊的差值。假設利用
屬性Outlook來分類,那麼如
photo :outlook classification
劃分後,資料被分為三部分了,那麼各個分支的資訊熵計算如下
\[ Entropy(sunny) = -\frac{2}{5} log_2 \frac{2}{5} - \frac{3}{5} log_2 \frac{3}{5} = 0.970951\]
\[ Entropy(overcast) = 0\]
\[ Entropy(rainy) = -\frac{3}{5} log_2 \frac{3}{5} - \frac{2}{5} log_2 \frac{2}{5} = 0.970951\]
那麼劃分後的資訊熵為
\[ Entropy(S|T) = \frac{5}{14}Entropy(sunny) +\frac{4}{14}Entropy(overcast)+\frac{5}{14}Entropy(rainy) = 0.693536 \]
Entropy(S|T)代表在特徵屬性T的條件下樣本的條件熵。那麼最終得到特徵屬性T帶來的資訊增益為
$$ IG(T) = Entropy(S) - Entropy(S|T) = 0.24675
資訊增益計算公式:
\[ IG(S|T) = Entropy(S) - \sum_{value(T)} \frac{|S_v|}{S} Entropy(S_v) \]
其中為S全部樣本集合,value(T)是屬性T所有取值的集合,v是的T其中一個屬性值,\(S_v\)是S中屬性T的
值為v的範例集合,\(|S_v|\) 為\(S_v\)中所含範例數。
在決策樹的每一個非葉子結點劃分之前,先計算每一個屬性所帶來的資訊增益,選擇最大資訊增益的屬性來劃
分,因為資訊增益越大,區分樣本的能力就越強,越具有代表性,很顯然這是一種自頂向下的貪心策略。以上
就是ID3演算法的核心思想。
四、 ID3 biasreview:搜尋空間演算法偏差
1.restriction bias 限定偏差
限定在假設集 hypothesis set
2.preference bias 優選偏差
告知首選的假設集中的假說的來源
- ID3 bias —— Inductive bias 歸納偏差
1.good splits near the top
2.correct over incorrect (偏向於正確的決策樹而不是錯誤的決策樹)
如果一個決策樹在頂部有非常好的分割,但是產生了錯誤答案,它也不會選擇。
P.S.看起來很愚蠢,but這就是工程思維。必須可量化,可執行。讓機器可執行。
3.shorter trees(由第一條自然造成的結果)
參考:
http://blog.csdn.net/acdreamers/article/details/44661149
感悟:學習通訊原理及資訊理論對 機器學習演算法協助很大
【Machine Learning】決策樹之ID3演算法 (2)