統計學習方法(二)決策樹

橘子oly發表於2016-10-05

注:這篇文章標題雖然是<<統計學習方法>>系列,但實際上我寫的時候是脫離書本寫的,距離上一次看那一章節也有一段時間了,所以主要作用是自我鞏固、理解,大概會想到哪寫哪吧~

一.DT概述

決策樹是if-then規則,是對條件概率的學習。

根據統計學習方法,我們考慮其三要素對應是什麼:

模型-----一種描述對例項進行分類的樹形結構

策略-------與訓練資料矛盾較小的決策樹,同時有很好的泛化能力。實質上DT學習的本質是由訓練資料集估計條件概率模型,其損失函式通常是極大似然函式,因此其學習策略是以損失函式為目標函式的最小化。

學習演算法-----由於從所有可能的決策樹中選取最優決策樹是NP完全問題,因此通常我們採用啟發式方法尋得次優的決策樹


二.DT學習演算法

常見的DT演算法包括ID3,C4.5和CART。

它們的區別

1)C4.5是針對ID3演算法中存在的一個缺陷的改進----ID3演算法在屬性選擇的時候更傾向於屬性值比較多的屬性(屬性值比較多的屬性資訊增益趨於更大),改進的方法是使用資訊增益比來選擇屬性-----資訊增益比也就是資訊增益除以對屬性值個數的懲罰。

2)CART演算法不同之處在於

 A.所生成的DT是一棵二叉決策樹;

B.對分類樹,CART使用Gini指數來衡量變數的不純度;

C.可以用於迴歸


三個演算法在學習步驟上是相同的:特徵選擇--決策樹生成--剪枝。

這裡重點介紹一下CART用於迴歸,以及CART中的剪枝演算法。


三.CART迴歸樹的生成

迴歸樹生成同樣包括兩個步驟:

1)如何選擇特徵用於特徵空間的劃分

這裡同樣用到的是啟發式的方法:對所有屬性j及其取值s,計算劃分後的誤差,選取誤差最小的j和s。

2)如何確定所劃分的特徵空間的輸出值

子空間內所有訓練樣本輸出值取平均。

上述誤差一般採用平方誤差,這樣得到的迴歸樹我們稱之為最小二乘迴歸樹。


四.剪枝演算法

一般的剪枝方法思想很簡單:對某個節點,比較其剪枝前和剪枝後的誤差,若剪枝後誤差減少,則進行剪枝。

CART中使用的是CCP(Cost-Complexity Pruning)方法。


五.關於決策樹模型的改進

    看了一篇關於監督學習分類演算法的review,目前就看完了決策樹部分,覺得收穫是除了再溫習了一遍DT的基本思想之外,體會到如何去改進演算法。因為review會介紹DT提出之後的各種演算法,各個作者是如何改進的。【review的地址,if u need Supervised Machine Learning: A Review of Classification Techniques

    基本上的改進分為兩種:

1)基於演算法本身的固有缺陷進行改善;

2)對演算法的實現效能進行提高。

   最早最basic的關於DT的演算法應該是ID3,它是基於資訊增益進行特徵選擇建樹的;

   ID3一大的缺陷就是用資訊增益會傾向於選擇取值較多的特徵,基於該缺陷提出了C4.5,它使用資訊增益比進行選擇;

  上述兩種演算法都存在一個問題,因為它們都是單變數的演算法(每次基於單個特徵進行劃分),這導致了特徵空間的垂直劃分,進而使得對需要斜對角劃分的資料效果不好。對這種情況的改進就是構建多變數樹,例子有:A. at-least M-of-N; B.combine a decision tree witha linear discriminant for constructing multivariate decision trees.

以上都是針對演算法固有缺陷進行的提高,第二類是關於執行效率的,如下:

   EC4.5是關於C4.5在執行時間效能上做出的提高;

   由於C4.5是fit in memory(在記憶體中擬合的),就此提出了Rainforest,它實現了優美地適應可用的主記憶體。

   DT演算法在效能方面的一大浪費就是對剪枝時被剪掉的那部分結構的構建,因此PUBLIC提出了將剪枝階段和建樹階段整合在一起。

   Olcay and Onur提出瞭如何parallelize(並行化)C4.5演算法。

   incremental DT induction techniques.

以上,希望能對我們在學習其他演算法,及其相關改進時能有所啟發。更希望能對我們找到科研的方向有所啟發。一個美好的祝願:papers~~~

相關文章