id3不能直接處理連續性的特征,需要將連續性的轉化成離散的,但是會破壞連續性特征的內在結構。
一、概念
CART全稱叫Classification and Regression Tree。首先要強調的是CART假設決策樹是二叉樹,內部結點特征的取值只有“是”和“否”,左分支是取值為“是”的分支,有分支則相反。這樣的決策樹等價於遞歸地二分每個特征。
CART分類回歸樹是一種典型的二叉決策樹,可以做分類或者回歸。如果待預測結果是離散型數據,則CART生成分類決策樹;如果待預測結果是連續型數據,則CART生成回歸決策樹。數據對象的屬性特征為離散型或連續型,並不是區別分類樹與回歸樹的標准,例如表1中,數據對象的屬性A、B為離散型或連續型,並是不區別分類樹與回歸樹的標准。作為分類決策樹時,待預測樣本落至某一葉子節點,則輸出該葉子節點中所有樣本所屬類別最多的那一類(即葉子節點中的樣本可能不是屬於同一個類別,則多數為主);作為回歸決策樹時,待預測樣本落至某一葉子節點,則輸出該葉子節點中所有樣本的均值。
二、CART生成
決策樹的生成就是遞歸地構建二叉決策樹的過程,對回歸樹用平方誤差最小化准則,對分類樹用基尼指數最小化准則,進行特征選擇,生成二叉樹。
三、回歸樹的生成最小二叉回歸樹生成算法:
1、選擇最優切分變量j與切分點s,求解:
遍歷變量j,對固定的切分變量j掃描切分點s,選擇使上式取得最小值的對(j,s)。其中Rm是被划分的輸入空間,Cm空間Rm對應的輸出值。
3、繼續對兩個子區域調用步驟1,直至滿足停止條件。
4、將輸入空間划分為M個區域R1,R2,...Rm生成決策樹:
四、示例
上面的東西有點難以理解,下面舉個例子來說明。
訓練數據見下表,x的取值范圍為區間[0.5,10.5],y的取值范圍為區間[5.0,10.0],學習這個回歸問題的最小二叉回歸樹。
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
---|---|---|---|---|---|---|---|---|---|---|
5.56 | 5.70 | 5.91 | 6.40 | 6.80 | 7.05 | 8.90 | 8.70 | 9.00 | 9.05 |
求解訓練數據的切分點s:
容易求得在R1、R2內部使得平方損失誤差達到最小值的c1、c2為:
這里N1、N2是R1、R2的樣本點數。
求訓練數據的切分點,根據所給數據,考慮如下切分點:
1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5。
對各切分點,不難求出相應的R1、R2、c1、c2及
例如,當s=1.5時,R1={1},R2={2,3,...,10},c1=5.56,c2=7.50,則
現將s及m(s)的計算結果列表如下:
s | 1.5 | 2.5 | 3.5 | 4.5 | 5.5 | 6.5 | 7.5 | 8.5 | 9.5 |
---|---|---|---|---|---|---|---|---|---|
m(s) | 15.72 | 12.07 | 8.36 | 5.78 | 3.91 | 1.93 | 8.01 | 11.73 | 15.74 |
由上表可知,當x=6.5的時候達到最小值,此時R1={1,2,...,6},R2={7,8,9,10},c1=6.24,c2=8.9,所以回歸樹T1(x)為: