【Machine Learning】决策树之ID3算法 (2)
決策樹之ID3算法
Content
1.ID3概念
2.信息熵
3.信息增益 Information Gain
4. ID3 bias
5. 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 bias
review:搜索空間算法偏差
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(由第一條自然造成的結果)
參考:
1.http://blog.csdn.net/acdreamers/article/details/44661149
2.Udacity論壇 (更全面)https://discussions.youdaxue.com/t/topic/35311
感悟:學習通信原理及信息論對 機器學習算法幫助很大
轉載于:https://www.cnblogs.com/Neo007/p/8257825.html
總結
以上是生活随笔為你收集整理的【Machine Learning】决策树之ID3算法 (2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AspectJ Join Point M
- 下一篇: 第五周学习笔记