YD's blog

Posted 三 27 4月 2016

Decision, Regression tree

Decision tree 與 Regression tree的概念都是建一顆樹(e.g. binary tree, minimize the traning error in each leaf)且都是Supervised learning。差別在於資料形態的不同:

Decision tree會有類別變項:

利用不斷的二分法將區域切出來。再依照該區的類別採多數決(majority vote of classification)進行分類。如下圖:

但因為採多數決,所以會有區域誤判的可能(下文會提到Impurity Measures來衡量誤判率)。

先前提到Regression tree 和 Decision tree的差別為資料形態的不同,最簡單的例子即 $x$, $y$ 皆為實數。實際做法會先將 $x$切出好幾個區域(為決策的判斷),接著在各個區域內得出預測值
$\hat{y}$, 此預測值是來自該區依最小平方法得到的: $\bar{y} = min\sum_{i \in \mathbb{R}_k}(\hat{y}-y_i)^2$,即該區的平均值:

因此得到的預測值 $y$ 即為該區的 $\bar{y}$:

那我們要如何擴充樹葉呢(也就是圖中的每個節點)? 以三維空間舉例:

如果要長regression tree,首先選定一個維度 $j=1$,根據資料點找出點 $s$ 使得 $ \sum_{x_{ij}>s,x_i \in \mathbb{R}_j}(\hat{y}-y_i)^2$

加上

$\sum_{x_{ij} \leq s,x_i \in \mathbb{R}_j}(\hat{y}-y_i)^2$最小,根據這個原則重複步驟就可以做出一堆的sub-region。
那到底要切到何時呢?有兩種標準:

同理,要長decision(classification) tree也是依照類似的方法,以二維平面解釋:

先定義一下,$E_R$: misclassified by a majority vote in the (sub-)region,以此圖為1/3,算法為 $min \frac{1}{N_{R_j}}\sum_{x_i \in \mathbb{R}_j} I(y_i \neq y) ,~y= ~${$ Finite~Set $}$, N_R=~ ${$ i:x_i \in \mathbb{R_j} $}

若以三維空間說明的話,則是讓切出的兩區的 $E_{R_j}(j,s)+E_{R_j}'(j,s)$ 最小化:


Impurity Measures

前述提到分類誤判,衡量一個模型的分類誤判率有三種常見的方式:

Category: Stat
Tags: Stat