決策樹演算法:CART
阿新 • • 發佈:2018-12-16
我們前面講了兩種決策樹演算法和,還有一種比較經典的決策樹演算法就是,也叫分類迴歸樹演算法,它是一種二分遞迴分割演算法,把當前樣本劃分為兩個子樣本,使得生成的每個非葉子結點都有兩個分支,因此CART演算法生成的決策樹是結構簡潔的二叉樹。由於演算法構成的是一個二叉樹,因此它在每一步的決策時只能用是或者否,不管一個特徵有多少個取值,它也是把資料分為兩部分。 當是分類樹時,採用值作為節點分裂的依據;當是迴歸樹時,採用樣本的最小方差作為節點分裂的依據。 節點的不純度通常表示為: 其中表示屬於類的概率。而值越大,代表節點越不純。當時,所有樣本屬於同類。 方差通常表示為: 方差越大,表示該節點的資料越分散,預測的效果就越差。如果一個節點的所有資料都相同,那麼方差就為0。
- 例項分析 這裡還是用我們前面的例子來做分析,因為之前的資料都是離散的,所以這裡我們隨機加了一組連續的資料預測迴歸,資料都是自己編的,不要在意符不符合實際:
outlook | tem | hum | windy | play | age |
---|---|---|---|---|---|
overcast | hot | high | not | no | 18 |
overcast | hot | high | very | no | 22 |
overcast | hot | high | medium | no | 16 |
sunny | hot | high | not | yes | 24 |
sunny | hot | high | medium | yes | 20 |
rain | mild | high | not | no | 16 |
rain | mild | high | medium | no | 19 |
rain | hot | normal | not | yes | 25 |
rain | cool | normal | medium | no | 30 |
rain | hot | normal | very | no | 28 |
sunny | cool | normal | very | yes | 22 |
sunny | cool | normal | medium | yes | 24 |
overcast | mild | high | not | no | 24 |
overcast | mild | high | medium | no | 35 |
overcast | cool | normal | not | yes | 40 |
overcast | cool | normal | medium | yes | 28 |
rain | mild | normal | not | no | 26 |
rain | mild | normal | medium | no | 34 |
overcast | mild | normal | medium | yes | 36 |
overcast | hot | normal | very | yes | 27 |
sunny | mild | high | very | yes | 36 |
sunny | mild | high | medium | yes | 35 |
sunny | hot | normal | not | yes | 30 |
rain | mild | high | very | no | 26 |
在上面的列表中有四個屬性, ,,。為分類的結果。下面我們就根據來預測情況。 當特徵為時,有三個屬性、、,其中屬性為時,的結果有1個,的結果有7個。屬性為時,的結果有4個,的結果有5個。屬性為時,的結果有7個,的結果有0個。對有三種屬性,那麼它的取值也就有三種,每種的指數和方差計算如下: (1):
rain或overcast | sunny | |
---|---|---|
yes | 5 | 7 |
no | 12 | 0 |
分類預測: 迴歸預測:
(2):
rain或sunny | overcast | |
---|---|---|
yes | 8 | 4 |
no | 7 | 5 |
分類預測: 迴歸預測: 迴歸計算跟上面一樣,這裡資料有點多,所以我就不在此一一計算了,各位看官如果感興趣,就自己動手計算一下了。
(3):
sunny或overcast | rainy | |
---|---|---|
yes | 11 | 1 |
no | 5 | 7 |
分類預測: