資料探勘知識點-決策樹
簡介
對於《資料探勘導論》的學習總結,使用C4.5決策樹。
正文
以C4.5為基礎,決策樹演算法的一般過程如下:
- 給定一個表示為“屬性-值”格式的資料集T。資料集由多個具有輸入屬性和一個輸出屬性的例項組成。
- 選擇一個最能區別T中例項的輸入屬性,C4.5使用增益率來選擇該屬性。
- 使用該屬性建立一個樹節點,同時建立該節點的分支,每個分支為該節點的所有可能取值。
- 使用這些分支,將資料集中的例項進行分類,成為細分的字類。
- 將當前字類的例項集合設為T,對資料集中的剩餘屬性重複(2)~(3)步,直到滿足一下兩個條件之一時,該過程終止,建立一個葉子節點,該節點為沿此分支所表達的分類類別,其值為輸出屬性的值。
- 該子類中的例項滿足預定義的標準,如全部分到一個輸出類中,分到一個輸出類中的例項達到某個比例。
- 沒有剩餘屬性。
三個關鍵技術
- 選擇最能區別資料集中例項屬性的方法。
- 剪枝方法。
- 檢驗方法。
以上三個方法分別決定了建立過程中的三個重要環節:樹分支節點的建立、剪枝和檢驗。
建立、剪枝和檢驗的意義:
- 建立:不同的建立方法很大程度上決定了不同的決策樹演算法。
- 剪枝:優化決策樹而採取的剪除部分分支的方法。
- 檢驗:評估決策樹的分類正確程度。
1.選擇最能區別資料集中例項屬性的方法
C4.5使用了**資訊理論(information Theory)的方法,即使用增益率(Gain Ratio)**的概念來選擇屬性,目的是使樹的層次和節點數最小,是資料的概化程度最大化。
基本思想:選擇具有最大增益率的屬性作為分支節點來分類例項資料。
要了解增益率的概念,首先需要了解資訊熵和資訊增益的概念:
- 資訊熵
資訊變化的平均資訊量稱為資訊熵(Information Entropy),解決了對資訊的量化問題。簡單來說,資訊熵是資訊的不確定程度的度量。資訊的信心熵越大,資訊就越不容易弄清楚,需要的資訊量就越大。資訊熵越大,能傳輸的資訊就越多。
計算公式
其中:H(x)表示隨機時間x的熵;p表示xi出現的概率;xi表示某個隨機時間x的所有可能結果。因為式子中對數的底數為2,所以式中計算得到的熵的單位的單位是bit。
- 資訊增益
**資訊增益(Information Gain)**表示當x取屬性xi值時,其對降低x的熵的貢獻大小。資訊增益值越大,越適於對x進行分類。
計算屬性A的增益率的公式如下:
理解: A的增益率等於A的增益量比上按照A進行分類後的資訊熵。
其中,對於一組I例項,計算Gain(A)的公式如下:
理解: A的資訊增量等於總的資訊量減去總的資訊按照A進行分類之後的差值。
根據資訊熵的公式,可以很容易地得到Info(I)和Info(I,A)如下。Info(I)為當前資料集所有例項所表達的資訊量,Info(I,A)為根據屬性A的k個可能取值分類I中例項之後所表達的資訊量。
其中n為例項集合I被分為可能的類的個數,k為屬性A具有k個輸出屬性。
理解:
- Info(I):I的資訊熵等於最後所有輸出結果的類別的概率與其以對應對數的成績之和的負數。即假如按照天氣(晴朗,下雨)為節點,輸出為是否打球的話,這裡對I的計算類別是打球或者不打球,而不是按照天氣的情況做分類。(易錯點,容易與SplitsInfo(A)弄混)。
- Info(I,A):I按照A的類別進行分類後,每個類別出現的概率與其資訊熵(類別的資訊熵的分類結果為的最後的輸出,即是否打球)的成績的和的負數。
理解: 對按照A分類的類別的資訊熵的和。同樣是上面的例子,假如A為天氣情況,則這裡的類別應該是晴朗或者下雨,而非是否打球。看似和Info(I)相同,但是分類的類別不一樣。
2.決策樹剪枝
剪枝(Pruning)是為了控制決策樹規模,優化決策樹而採取的剪除部分分支的方法。剪枝分為兩種:預剪枝(Pre-Pruning)和後剪枝(Post-Pruning)。
- 預剪枝:是在樹的生長過程中設定停止生長指標,一般是指定數的最大深度和當前例項集合數量小於預先預定的閾值,當達到該指標時就停止繼續分支,使決策樹不能充分生長,從而達到剪枝的目的。預剪枝最大的問題使最大深度的預先指定是否將會直接導致因限制樹的生長影響決策樹的質量,使之不能更加準確地對新資料例項進行分類和預測。
- 後剪枝:是指在完全生長而成的決策樹的基礎上,根據一定的規則標準,剪掉樹中不具備一般代表性的子樹,取而代之的是葉子節點,進而形成一棵規模較小的新樹。悲觀剪枝法(Pessimistic Error Pruning,PEP)。PEP是被認為目前決策樹後剪枝方法精度較高的技術之一,它使用訓練集生成決策樹的同時又將其當作剪枝集,剪枝和檢驗同時進行。
3.決策樹檢驗
- use training set:使用訓練集例項進行檢驗。
- supplied test set:使用另外的檢測集進行檢驗。
- cross-validation:使用交叉驗證(Cross Validation)來檢驗分類器。
- percent split:百分比檢驗。
其中,交叉檢驗(CV)是用來檢驗分類器效能的一種最為常用的統計分析方法,其中基本思想是:將資料集分為訓練集和檢驗集,劃分方法不同,存在不同的CV檢驗方法。
- Hold-Out方法:將資料集隨機劃分為訓練集和檢驗集。方法簡單,但是檢驗效果不具有說服力。
- k-折交叉檢驗(k-CV):將資料集分為k組(一般均分,且大於等於2),將資料分別做一次檢驗集對其餘k-1組資料作為訓練集建立的模型進行檢驗,將這k個檢驗的檢驗集分類正確率的平均值作為該模型的平均效能度量。該檢驗可以有效地避免模型訓練不夠或者訓練過度狀態的發生,檢驗結果比較有說服力。
- Leave-One-Out交叉檢驗:設資料集有n個例項,則將它每個例項單獨作為驗證集,對其餘剩下的例項作為訓練集而得出的模型進行檢驗。