決策樹模型(4)Cart演算法

發表於2024-04-09

Cart演算法

Cart是Classification and regression tree的縮寫,即分類迴歸樹。它和前面的ID3, C4.5等演算法思想一致都是透過對輸入空間進行遞迴劃分並確定每個單元上預測的機率分佈,進而進行迴歸和分類任務。只不過由於任務的不同, 所以迴歸樹和分類樹的劃分準則並不相同。

Cart生成

迴歸樹

模型

上面說到,我們將特徵空間劃分為一個個小的單元,假設共有\(M\)個,那麼對於迴歸任務來說,每個單元就應該對於一個數值,我們分別記作\(R_i\)\(c_i\)。那麼決策樹模型就可以表示為

\[f(x) = \sum_{m=1}^M c_m I(x\in R_m) \]

即同一個所屬同一個單元內的樣本的值相同。
那麼我們的每個單元上的預測誤差就可以用下面的式子表示

\[L = \sum_{x_i\in R_m} (y_i - f(x_i))^2= \sum_{x_i\in R_m} (y_i - c_m)^2 \]

\(L^{\prime}=0\),我們可以得到

\[\hat{c}_m = ave(y_i|x_i\in R_m)=\frac{\sum_{x_i\in R_m}y_i}{|R_m|} \]

但問題的難點在於如何對決策空間進化劃分,文中給出了一種啟發式的方法。

劃分方法

選擇第\(j\)個變數\(x^{(j)}\)和它的取值s,作為切分變數和切分點,並定義兩個區域(兩個劃分集合)
\(R_1(j, s)=\{x|x^{(j)} \leq s\}\)以及\(R_2(j, s)=\{x|x^{(j)} > s\}\)
這樣我們可以透過求解下式來找到每次最佳劃分變數和切分點。

\[\begin{equation} \mathop\min_{j,s} [\mathop\min_{\hat{c_1}} \sum_{x_i\in {R_1(j,s)}} (y_i - \hat{c_1})^2+\mathop\min_{\hat{c_2}} \sum_{x_i\in {R_2(j,s)}} (y_i - \hat{c_2})^2] \end{equation} \]

其中\(j\)從1到所有存在的特徵,\(s\)取遍\(x^{(j)}\)所有可能的取值。

生成演算法

Step1:求解公式(1)得到切分變數與切分點
Step2:劃分子區域\(R_1(j, s)=\{x|x^{(j)} \leq s\}\)以及\(R_2(j, s)=\{x|x^{(j)} > s\}\),並決定子區域的輸出值
Step3:遞迴調對子區域遞迴呼叫上述步驟,直至滿足停止條件
Step4:劃分為\(M\)個子區域,生成決策樹完畢。

分類樹

Cart分類樹和前面的ID3以及C4.5大致相同,主要不同的地方在於劃分方法(特徵選擇)有所區別,我們將重點對此部分進行闡述。

劃分方法

Cart分類樹使用基尼指數選擇最有特徵(表示集合\(D\)的不確定性,成正相關),同時決定該特徵的最優二值切分點。
樣本的基尼指數計算如下:

\[\mathrm {Gini}(D) = 1 - \sum_{k=1}^{K} (\frac{\vert C_k \vert}{|D|})^2 \]

定義在特徵\(A\)的條件下,集合\(D\)的基尼指數為:

\[\mathrm {Gini}(D) = \frac{|D_1|}{|D|}\mathrm {Gini}(D_1) + \frac{|D_2|}{|D|}\mathrm {Gini}(D_2) \]

生成演算法

Step1:對現有資料集的每個特徵的每個取值計算其基尼指數並選擇最小的特徵\(A\)及其取值\(A=a\)作為切分點。
Step2:依照切分點將資料集劃分為兩個部分\(D_1\)\(D_2\)
Step3:繼續對兩個子集進行遞迴操作,直至達到停止條件(樣本數小於閾值,樣本基本屬於同一類等等)。

相關文章