關於CART的原理我相信各位都有看過,是否是有些暈呢?不要緊,這裏我給你們講個例子,你就理解原來CART迴歸樹生成這麼簡單啊。。。
首先創建一個數據集,爲了方便,就取少許數據,以下表,數據的建立僅做參考html
臂長(m) |
年齡(歲) |
體重(kg) |
身高(m)(標籤值) |
0.5 |
5 |
20 |
1.1 |
0.7 |
7 |
30 |
1.3 |
0.9 |
21 |
70 |
1.7 |
訓練數據中臂長,年齡,體重爲特徵變量X,身高爲標籤值Y,下面開始種樹
一、首先將第一個特徵的第一個值做爲切割點(0.5),則劃分的兩個空間記爲R1,R2
R1={0.5,5,20}
R2={(0.7,7,30),(0.9,21,70)}
c1={1.1}
c2=21(1.3+1.7)=1.5
則平方偏差
m(0.5)=0+0.08=0.08
二、將第一個特徵的第二個變量(0.7)做爲切割點,類比第一步,劃分的兩個空間記爲R1,R2
R1={(0.5,5,20),(0.7,7,30)}
R2={(0.9,21,70)}
c1=21(1.1+1.3)=1.2
c2={1.7}
則平方偏差
m(0.5)=0.02+0=0.02
因此對於固定了特徵後,從上面的MSE得出,因此特徵「臂長=0.7」爲切分點。同理。對於特徵年齡,也能夠採起上述的方式尋找最佳切分點,這樣遍歷了全部的特徵,尋找平方偏差最小的對(j,s),j表示第j個特徵,s表示第j個特徵的第s個值。本例中最佳切分點爲0.7,因此以此將特徵空間劃分爲兩個區域(R1,R2).
三、對於第二步獲得的R1h和R2,分別再次求最佳切分點,遞歸操做,過程同1~2。web