CART分類與回歸樹

2021-07-27 05:47:50 字數 4306 閱讀 7701

【十大經典資料探勘演算法】系列

c4.5

k-means

svmapriori

empagerank

adaboost

knnnaïve bayes

cart

分類與回歸樹(classification and regression trees, cart)是由四人幫leo breiman, jerome friedman, richard olshen與charles stone於2023年提出,既可用於分類也可用於回歸。本文將主要介紹用於分類的cart。cart被稱為資料探勘領域內里程碑式的演算法。

不同於c4.5,cart本質是對特徵空間進行二元劃分(即cart生成的決策樹是一棵二叉樹),並能夠對標量屬性(nominal attribute)與連續屬性(continuous attribute)進行**。

前一篇提到過決策樹生成涉及到兩個問題:如何選擇最優特徵屬性進行**,以及停止**的條件是什麼。

cart對特徵屬性進行二元**。特別地,當特徵屬性為標量或連續時,可選擇如下方式**:

an instance goes left if condition, and goes right otherwise

即樣本記錄滿足condition則**給左子樹,否則則**給右子樹。

標量屬性

進行**的condition可置為不等於屬性的某值;比如,標量屬性car type取值空間為,二元**與多路**如下:

連續屬性

condition可置為不大於

ε」 role=」presentation」 style=」position: relative;」>ε

ε取屬性相鄰值的平均值,其二元**結果如下:

接下來,需要解決的問題:應該選擇哪種特徵屬性及定義condition,才能分類效果比較好。cart採用gini指數來度量**時的不純度,之所以採用gini指數,是因為較於熵而言其計算速度更快一些。對決策樹的節點

t」 role=」presentation」 style=」position: relative;」>t

t,gini指數計算公式如下:

(1)gini(t)=1−∑k[p(ck|t)]2」 role=」presentation」 style=」width: 100%; position: relative;」>gin

i(t)

=1−∑

k[p(

ck|t

)]2(1)

(1)gini(t)=1−∑k[p(ck|t)]2

\begin gini(t)=1-\sum\limits_[p(c_k|t)]^2

gini指數即為

1」 role=」presentation」 style=」position: relative;」>1

1;**後的gini指數定義如下:

(2)g(d,a)=|dl||d|gini(dl)+|dr||d|gini(dr)」 role=」presentation」 style=」width: 100%; position: relative;」>g(d

,a)=

|dl|

|d|g

ini(

dl)+

|dr|

|d|g

ini(

dr)(2)

(2)g(d,a)=|dl||d|gini(dl)+|dr||d|gini(dr)

\begin g(d,a)= \right| \over \left| \right|}gini(d_l)+ \right| \over \left| \right|}gini(d_r)

其中,|⋅|」 role=」presentation」 style=」position: relative;」>|⋅|

|⋅|表示樣本集合的記錄數量。

cart演算法流程與c4.5演算法相類似:

若滿足停止**條件(樣本個數小於預定閾值,或gini指數小於預定閾值(樣本基本屬於同一類,或沒有特徵可供**),則停止**;

否則,選擇最小gini指數進行**;

遞迴執行1-2步驟,直至停止**。

cart剪枝與c4.5的剪枝策略相似,均以極小化整體損失函式實現。同理,定義決策樹

t」 role=」presentation」 style=」position: relative;」>t

t的損失函式為:

(3)lα(t)=c(t)+α|t|」 role=」presentation」 style=」width: 100%; position: relative;」>lα(

t)=c

(t)+

α|t|

(3)(3)lα(t)=c(t)+α|t|

\begin l_\alpha (t)=c(t)+\alpha \left| t \right|

其中,c(t)」 role=」presentation」 style=」position: relative;」>c(t

)c(t)

為模型的複雜度。

cart演算法採用遞迴的方法進行剪枝,具體辦法:

如何計算最優子樹為

ti」 role=」presentation」 style=」position: relative;」>titi

為單節點的損失函式為

lα(t)=c(t)+α」 role=」presentation」 style=」position: relative;」>lα(

t)=c

(t)+

αlα(t)=c(t)+α

l_\alpha (t)=c(t)+\alpha 以

t」 role=」presentation」 style=」position: relative;」>t

t的損失函式為

lα(tt)=c(tt)+α|tt|」 role=」presentation」 style=」position: relative;」>lα(

tt)=

c(tt

)+α|

tt|lα(tt)=c(tt)+α|tt|

l_\alpha (t_t)=c(t_t)+\alpha \left| t_t \right| 令

lα(t)=lα(tt)」 role=」presentation」 style=」position: relative;」>lα(

t)=l

α(tt

)lα(t)=lα(tt)

,則得到

α=c(t)−c(tt)|tt|−1」 role=」presentation」 style=」position: relative;」>α=c

(t)−

c(tt

)|tt

|−1α=c(t)−c(tt)|tt|−1

\alpha =

此時,單節點

t」 role=」presentation」 style=」position: relative;」>t

t的剪枝後整體損失函式減少程度為

g(t)=c(t)−c(tt)|tt|−1」 role=」presentation」 style=」position: relative;」>g(t

)=c(

t)−c

(tt)

|tt|

−1g(t)=c(t)−c(tt)|tt|−1

g(t) =

剪枝流程如下:

關於cart剪枝演算法的具體描述請參看[1],其中關於剪枝演算法的描述有誤:

(6)如果t不是由根節點單獨構成的樹,則回到步驟(4)

應改為回到步驟(3),要不然所有

α」 role=」presentation」 style=」position: relative;」>α

α均一樣了。

———————————————–update ——————————————————

李航老師已經在勘誤表給出修改了。

[1] 李航,《統計學習方法》.

[2] pang-ning tan, michael steinbach, vipin kumar, introduction to data mining.

[3] dan steinberg, the top ten algorithms in data mining.

CART回歸樹與分類樹

輸出是連續變數的是回歸樹,輸出是離散變數的是分類樹。cart決策樹是乙個二叉樹。輸入空間劃分為m個單元 單元對應輸出 是其對應的輸入空間。輸出取 上所有輸出的均值 下面,看輸入空間的劃分方法。假設最優切分變數 最優切分點 輸入空間被劃分為兩部分 它們的輸出是各自輸入空間中樣本標籤值 的均值和 因此,...

CART分類回歸樹

cart分類回歸樹1984年提出,id3演算法1986年提出,c4.5演算法1993年提出 cart由特徵選擇 樹的生成及剪枝組成。cart假設決策樹是二叉樹,內部結點特徵取值為是和否 cart使用損失函式最小作為剪枝的標準。回歸樹的生成 使用平方誤差最小化準則。對於任意劃分特徵a,對應的任意劃分點...

CART分類和回歸樹

cart演算法根據類標號屬性的型別,當類標號屬性是連續型時,生成的模型是回歸樹 離散型則是分類樹。不同於id3演算法可以產生多個分支,cart每次 只能產生兩個分支,所以cart產生的決策樹是一棵二叉樹。雜度 不純度 gini t 1 各類數量在資料集中的概率 的平方和。標準問題集 所有候選分支方案...