-
摘自《統計學習方法》 李航 第五章 《機器學習》 周志華 第四章
決策樹算法屬於生成算法,通常包括3個步驟:特征選擇、決策樹的生成、決策樹的剪枝
決策樹學習本質上是從訓練集中歸納出一組分類規則。
決策樹學習的損失函數通常是正則化的極大似然函數。
決策樹的學習算法通常是采用啟發式的方法,近似求解最優化問題
特征選擇問題
特征選擇在於選取對訓練數據具有分類能力的特征。如果一個特征具有更好的分類能力,或者說,按照這一特征將訓練數據集分割成子集,
使得各個子集在當前條件下有最好的分類,那么就更應該選擇這個特征。
決策樹的生成
ID3算法
ID3算法的核心是在決策樹的各個節點上應用信息增益准則選擇特征,遞歸的構建決策樹。
信息增益准則對可取值數目較多的屬性有所偏好!
缺點:ID3算法只有樹的生成,所以該算法生成的樹容易產生過擬合。
C4.5算法
C4.5算法對ID3算法進行了改進,使用信息增益比來選擇特征。
增益率准則對可取值數目較少的屬性有所偏好!
決策樹的剪枝
決策樹的剪枝往往是通過極小化決策樹整體的損失函數或代價函數來實現。
CART算法
分類與回歸樹(classification and regression tree, CART)
決策樹的生成久士遞歸的構建二叉決策樹的過程,對回歸樹用平方誤差最小化准則,對分類樹用基尼指數最小化准則,進行特征選擇,生成二叉樹。
連續和缺失值
連續值處理
由於連續屬性的可取值數目不再有限,因此,不能直接根據連續屬性的可取值來對節點進行划分。此時,連續屬性離散化技術可排上用上,最簡單的策略是采用二分法,
對連續屬性的處理如下(轉自https://www.cnblogs.com/sxron/p/5471078.html):
1、對特征的取值進行升序排序
2、兩個特征取值之間的中點作為可能的分裂點,將數據集分成兩部分,計算每個可能的分裂點的信息增益(InforGain)。優化算法就是只計算分類屬性發生改變的那些特征取值。
3、選擇修正后信息增益(InforGain)最大的分裂點作為該特征的最佳分裂點
4、計算最佳分裂點的信息增益率(Gain Ratio)作為特征的Gain Ratio。注意,此處需對最佳分裂點的信息增益進行修正:減去log2(N-1)/|D|(N是連續特征的取值個數,D是訓練數據數目,此修正的原因在於:當離散屬性和連續屬性並存時,C4.5算法傾向於選擇連續特征做最佳樹分裂點)
缺失值處理(轉自https://www.jianshu.com/p/2abc638490e3)
- 采用拋棄缺失值
拋棄極少量的缺失值的樣本對決策樹的創建影響不是太大。但是如果屬性缺失值較多或是關鍵屬性值缺失,創建的決策樹將是不完全的,同時可能給用戶造成知識上的大量錯誤信息,所以拋棄缺失值一般不采用。只有在數據庫具有極少量的缺失值同時缺失值不是關鍵的屬性值時,且為了加快創建決策樹的速度,才采用拋棄屬性缺失值的方式創建決策樹。 - 補充缺失值
缺失值較少時按照我們上面的補充規則是可行的。但如果數據庫的數據較大,缺失值較多(當然,這樣獲取的數據庫在現實中使用的意義已不大,同時在信息獲取方面基本不會出現這樣的數據庫),這樣根據填充后的數據庫創建的決策樹可能和根據正確值創建的決策樹有很大變化。 - 概率化缺失值
對缺失值的樣本賦予該屬性所有屬性值的概率分布,即將缺失值按照其所在屬性已知值的相對概率分布來創建決策樹。用系數F進行合理的修正計算的信息量,F=數據庫中缺失值所在的屬性值樣本數量去掉缺失值樣本數量/數據庫中樣本數量的總和,即F表示所給屬性具有已知值樣本的概率。 - 缺失值單獨分支
