決策樹是一種基本的 分類 與 回歸 方法。
學習時毁涉,利用訓練數(shù)據(jù)沉帮,根據(jù)損失函數(shù)最小化的原則建立決策樹模型。
決策樹學習通常包括3個步驟:特征選擇贫堰、決策樹的生成穆壕、決策樹的修剪。
相關算法實現(xiàn)有 ID3其屏,C4.5喇勋,CART。
一偎行、模型
用決策樹分類川背,從根節(jié)點開始,對實例的某一特征進行測試蛤袒,根據(jù)測試結果熄云,將實例分配到其子節(jié)點;這時妙真,每一個子結點對應著改特征的一個取值缴允。如此遞歸地對實例進行測試并分配,直至達到葉節(jié)點珍德。最后將實例分到葉節(jié)點的類中练般。
決策樹學習的損失函數(shù)通常是正則化的極大似然函數(shù)矗漾。
二、特征選擇
如果一個特征具有更好的分類能力薄料,使得各個子集在當前條件下有最好的分類敞贡,那么就應該選擇這個特征。信息增益 就能夠很好地表示這一直觀的準則都办。
信息增益
理解信息增益嫡锌,需要先理解 熵 與 條件熵 的定義。
熵(entropy)是表示變量不確定性的度量琳钉。
設 X 是一個取有限個值的離散隨機變量,其概率分布為
則隨機變量 X 的熵定義為
上式中以 2 為底或以 e 為底歌懒,這時熵的單位分別稱作比特或納特。
熵越大溯壶,隨機變量的不確定性就越大及皂。
設有隨機變量(X,Y),其聯(lián)合概率分布為
條件熵 H(Y|X) 表示在已知隨機變量 X 的條件下隨機變量 Y 的不確定性且改。
這里验烧,
信息增益 表示得知 特征X 的信息而使得 類Y 的信息的不確定性減少的程度。
特征A 對訓練數(shù)據(jù)集 D 的信息增益 g(D,A), 定義為 集合D的經驗熵 H(D) 與特征A給定條件下D的經驗條件熵 H(D|A) 之差又跛,即
根據(jù)信息增益準則的特征選擇方法是:對訓練數(shù)據(jù)集(或子集)D碍拆,計算其每個特征的信息增益,并比較它們的大小慨蓝,選擇信息增益最大的特征感混。
信息增益的算法
設訓練數(shù)據(jù)集為 , 表示其樣本容量礼烈。
設有 個類 弧满, 表示為屬于類 的樣本個數(shù),此熬。
設特征 有 個不同的取值庭呜,根據(jù)特征 的取值將 分為 個子集 , 為 的樣本個數(shù)犀忱。
子集 中屬于 的樣本的集合為 募谎, 為 的樣本個數(shù)。
(1) 計算數(shù)據(jù)集 的經驗熵
(2) 計算特征 對數(shù)據(jù)集 的經驗條件熵
其中 為
(3) 計算信息增益
信息增益比
特征 A 對訓練數(shù)據(jù)集 D 的信息增益比 定義為其信息增益 與訓練數(shù)據(jù)集 D 的經驗熵 H(D) 之比:
三峡碉、決策樹的生成
ID3 算法
ID3 算法的核心思想就是以信息增益來度量屬性的選擇近哟,選擇分裂后信息增益最大的屬性進行分裂。該算法采用自頂向下的貪婪搜索遍歷可能的決策空間鲫寄。
ID3 算法只有樹的生成吉执,容易產生過擬合疯淫。
C4.5 算法
C4.5 算法對 ID3 算法做了改進,C4.5 在生成過程中戳玫,用信息增益比來選擇特征熙掺。
四、決策樹的剪枝
剪枝是決策樹算法對付 過擬合 的主要方法咕宿”壹ǎ基本策略有 預剪枝 和 后剪枝。
預剪枝
預剪枝是指在決策樹生成過程中府阀,對每個結點在劃 分前先進行估計缆镣,若當前結點的劃分不能帶來決策樹泛化性能提升,則停止劃分并將當前結點標記為葉結點试浙。
預剪枝降低了過擬合的風險董瞻,顯著減少了決策樹的訓練時間開銷和測試時間開銷,但可能帶來欠擬合的風險 田巴。
后剪枝
后剪枝則是先從訓練集生成一棵完整的決策樹钠糊, 然后自底向上地對非葉結點進行考察,若將該結點對應的子樹替換為葉結點能帶來決策樹泛化性能提升壹哺,則將該子樹替換為葉結點抄伍。
后剪枝決策樹的欠擬合風險很小,泛化性能往往優(yōu)于預剪枝決策樹.但其訓練時間開銷比未剪枝決策樹和預剪枝決策樹都要大得多管宵。
剪枝往往通過極小化決策樹整體的損失函數(shù)來實現(xiàn)截珍。
設樹 的葉結點個數(shù)為 , 是樹 的葉節(jié)點啄糙,該結點有 個樣本點笛臣,其中 類的樣本點有 個,隧饼, 為葉結點 上的經驗熵沈堡, 為參數(shù),則決策樹學習的損失函數(shù)可以定義為
其中經驗熵為
在算是函數(shù)中燕雁,令
這時有
上式中诞丽, 表示模型對訓練數(shù)據(jù)的預測誤差,即模型與訓練數(shù)據(jù)的擬合程度拐格, 表示模型復雜度僧免。參數(shù) 控制兩者之間的影響。較大的 促使選擇較簡單的模型捏浊,較小的 促使選擇較復雜的模型懂衩。 意味著只考慮模型與訓練數(shù)據(jù)的擬合程度,不考慮模型復雜度。
樹的剪枝算法
(1) 計算每個結點的經驗熵浊洞。
(2) 遞歸的從樹的葉結點向上回縮牵敷。
設一組葉結點回縮到其父結點之前與之后的整體樹分別為 與 ,其對應的損失函數(shù)值分別是 與 法希,如果
則進行剪枝枷餐,即將父結點變?yōu)樾碌娜~結點。
(3) 返回 (2) 苫亦。直至不能繼續(xù)為止毛肋,得到損失函數(shù)最小的子樹 。
五屋剑、CART 算法
CART 算法由以下兩步組成:
(1) 決策樹生成:基于訓練數(shù)據(jù)集生成決策樹润匙,生成的決策樹要盡量大。
(2) 決策樹剪枝:用于驗證數(shù)據(jù)集對已生成的數(shù)進行剪枝并選擇最優(yōu)子樹唉匾,這時用損失函數(shù)最小作為剪枝的標準趁桃。
分類樹的生成
分類樹用基尼指數(shù)選擇最優(yōu)特征,同時決定該特征的最優(yōu)二值切分點肄鸽。
基尼指數(shù)
分類問題中,假設有 個類油啤,樣本點屬于第 類的概率為 典徘,則概率分布的基尼指數(shù)定義為
對于給定的樣本集合 ,其基尼指數(shù)為
這里益咬, 是 中屬于第 類的樣本子集逮诲, 是類的個數(shù)。
如果樣本集合 D 根據(jù)特征 A 是否取某一可能值 a 被分割成 D_1 和 D_2 兩部分幽告,則在特征 A 的條件下梅鹦,集合 D 的基尼指數(shù)定義為
基尼指數(shù) 表示經 分割后集合 的不確定性∪咚基尼指數(shù)值越大齐唆,樣本集合的不確定性就越大。
CART 生成算法
(1) 設結點的訓練數(shù)據(jù)集為 冻河,計算現(xiàn)有特征對該數(shù)據(jù)集的基尼指數(shù)箍邮。此時,對每一個特征 叨叙,對其可能取的每個值 锭弊,根據(jù)樣本點對 的測試為“是”或“否”將 分割成 和 兩部分,計算 時的基尼指數(shù)擂错。
(2) 在所有可能的特征 以及它們所有可能的切分點 中味滞,選擇基尼指數(shù)最小的特征及其對應的切分點作為最優(yōu)特征與最優(yōu)切分點。依最優(yōu)特征與最優(yōu)切分點,從現(xiàn)結點生成兩個子結點剑鞍,將訓練數(shù)據(jù)集依特征分配到兩個子結點中去昨凡。
(3) 對兩個子結點遞歸地調用 (1),(2)攒暇,直至滿足停止條件土匀。
(4) 生成 CART 決策樹。
CART 剪枝
(1) 設 形用,就轧。
(2) 設 。
(3) 自下而上地對各內部結點 計算 田度, 以及
這里妒御, 表示以 為根結點的子樹, 是對訓練數(shù)據(jù)的預測誤差镇饺, 是 的葉結點個數(shù)乎莉。
(4) 自上而下地訪問內部結點 ,如果有 奸笤,進行剪枝惋啃,并對葉結點 以多數(shù)表決法決定其類,得到樹 监右。
(5) 設 健盒。
(6) 如果 不是由根結點單獨構成的樹绒瘦,則回到步驟(4)。
(7) 采用交叉驗證法在子樹序列 中選取最優(yōu)子樹 扣癣。
六惰帽、補充
連續(xù)值處理
對連續(xù)屬性的劃分,最簡單的策略是采用二分法對連續(xù)屬性進行處理父虑。
(1) 將連續(xù)屬性的 個數(shù)值排序该酗。
(2) 取兩兩數(shù)的平均值為劃分點,共 個频轿。
(3) 分別求每個劃分點下的經驗熵 和 垂涯。
(4) 求每個劃分點的信息增益
(5) 找出所有劃分點的最大信息增益,和其對應的劃分點航邢。
與離散屬性不同耕赘,若當前結點劃分屬性為連續(xù)屬性,該屬性還可作為其后代結點的劃分屬性膳殷。