用較少的東西,同樣可以做好的事情。越是小的決策樹,越優於大的決策樹。
引文
數據分類是一個兩階段過程,包括學習階段(構建分類模型)和分類階段(使用模型預測給定數據的類標號)。決策樹分類算法是監督學習的一種,即Supervised learning。
- 分類過程的第一階段也可以看做學習一個映射或函數y=f(x),它可以預測給定元組X的類標號y。
- 在第二階段,使用模型進行分類。首先評估分類器的預測準確率。這個過程要儘量的減少過擬合。(爲什麼是儘量減少而不是避免呢,因爲過擬合一般是避免不了的,再好的模型也會有過擬合的情況)。
1 決策樹歸納
決策樹歸納是從有類標號的訓練元組中學習決策樹。常用的決策樹算法有ID3,C4.5和CART。它們都是採用貪心(即非回溯的)方法,其中決策樹自頂向下遞歸的分治方法構造。其中劃分屬性的方法各不相同,ID3使用的是信息增益,C4.5使用的是信息增益率,而CART使用的是Gini基尼指數。下面來簡單介紹下決策樹的理論知識。內容包含熵、信息增益、信息增益率以及Gini指數的計算公式。
2 基本原理
2.1 算法優點
決策樹算法的優點如下:
(1)分類精度高;
(2)成的模式簡單;
(3)對噪聲數據有很好的健壯性。
因而是目前應用最爲廣泛的歸納推理算法之一,在數據挖掘中受到研究者的廣泛關注。
2.2 算法一般流程
(1)收集數據:任意方法和途徑。
(2)準備數據:書構造算法只適用於標稱型數據,因此數據必須離散化。
(3)分析數據:構造樹完成後,檢查圖形是否符合預測。
(4)訓練算法:決策樹的數據構造。
(5)測試算法:一般將決策樹用於分類,可以用錯誤率衡量,而錯誤率使用經驗率計算。
(6)使用算法:決策樹可以用於任何監督學習算法。
2.3 實例
信息增益和熵(克勞德.香農提出)
1.使用信息增益進行決策樹歸納
信息增益度量屬性選擇
熵(Entropy)的計算公式
熵定義爲信息增益的期望值。熵越大,一個變量的不確定性就越大(也就是可取的值很多),把它分析清楚需要的信息量也就越大,熵是整個系統的平均信息量。對
熵越大,說明系統越混亂,攜帶的信息就越少。熵越小,說明系統越有序,攜帶的信息就越多。信息的作用就是在於消除不確定性。
ID3劃分特徵使用的就是信息增益IG.
一個屬性的信息增益越大,表明屬性對樣本的熵減少的能力就更強,該屬性使得數據所屬類別的不確定性變爲確定性的能力越強。
注:需要的期望信息越小,分區的純度越高。
信息增益計算
首先計算特徵A對數據集D的經驗條件熵
引入條件熵,在信息論中主要是爲了消除結果的不確定性。
然後計算信息增益
其中,
下面來應用一個實例,訓練元組數據D
在這裏
根據計算出來的條件熵,計算按
類似的可以計算出其它屬性的信息增益:
由於
ID3採用的就是就是IG,算法步驟如下:
2.使用增益率計算
ID3使用的是信息增益,C4.5使用的是信息增益率。
C4.5算法繼承了ID3算法的優點,並在以下幾方面對ID3算法進行了改進:
1) 用信息增益率來選擇屬性,克服了用信息增益選擇屬性時偏向選擇取值多的屬性的不足;
2) 在樹構造過程中進行剪枝;
3) 能夠完成對連續屬性的離散化處理;
4) 能夠對不完整數據進行處理。
C4.5算法有如下優點:產生的分類規則易於理解,準確率較高。其缺點是:在構造樹的過程中,需要對數據集進行多次的順序掃描和排序,因而導致算法的低效。此外,C4.5只適合於能夠駐留於內存的數據集,當訓練集大得無法在內存容納時程序無法運行。
另外,無論是ID3還是C4.5最好在小數據集上使用,決策樹分類一般只試用於小數據。當屬性取值很多時最好選擇C4.5算法,ID3得出的效果會非常差。
分裂信息計算公式:
增益率定義爲:
選擇具有最大增益率的特徵作爲分裂特徵。
3.基尼指數Gini index
基尼指數在CART中使用,Gini index度量的是數據分區或訓練元組集D的不純度。計算方式如下:
3.學習推介
Andrew W. Moore PPT dtree
決策樹Python實現,單獨成文,網址:決策樹實現
Wikipedia維基百科-Decision Tree決策樹
最後,附一張決策樹的優點和缺點圖:
4.Reference
[1]數據挖掘概念與技術 Third Edition,韓家偉.
[2]機器學習實戰 ,Peter Harrington.