一、決策樹
決策樹由結點和有向邊組成,結點又分爲內部結點和葉結點。從本質上來看,決策樹的學習過程包括特徵選擇,決策樹生成和決策樹剪枝3個部分。
1.1決策樹特徵選擇
所謂決策樹特徵選擇即選擇合適的特徵作爲結點對訓練樣本進行劃分,通常使用信息增益或者信息增益比作爲特徵選擇的標準。
信息增益
g(D,A)=H(D)−H(D|A)=−∑k=1K|Ck||D|log2|Ck||D|+∑i=1n|Di||D|H(Di)=−∑k=1K|Ck||D|log2|Ck||D|+∑i=1n|Di||D|∑k=1KDikDilog2|Dik||Di|
其中, D爲訓練集樣本,Ck 表示第k類樣本的集合,Ci 表示特徵A的屬性爲第i個值的樣本集合信息增益比
gR(D,A)=g(D,A)HA(D)=g(D,A−∑ni=1|Di|Dlog2|Di||D|
總結:
以信息增益作爲劃分訓練數據集的特徵,存在偏向於選擇取值較多的特徵的問題,使用信息增益比可以對這一問題進行校正。其對應的應用爲,信息增益對應ID3算法,信息增益比對應C4.5算法。
1.2決策樹生成算法
輸入:訓練數據D,特徵集A,閾值
輸出:決策樹T
(1)若D中所有實例屬於同一類
(2)若A=
(3)否則,按1.1中的方法計算A中各特徵對D的信息增益或者信息增益比,選擇我信息增益或者信息增益比最大的特徵
(4)如果
(5)否則對
(6)對第i個子結點,以
1.3決策樹剪枝
方法:極小化決策樹整體的損失函數
損失函數定義:
在上式中,經驗熵
其中,設樹T的葉節點個數爲|T|,t是樹T的葉結點,該葉結點有
在損失函數中,
稱這一項爲預測誤差,用來描述模型與訓練數據的擬合程度。用|T|來表示模型的複雜度,使用參數
決策樹剪枝算法:
輸入:生成算法生成的整個樹T, 參數
輸出:修剪後的子樹
(1)計算每個結點的經驗熵
(2)遞歸的從樹的葉結點向上回縮,如下圖所示:
如果剪枝之後的損失函數比剪枝之前的損失函數小,則進行剪枝,其父結點變爲新的葉結點
(3)返回(2),直至不能繼續爲止
二、CART
CART(classification and regression tree)分類迴歸樹,其與一般決策樹最大的變化是假設決策樹是二叉樹,內部結點特徵的取值爲‘是’和‘否’
2.1會歸樹的生成
一個迴歸樹對應着輸入空間(特徵空間)的一個劃分以及在劃分單元的輸出值。
假設已將一個輸入空間劃分爲M個單元
2.1.1確立輸出空間的值
當輸入空間的劃分確定時,使用平方誤差來表示迴歸樹對訓練數據的預測誤差
使用平方誤差最小的準則求解每個單元上的最優輸出值,對損失函數求偏導
令上式爲0, 可求得最優解
2.1.2如何對輸入空間進行劃分
使用啓發式的方法,選擇第j個特徵
想要尋找最優切分變量和最優且分點,即要使得對當前結點所有的特徵和其取值,總的損失函數最小,可表示爲
由此,可根據上面求得的最優
2.2分類樹的生成
2.2.1 分裂準則-基尼指數
定義:
2.2.2 生成算法
對於給定的樣本集D,其基尼指數爲
這裏,
樣本集合D根據特徵A是否取某一可能值a被分割成
在每一個結點,遍歷多有的特徵及其可能的取值,選取基尼指數最小的特徵及其對應的且分點作爲最優特徵和最優切分點。遞歸調用直至滿足停止條件。
算法停止的條件是結點中的樣本個數小於預定閾值或樣本集的基尼指數小於預定閾值或者沒有更多特徵。
2.2.3剪枝算法
輸入:CART算法生成的決策樹
輸出:最優決策樹
(1)設k=0,T=
(2)設
(3)自上而下地對各個內部結點t計算
(4)對
(5)設k=k+1,
(6)如果
(7)採用交叉驗證法在子樹序列
三、GBDT(Gradient boosting decision tree)
3.1 GBDT 迴歸樹算法
提升樹模型可以表示爲決策樹的加法模型:
在上式中,
提升樹算法使用前向分步算法:
(1) 確定初始提升樹
(2)第m步的模型:
在上式中,
在二中,CART迴歸樹的輸出結果是
當採用平方誤差作爲損失函數時,
則其算是函數爲
說明:令
(3)梯度提升算法:
利用損失函數的負梯度在當前模型的值作爲迴歸問題提升樹算法中的殘差的近似值,擬合一個迴歸樹
其算法基本步驟:
(1)初始化
(2)對m=1,2,3,…,M
(a)對=1,2,…, N,計算殘差
(b)對
(c)對j=1,2,3,…J,計算
(d)更新
(3)得到迴歸樹
3.2GBDT分類樹算法
未完待續….
參考文獻:李航《統計學習方法》