決策樹之CART

2021-08-31 01:42:27 字數 1637 閱讀 5960

本系列分享由三篇部落格組成,建議從前往後閱讀學習。

決策樹之id3

決策樹之c4.5

決策樹之cart

前面我們講到了決策樹演算法id3,和c4.5。c4.5是在id3的基礎上發展而來的,c4.5還存在的缺陷有:

1)c4.5不能解決回歸的問題。

2)c4.5需要進行多個對數計算,效率比較低。

3)對於離散型變數中變數值較多的情況只能生成多叉樹。

在cart演算法中將一一解決和優化這些問題。

c4.5每次分枝的分枝數量取決於特徵值的數量。而cart演算法每次分枝都會生成二叉樹。

對於離散型問題,cart會考慮特徵中特徵值分成兩個部分,它會考慮的所有組合方式,選出最好的組合方式進行分枝。如果子結點是多個特徵值的組合,那麼該子樹在之後的分枝操作中依然可以根據該特徵的該特徵值組合進行分類。

對於連續型問題,分枝方式和c4.5是相同的。但需要注意的是,只要分枝包括該特徵的多個特徵值,那麼該子樹依然可以根據該特徵進行分類,這一點與上面的離散型問題是相同的。

在id3中我們依據資訊增益進行特徵選擇,c4.5使用資訊增益比。計算熵需要進行對數運算,效率不高。在cart中將使用基尼係數進行特徵選擇。

在分類問題中,假設是輸出有

對於給定的樣本集

分類之後的基尼係數的計算方式與分類之後的熵的計算方式相同,根據特徵

在cart中是分兩分枝,此時:

基尼係數沒有像熵一樣需要進行對數運算,只需要簡單的加減乘除,效率非常高。既然基尼係數的效率這麼高,那麼使用基尼係數的準確率如何呢?這裡盜用別人的一張圖來比較基尼係數、熵,可以看出熵和基尼係數的計算結果非常相近。

cart演算法不僅支援分類樹,而且還支援回歸樹。回歸樹相比於分類樹有兩個方面的不同。

(1)分類的依據不同

(2)做**的方式不同。

我們先來講第二個,做**的方式不同。分類樹對於每個最終的葉結點,將數量最多的型別作為該結點的分類結果。而在回歸樹中,對於每個最終的葉結點,將原結點中樣本的均值作為**的結果。

分類樹分類的依據是基尼係數,回歸樹分類的依據是誤差平方和。以分枝的均值作為**結果,公式如下:

其中以上公式僅僅是該特徵下一種組合的誤差平方和,我們需要計算所有種組合的誤差平方和選最小的作為該特徵的誤差平方和,最後算出所有特徵的誤差平方和再取最小,對應的特徵即為該分枝的特徵,用一下公式來表示:

其中這幾天分享了id3、c4.5、cart,下面乙個**可以總結這三種演算法。

演算法樹結構

特徵選擇

缺失值處理

剪枝連續值處理

支援模型

id3多叉樹

資訊增益

不支援不支援

不支援分類

c4.5

多叉樹資訊增益比

支援支援

支援分類

cart

二叉樹基尼係數/誤差平方和

支援支援

支援分類/回歸

雖然cart看上去已經被優化了很多方面,但是還是存在一些缺陷。

(1)每一步分枝都是貪婪的思想,只是得到的是當前步驟的最優結果,最後的生成的樹不一定是最優的樹。

(2)分類只能解決單分類問題,還不能解決多分類問題(可以拆成多個單分類問題來解決)。

決策樹和CART決策樹

首先簡單介紹下決策樹 說到決策樹肯定離不開資訊熵 什麼是資訊熵 不要被這名字唬住,其實很簡單 乙個不太可能的時間居然發生了,要比乙個非常可能的時間發生提供更多的資訊。訊息說 今天早上太陽公升起 資訊量是很少的,以至於沒有必要傳送。但另一條訊息說 今天早上日食 資訊量就很豐富。概率越大資訊量就越少,與...

決策樹(CART演算法)

分類問題中,假設有k個類,樣本點屬於第k類的概率為p kp k pk 則概率分布的基尼指數定義為 其中p kp k pk 表示選中的樣本屬於k kk類別的概率,則這個樣本被分錯的概率為 1 pk 1 p k 1 pk 對於給定的樣本集合d,其基尼指數為 這裡的c kc k ck 是d中屬於第k類的樣...

CART決策樹實戰

匯入相關包 import numpy as np import pandas as pd 匯入資料集 from sklearn.datasets import load boston 匯入模型 from sklearn.tree import decisiontreeregressor from s...