信息熵
在信息論中,熵被用來衡量一個隨機變量出現的期望值,它是隨機變量的期望,用來度量信息的不確定程度。熵是整個系統的平均消息量。
一個系統越是有序,信息熵就越低;反之,一個系統越是混亂,信息熵就越高。所以,信息熵也可以說是系統有序化程度的一個度量。處理信息就是爲了把信息搞清楚,就是熵減少的過程。一個屬性的熵越大,它蘊含的不確定信息越大,越有利於數據的分類。這種信息理論方法使得對一個對象分類所需的期望測試數目達到最小,並儘量確保找到一棵簡單的樹來刻畫相關的信息。
信息論中,事件ai的信息量(又叫信息本體)I(ai )可如下度量:
其中p(ai)表示事件ai發生的概率。假設有n個互不相容的事件a1,a2,a3,….,an,它們中有且僅有一個發生,則其平均的信息量(又叫先驗熵)可如下度量:
設S是s個數據樣本的集合。假設類標號屬性具有m個不同的值,定義m個不同類
Ci(i=1,2,....,m)。設si是Ci中樣本的個數。對一個給定的樣本分類所需的期望信息量有下面
公式給出:
其中pi是任意樣本屬於Ci的概率,一般可用si/s來估計。
設屬性A具有v個不同的值{a1,a2,...,av}。可以用屬性A將S劃分爲v個子集{S1,S2,....Sv},其
中Sj包含S中這樣的一些樣本,它們在A上具有值aj。如果用A作爲測試屬性(即最好的分裂
屬性),則這些子集對應於包含集合S的結點生長出來的分支。
設sij是集合Sj中類Ci的樣本數。根據由屬性A劃分子集的熵由下式給出:
充當第j個子集的權,並且等於字集(即A值爲aj)中樣本個數除以S中樣本總數。熵值越小,子集劃分的純度越高,說明選擇屬性A作爲決策節點的效果
越好。
由期望信息和熵值可以得到對應的信息增益值。對於在A上分支將獲得的信息增益可
以由下面的公式得到:
信息增益就是這兩個熵的差值。熵表示系統的不穩定程度,Gain(S,A)越大,系統熵減小的也就越快,表示條件A對於確定系統的貢獻越大,說明選擇測試屬性A作爲決策節點對分類提供的信息越多,系統趨於穩定的速度也更快。
ID3根據信息增益,運用自頂向下的貪心策略建立決策樹。信息增益用於度量某個屬性對樣本集合分類的好壞程度。由於採用了信息增益,ID3算法建立的決策樹規模比較小,查詢速度快。
ID3算法缺點
信息增益度度量存在一個內在偏置,它偏袒具有較多值的屬性,舉一個極端的例子,如果有一個屬性爲日期,那麼將有大量的值,太多的屬性值把訓練樣例分割成非成小的空間,單獨的日期就可能完全預測訓練數據的目標屬性,因此,這個屬性可能會有非常高的信息增益,該屬性可能會被選爲根結點的決策屬性並形成一棵深度爲一級但卻非常寬的樹,這棵樹可以理想的分類訓練數據。但是這個決策樹對於測試數據的分類性能可能會非常差,因爲它過分完美地分割了訓練數據,它不是一個好的分類器。
除此之外,ID3算法增長樹的每一個分支深度,指導恰好能對訓練樣例完美的分類。然而整個策略並非行得通。事實上,當數據中有噪聲或訓練樣例的數量太少以至於不能產生目標函數的有代表性採樣時,這個策略便會遇到困難,導致過度擬合訓練集。
另外ID3算法只能處理離散類型的數據。
ID3算法在搜索的過程中不能進行回溯,每當在樹的某一層次選擇了一個屬性進行測試,它不會再回溯重新考慮這個選擇。所以,它易受無回溯的爬山搜索中的常見風險影響:收斂到局部最優的答案,而不是全局最優。
ID3算法在搜索的每一步都使用當前的所有訓練樣例,以統計爲基礎決定怎樣精化當前的假設。這與那些基於單獨的訓練樣例遞增作出決定的方法不同。使用所有樣例的統計屬性(例如:信息增益)的一個優點是大大降低了對個別訓練樣例錯誤的敏感性。因此,通過修改ID3算法的終止準則以接受不完全擬合訓練數據的假設,是可以很容易的擴展到處理含有噪聲的訓練數據。
剪枝
有幾種途徑可被用來避免決策樹學習中的過度擬合,它們分爲兩類:
1.預先剪枝 及早停止樹的增長,在ID3算法完美分類訓練數據之前就停止樹的增長。
2.後剪枝 即允許樹過度擬合數據,然後對這個樹進行後修剪。
儘管第一種方法可能看起來更直接,但是對過度擬合的樹進行後修剪的第二中方法在實踐中更成功。這是因爲在第一種方法中精確地估計何時停止樹增長是很困難的。
C4.5算法概述
C4.5算法是從ID3算法演變而來,除了擁有ID3算法的功能外,C4.5算法引入了新的方法和增加了新的功能。例如:
1.用信息增益比例的概念
這裏屬性A具有v個不同的值{a1,a2,...,av}。可以用屬性A將S劃分爲v個子集{S1,S2,....Sv},其
中Sj包含S中這樣的一些樣本,它們在A上具有值aj。
2. 合併具有連續值的屬性
ID3算法最初假定屬性離散值,但在實際環境中,很多屬性值是連續的。C4.5算法能夠處理具有連續的屬性值。
3. 處理含有未知屬性值的訓練樣本
C4.5處理的樣本可以含有未知屬性值,其處理方法是用最常用的值替代或者將最常用的值分在同一類中。具體採用概率的方法,依據屬性已知的值,對屬性和每一個值賦予一個概率,取得這些概率依賴於該屬性已知的值。
4. 產生規則
一旦樹被簡歷,就可以把樹轉換成if-then規則。