【西瓜書筆記】3. 決策樹
3.1 決策樹基本流程
一顆決策樹包括:
- 根節點:包含樣本全集
- 若干內部節點:對應屬性測試
- 若干葉子結點:對應決策結果
- 結點包含的樣本集合根據屬性測試劃分到子節點中國
基本流程遵循分而治之
虛擬碼:
【來源:花書page74】
決策樹演算法是典型的遞迴演算法。三種遞迴返回情況:
- 當前節點包含的樣本權屬同一個類別,無需劃分
- 當前屬性集為空,或者所有樣本屬性相同,無法劃分。標記當前結點為葉子結點,類別設定為該節點所含樣本最多的類別。實質上利用當前結點的後驗分佈
- 當前結點包含的樣本集合為空,不能劃分。標記當前結點為葉子結點,將其類別設定為父節點所含樣本最多的類別。實質上利用父節點的樣本分佈作為當前結點的先驗分佈。
【後驗概率 ∝ \propto ∝ 可能性 × \times × 先驗概率】
3.2 劃分選擇
劃分標準是能不斷提高提高結點純度
3.2.1 ID3決策樹
3.2.1.1 資訊熵
定義:度量樣本集合純度最常用的一種指標,其定義如下
Ent
(
D
)
=
−
∑
k
=
1
∣
Y
∣
p
k
log
2
p
k
\operatorname{Ent}(D)=-\sum_{k=1}^{|\mathcal{Y}|} p_{k} \log _{2} p_{k}
Ent(D)=−k=1∑∣Y∣pklog2pk
其中
D
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
(
x
m
,
y
m
)
}
D=\left\{\left(\boldsymbol{x}_{1}, y_{1}\right),\left(\boldsymbol{x}_{2}, y_{2}\right), \ldots\left(\boldsymbol{x}_{m}, y_{m}\right)\right\}
D={(x1,y1),(x2,y2),…(xm,ym)}表示樣本集合,
∣
y
∣
|y|
∣y∣表示樣本類別綜述,
p
k
p_k
pk表示第k類樣本所佔的比例,且有
0
≤
p
k
≤
1
,
∑
k
=
1
∣
Y
∣
p
k
=
1
0 \leq p_{k} \leq 1, \sum_{k=1}^{|\mathcal{Y}|} p_{k}=1
0≤pk≤1,∑k=1∣Y∣pk=1. 而且
E
n
t
(
D
)
Ent(D)
Ent(D)值越小,純度越高。 【為了具體量化純度高低,也就是什麼樣的情況下的取值純度高,什麼情況下純度低,我們要先求出資訊熵的最大最小值。】
證明: 0 ≤ Ent ( D ) ≤ log 2 ∣ Y ∣ 0 \leq \operatorname{Ent}(D) \leq \log _{2}|\mathcal{Y}| 0≤Ent(D)≤log2∣Y∣
第一步,我們先求資訊熵的最大值。
令
∣
Y
∣
=
n
,
p
k
=
x
k
|\mathcal{Y}|=n, p_{k}=x_{k}
∣Y∣=n,pk=xk,那麼資訊熵
Ent
(
D
)
\operatorname{Ent}(D)
Ent(D)就可以看成是一個
n
n
n元實值函式:
Ent
(
D
)
=
f
(
x
1
,
…
,
x
n
)
=
−
∑
k
=
1
n
x
k
log
2
x
k
\operatorname{Ent}(D)=f\left(x_{1}, \ldots, x_{n}\right)=-\sum_{k=1}^{n} x_{k} \log _{2} x_{k}
Ent(D)=f(x1,…,xn)=−k=1∑nxklog2xk
其中
0
≤
x
k
≤
1.
∑
k
=
1
n
x
k
=
1
0 \leq x_{k} \leq 1 . \sum_{k=1}^{n} x_{k}=1
0≤xk≤1.∑k=1nxk=1,下面考慮求該多元函式的最值。
如果不考慮約束
0
≤
x
k
≤
1
0 \leq x_{k} \leq 1
0≤xk≤1僅考慮
∑
k
=
1
n
x
k
=
1
\sum_{k=1}^{n} x_{k}=1
∑k=1nxk=1的話,對
f
(
x
1
,
…
,
x
n
)
f\left(x_{1}, \ldots, x_{n}\right)
f(x1,…,xn)求最大值等價於求如下最小化問題:
min
∑
k
=
1
n
x
k
log
2
x
k
s.t.
∑
k
=
1
n
x
k
=
1
\begin{aligned} \min \sum_{k=1}^{n} x_{k} \log _{2} x_{k} \\ \text { s.t. } \sum_{k=1}^{n} x_{k}=1 \end{aligned}
mink=1∑nxklog2xk s.t. k=1∑nxk=1
顯然,在
0
≤
x
k
≤
1
0 \leq x_{k} \leq 1
0≤xk≤1 時,此問題為凸優化問題。【因為我們同樣可以把目標函式看成是n個一元實值函式
x
log
2
x
x\log_{2} x
xlog2x相加和的結果。當x取值[0, 1]區間時,
(
x
log
2
x
)
′
′
>
0
\left(x \log _{2} x\right)^{\prime \prime} > 0
(xlog2x)′′>0,這就說明一元函式
x
log
2
x
x\log_{2}x
xlog2x在區間[0, 1]上是開口向上的凸函式。因此由n個這個一元函式組成的目標函式也是凸函式。現在的約束是線性函式約束,目標函式是凸函式,這就是凸優化問題。】
而對於凸優化問題來說,滿足KKT條件的點就是最優解。由於此最小化問題僅含等式約束,那麼能令其拉格朗日函式的一階偏導數等於0的點即為滿足KKT條件的點。
因此根據拉格朗日乘子法,該優化問題的拉格朗日函式為:
L
(
x
1
,
…
,
x
n
,
λ
)
=
∑
k
=
1
n
x
k
log
2
x
k
+
λ
(
∑
k
=
1
n
x
k
−
1
)
L\left(x_{1}, \ldots, x_{n}, \lambda\right)=\sum_{k=1}^{n} x_{k} \log _{2} x_{k}+\lambda\left(\sum_{k=1}^{n} x_{k}-1\right)
L(x1,…,xn,λ)=k=1∑nxklog2xk+λ(k=1∑nxk−1)
對拉格朗日函式分別關於各個引數求一階偏導,並令偏導數等於0可得
∂
L
(
x
1
,
…
,
x
n
,
λ
)
∂
x
1
=
∂
∂
x
1
[
∑
k
=
1
n
x
k
log
2
x
k
+
λ
(
∑
k
=
1
n
x
k
−
1
)
]
=
0
=
log
2
x
1
+
x
1
⋅
1
x
1
ln
2
+
λ
=
0
=
log
2
x
1
+
1
ln
2
+
λ
=
0
⇒
λ
=
−
log
2
x
1
−
1
ln
2
\begin{aligned} \frac{\partial L\left(x_{1}, \ldots, x_{n}, \lambda\right)}{\partial x_{1}} &=\frac{\partial}{\partial x_{1}}\left[\sum_{k=1}^{n} x_{k} \log _{2} x_{k}+\lambda\left(\sum_{k=1}^{n} x_{k}-1\right)\right]=0 \\ &=\log _{2} x_{1}+x_{1} \cdot \frac{1}{x_{1} \ln 2}+\lambda=0 \\ &=\log _{2} x_{1}+\frac{1}{\ln 2}+\lambda=0 \\ & \Rightarrow \lambda=-\log _{2} x_{1}-\frac{1}{\ln 2} \end{aligned}
∂x1∂L(x1,…,xn,λ)=∂x1∂[k=1∑nxklog2xk+λ(k=1∑nxk−1)]=0=log2x1+x1⋅x1ln21+λ=0=log2x1+ln21+λ=0⇒λ=−log2x1−ln21
同理
λ
=
−
log
2
x
1
−
1
ln
2
=
−
log
2
x
2
−
1
ln
2
=
…
=
−
log
2
x
n
−
1
ln
2
\lambda=-\log _{2} x_{1}-\frac{1}{\ln 2}=-\log _{2} x_{2}-\frac{1}{\ln 2}=\ldots=-\log _{2} x_{n}-\frac{1}{\ln 2}
λ=−log2x1−ln21=−log2x2−ln21=…=−log2xn−ln21
又
∂
L
(
x
1
…
.
x
n
⋅
λ
)
∂
λ
=
∂
∂
λ
[
∑
k
=
1
n
x
k
log
2
x
k
+
λ
(
∑
k
=
1
n
x
k
−
1
)
]
=
0
⇒
∑
k
=
1
n
x
k
=
1
\frac{\partial L\left(x_{1} \ldots . x_{n} \cdot \lambda\right)}{\partial \lambda}=\frac{\partial}{\partial \lambda}\left[\sum_{k=1}^{n} x_{k} \log _{2} x_{k}+\lambda\left(\sum_{k=1}^{n} x_{k}-1\right)\right]=0\\ \Rightarrow \sum_{k=1}^{n} x_{k}=1
∂λ∂L(x1….xn⋅λ)=∂λ∂[k=1∑nxklog2xk+λ(k=1∑nxk−1)]=0⇒k=1∑nxk=1
所以我們有
x
1
=
x
2
=
…
=
x
n
=
1
n
x_{1}=x_{2}=\ldots=x_{n}=\frac{1}{n}
x1=x2=…=xn=n1
又因為
0
≤
x
k
≤
1
0 \leq x_{k} \leq 1
0≤xk≤1, 顯然
0
≤
1
n
≤
1
0 \leq \frac{1}{n} \leq 1
0≤n1≤1, 所以
x
1
=
x
2
=
…
=
x
n
=
1
n
x_{1}=x_{2}=\ldots=x_{n}=\frac{1}{n}
x1=x2=…=xn=n1是滿足所有約束條件的最優解,也就是當前最小化問題的最小值點,以及原函式
f
(
x
1
,
…
,
x
n
)
f\left(x_{1}, \ldots, x_{n}\right)
f(x1,…,xn)的最大值點。將最優解代入原函式
f
f
f中可得
f
(
1
n
,
…
,
1
n
)
=
−
∑
k
=
1
n
1
n
log
2
1
n
=
−
n
⋅
1
n
log
2
1
n
=
log
2
n
f\left(\frac{1}{n}, \ldots, \frac{1}{n}\right)=-\sum_{k=1}^{n} \frac{1}{n} \log _{2} \frac{1}{n}=-n \cdot \frac{1}{n} \log _{2} \frac{1}{n}=\log _{2} n
f(n1,…,n1)=−k=1∑nn1log2n1=−n⋅n1log2n1=log2n
所以
f
(
x
1
,
…
,
x
n
)
f\left(x_{1}, \ldots, x_{n}\right)
f(x1,…,xn)在滿足約束
0
≤
x
k
≤
1.
∑
k
=
1
n
x
k
=
1
0 \leq x_{k} \leq 1 . \sum_{k=1}^{n} x_{k}=1
0≤xk≤1.∑k=1nxk=1時的最大值為
log
2
n
\log_{2}n
log2n
第二步,我們求 E n t ( D ) Ent(D) Ent(D)的最小值。
如果不考慮
∑
k
=
1
n
x
k
=
1
\sum_{k=1}^{n} x_{k}=1
∑k=1nxk=1,僅考慮
0
≤
x
k
≤
1
0 \leq x_{k} \leq 1
0≤xk≤1,
f
(
x
1
,
…
,
x
n
)
f\left(x_{1}, \ldots, x_{n}\right)
f(x1,…,xn)可以看做是n個互不相關的一員函式的加和,也就是
f
(
x
1
,
…
,
x
n
)
=
∑
k
=
1
n
g
(
x
k
)
g
(
x
k
)
=
−
x
k
log
2
x
k
,
0
≤
x
k
≤
1
f\left(x_{1}, \ldots, x_{n}\right)=\sum_{k=1}^{n} g\left(x_{k}\right)\\ g\left(x_{k}\right)=-x_{k} \log _{2} x_{k}, \quad 0 \leq x_{k} \leq 1
f(x1,…,xn)=k=1∑ng(xk)g(xk)=−xklog2xk,0≤xk≤1
因此當
g
(
x
1
)
,
g
(
x
2
)
,
…
,
g
(
x
n
)
g\left(x_{1}\right), g\left(x_{2}\right), \ldots, g\left(x_{n}\right)
g(x1),g(x2),…,g(xn)分別取到其最小值時,
f
(
x
1
,
…
,
x
n
)
f\left(x_{1}, \ldots, x_{n}\right)
f(x1,…,xn)也就取到了最小值。由於
g
(
x
1
)
,
g
(
x
2
)
,
…
,
g
(
x
n
)
g\left(x_{1}\right), g\left(x_{2}\right), \ldots, g\left(x_{n}\right)
g(x1),g(x2),…,g(xn)的定義域和函式表示式相同,所以只需要求出
g
(
x
1
)
g(x_1)
g(x1)的最小值,也就求出了
g
(
x
1
)
,
g
(
x
2
)
,
…
,
g
(
x
n
)
g\left(x_{1}\right), g\left(x_{2}\right), \ldots, g\left(x_{n}\right)
g(x1),g(x2),…,g(xn)的最小值。為了求
g
(
x
1
)
g(x_1)
g(x1)的最小值,我們先求
g
(
x
1
)
g(x_1)
g(x1)關於與
x
1
x_1
x1的一階與二階導數
g
′
(
x
1
)
=
d
(
−
x
1
log
2
x
1
)
d
x
1
=
−
log
2
x
1
−
x
1
⋅
1
x
1
ln
2
=
−
log
2
x
1
−
1
ln
2
g
′
′
(
x
1
)
=
d
(
g
′
(
x
1
)
)
d
x
1
=
d
(
−
log
2
x
1
−
1
ln
2
)
d
x
1
=
−
1
x
1
ln
2
\begin{array}{c} g^{\prime}\left(x_{1}\right)=\dfrac{d\left(-x_{1} \log _{2} x_{1}\right)}{d x_{1}}=-\log _{2} x_{1}-x_{1} \cdot \dfrac{1}{x_{1} \ln 2}=-\log _{2} x_{1}-\dfrac{1}{\ln 2} \\ g^{\prime \prime}\left(x_{1}\right)=\dfrac{d\left(g^{\prime}\left(x_{1}\right)\right)}{d x_{1}}=\dfrac{d\left(-\log _{2} x_{1}-\dfrac{1}{\ln 2}\right)}{d x_{1}}=-\dfrac{1}{x_{1} \ln 2} \end{array}
g′(x1)=dx1d(−x1log2x1)=−log2x1−x1⋅x1ln21=−log2x1−ln21g′′(x1)=dx1d(g′(x1))=dx1d(−log2x1−ln21)=−x1ln21
顯然,當
0
≤
x
k
≤
1
0 \leq x_{k} \leq 1
0≤xk≤1時,
g
′
′
g^{\prime \prime}
g′′恆小於0,所以
g
(
x
1
)
g(x_1)
g(x1)是一個在其定義域範圍內開口向下的凹函式,那麼其最小值必然在邊界取,於是分別取
x
1
=
0
x_1=0
x1=0和
x
1
=
1
x_1=1
x1=1,代入
g
(
x
1
)
g(x_1)
g(x1)可有
g
(
0
)
=
−
0
log
2
0
=
0
g
(
1
)
=
−
1
log
2
1
=
0
\begin{array}{l} g(0)=-0 \log _{2} 0=0 \\ g(1)=-1 \log _{2} 1=0 \end{array}
g(0)=−0log20=0g(1)=−1log21=0
所以
g
(
x
1
)
g(x_1)
g(x1)的最小值是0,同理,
g
(
x
2
)
,
…
,
g
(
x
n
)
g\left(x_{2}\right), \ldots, g\left(x_{n}\right)
g(x2),…,g(xn)的最小值也為0, 那麼在約束條件
0
≤
x
k
≤
1
0 \leq x_{k} \leq 1
0≤xk≤1下,
f
(
x
1
,
…
,
x
n
)
f\left(x_{1}, \ldots, x_{n}\right)
f(x1,…,xn)的最小值此時也為0.如果加上約束條件
∑
k
=
1
n
x
k
=
1
\sum_{k=1}^{n} x_{k}=1
∑k=1nxk=1,那麼
f
(
x
1
,
…
,
x
n
)
f\left(x_{1}, \ldots, x_{n}\right)
f(x1,…,xn)的最小值一定大於等於0. 如果令
x
k
=
1
x_{k}=1
xk=1,那麼根據約束
∑
k
=
1
n
x
k
=
1
\sum_{k=1}^{n} x_{k}=1
∑k=1nxk=1可有
x
1
=
x
2
=
…
=
x
k
−
1
=
x
k
+
1
=
…
=
x
n
=
0
x_{1}=x_{2}=\ldots=x_{k-1}=x_{k+1}=\ldots=x_{n}=0
x1=x2=…=xk−1=xk+1=…=xn=0,將其代入
f
(
x
1
,
…
,
x
n
)
f\left(x_{1}, \ldots, x_{n}\right)
f(x1,…,xn)有
f
(
0
,
0
,
…
,
0
,
1
,
0
,
…
,
0
)
=
−
0
log
2
0
−
0
log
2
0
…
−
0
log
2
0
−
1
log
2
1
−
0
log
2
0
…
−
0
log
2
0
=
0
f(0,0, \ldots, 0,1,0, \ldots, 0)=-0 \log _{2} 0-0 \log _{2} 0 \ldots-0 \log _{2} 0-1 \log _{2} 1-0 \log _{2} 0 \ldots-0 \log _{2} 0=0
f(0,0,…,0,1,0,…,0)=−0log20−0log20…−0log20−1log21−0log20…−0log20=0
所以
x
=
1
,
x
1
=
x
2
=
…
=
x
k
−
1
=
x
k
+
1
=
…
=
x
n
=
0
x_=1, x_{1}=x_{2}=\ldots=x_{k-1}=x_{k+1}=\ldots=x_{n}=0
x=1,x1=x2=…=xk−1=xk+1=…=xn=0一定是
f
(
x
1
,
…
,
x
n
)
f\left(x_{1}, \ldots, x_{n}\right)
f(x1,…,xn)在滿足約束
0
≤
x
k
≤
1
,
∑
k
=
1
n
x
k
=
1
0 \leq x_{k} \leq 1 , \sum_{k=1}^{n} x_{k}=1
0≤xk≤1,∑k=1nxk=1的條件下的最小值點,最小值為0.
3.2.1.2 條件熵
定義: 在已知樣本屬性
a
a
a的取值情況下,度量樣本集合純度的一種指標
H
(
D
∣
a
)
=
∑
v
=
1
V
∣
D
v
∣
∣
D
∣
Ent
(
D
v
)
H(D \mid a)=\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \operatorname{Ent}\left(D^{v}\right)
H(D∣a)=v=1∑V∣D∣∣Dv∣Ent(Dv)
其中
a
a
a表示樣本的某個屬性,假定屬性
a
a
a有
V
V
V個可能的取值
{
a
1
,
a
2
…
,
a
V
}
\left\{a^{1}, a^{2} \ldots, a^{V}\right\}
{a1,a2…,aV}, 樣本集合
D
D
D中在屬性
a
a
a上取值為
a
v
a^{v}
av的樣本記為
D
v
D^{v}
Dv,
E
n
t
(
D
v
)
Ent(D^{v})
Ent(Dv)表示樣本集合
D
v
D^{v}
Dv的資訊熵。
H
H
H值越小,純度越高。
資訊增益:
Gain
(
D
,
a
)
=
Ent
(
D
)
−
∑
v
=
1
V
∣
D
v
∣
∣
D
∣
Ent
(
D
v
)
=
Ent
(
D
)
−
H
(
D
∣
a
)
\begin{aligned} \operatorname{Gain}(D, a) &=\operatorname{Ent}(D)-\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \operatorname{Ent}\left(D^{v}\right) \\ &=\operatorname{Ent}(D)-H(D \mid a) \end{aligned}
Gain(D,a)=Ent(D)−v=1∑V∣D∣∣Dv∣Ent(Dv)=Ent(D)−H(D∣a)
選擇資訊增益值最大的屬性作為劃分屬性,因為資訊增益越大,該屬性用作劃分所獲得的的”純度提升“越大。【注意這裡的加和,對v加和是對a屬性中不同的取值加和,資訊熵中是對劃分後的樣本集合中的目標類別標籤加和】
以資訊增益為劃分準則的ID3決策樹對可取值數目較多的屬性有所偏好
Gain
(
D
,
a
)
=
Ent
(
D
)
−
∑
v
=
1
V
∣
D
v
∣
∣
D
∣
Ent
(
D
v
)
=
Ent
(
D
)
−
∑
v
=
1
V
∣
D
v
∣
∣
D
∣
(
−
∑
k
=
1
∣
Y
∣
p
k
log
2
p
k
)
=
Ent
(
D
)
−
∑
v
=
1
V
∣
D
v
∣
∣
D
∣
(
−
∑
k
=
1
∣
y
∣
∣
D
k
v
∣
∣
D
v
∣
log
2
∣
D
k
v
∣
∣
D
v
∣
)
\begin{aligned} \operatorname{Gain}(D, a) &=\operatorname{Ent}(D)-\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \operatorname{Ent}\left(D^{v}\right) \\ &=\operatorname{Ent}(D)-\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|}\left(-\sum_{k=1}^{|\mathcal{Y}|} p_{k} \log _{2} p_{k}\right) \\ &=\operatorname{Ent}(D)-\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|}\left(-\sum_{k=1}^{|y|} \frac{\left|D_{k}^{v}\right|}{\left|D^{v}\right|} \log _{2} \frac{\left|D_{k}^{v}\right|}{\left|D^{v}\right|}\right) \end{aligned}
Gain(D,a)=Ent(D)−v=1∑V∣D∣∣Dv∣Ent(Dv)=Ent(D)−v=1∑V∣D∣∣Dv∣⎝⎛−k=1∑∣Y∣pklog2pk⎠⎞=Ent(D)−v=1∑V∣D∣∣Dv∣⎝⎛−k=1∑∣y∣∣Dv∣∣Dkv∣log2∣Dv∣∣Dkv∣⎠⎞
其中
D
k
v
D_{k}^{v}
Dkv是樣本集合
D
D
D中在屬性
a
a
a上取值為
a
v
a^{v}
av且類別為
k
k
k的樣本。
然後我們就可以把決策樹基本演算法的第8行選擇屬性設定為: a ∗ = arg max a ∈ A Gain ( D , a ) a_{*}=\underset{a \in A}{\arg \max } \operatorname{Gain}(D, a) a∗=a∈AargmaxGain(D,a).
缺點:如果某個屬性的取值類別太多,就可能把每一個取值類別劃分後就導致每個分支節點的純度很高(只有一兩個樣本),雖然資訊增益很大,但是因為結點劃分太多,得到一個龐大且淺的樹,失去了泛化能力
3.2.2 C4.5決策樹
定義:以資訊增益率為準則來選擇劃分屬性的決策樹。為了解決ID3的缺點。
資訊增益率:
KaTeX parse error: Expected '}', got '_' at position 14: \text { Gain_̲ratio }(D, a)=\…
其中
I
V
(
a
)
=
−
∑
v
=
1
V
∣
D
v
∣
∣
D
∣
log
2
∣
D
v
∣
∣
D
∣
\mathrm{IV}(a)=-\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \log _{2} \frac{\left|D^{v}\right|}{|D|}
IV(a)=−v=1∑V∣D∣∣Dv∣log2∣D∣∣Dv∣
如果屬性a的可能取值數目越多,也就是V變大,那麼IV的值也變大。
缺點:資訊增益率對可取值數目較少的屬性有所偏好。無法處理迴歸問題、使用較為複雜的熵來作為特徵選擇的標準、生成的決策樹是一顆較為複雜的多叉樹結構。
因此C4.5演算法並不是直接選擇增益率最大的候選劃分屬性,而是採用了一個啟發式:
- 先從候選屬性中找到資訊增益高於平均水平的屬性集合
- 再從這個屬性集合中選擇增益率最高的屬性
3.2.3 CART決策樹
3.2.3.1 定義:
以基尼指數為準則來選擇劃分屬性的決策樹
基尼值:
Gini
(
D
)
=
∑
k
=
1
∣
Y
∣
∑
k
′
≠
k
p
k
p
k
′
=
∑
k
=
1
∣
Y
∣
p
k
∑
k
′
≠
k
p
k
′
=
∑
k
=
1
∣
Y
∣
p
k
(
1
−
p
k
)
=
1
−
∑
k
=
1
∣
Y
∣
p
k
2
\operatorname{Gini}(D)=\sum_{k=1}^{|\mathcal{Y}|} \sum_{k^{\prime} \neq k} p_{k} p_{k^{\prime}}=\sum_{k=1}^{|\mathcal{Y}|} p_{k} \sum_{k^{\prime} \neq k} p_{k^{\prime}}=\sum_{k=1}^{|\mathcal{Y}|} p_{k}\left(1-p_{k}\right)=1-\sum_{k=1}^{|\mathcal{Y}|} p_{k}^{2}
Gini(D)=k=1∑∣Y∣k′=k∑pkpk′=k=1∑∣Y∣pkk′=k∑pk′=k=1∑∣Y∣pk(1−pk)=1−k=1∑∣Y∣pk2
直觀來說,基尼值反映了從資料集
D
D
D中隨機抽取兩個樣本,其類別標記不一致的概率。
基尼指數:
KaTeX parse error: Expected '}', got '_' at position 14: \text { Gini_̲index }(D, a)=\…
基尼值和基尼指數越小,樣本集合純度越高。
3.2.3.2 CART決策樹分類演算法:
- 根據基尼指數公式找出基尼指數最小的屬性【虛擬碼演算法第8行變成 a ∗ = arg min a ∈ A G i n i i n d e x ( D , a ) a_{*}=\underset{a \in A}{\arg \min } \operatorname{Gini_index}(D, a) a∗=a∈AargminGiniindex(D,a)】
- 計算屬性 a ∗ a_{*} a∗的所有可能取值的基尼值 Gini ( D v ) , v = 1 , 2 , … , V \operatorname{Gini}\left(D^{v}\right), v=1,2, \ldots, V Gini(Dv),v=1,2,…,V, 選擇基尼指數最小的取值 a ∗ v a^{v}_{*} a∗v作為劃分點,將集合 D D D劃分為 D 1 , D 2 D_1, D_{2} D1,D2兩個集合(分支結點),其中 D 1 D_1 D1集合的樣本為 a ∗ = a ∗ v a_{*}=a_{*}^{v} a∗=a∗v的樣本, D 2 D_2 D2集合為 a ∗ ≠ a ∗ v a_{*} \neq a_{*}^{v} a∗=a∗v
- 對集合 D 1 D_1 D1和 D 2 D_2 D2重複遞迴步驟1,2,直到滿足停止條件
3.2.3.3 CART決策樹迴歸演算法:
- 根據以下公式找到最優劃分特徵 a ∗ a_{*} a∗和最優劃分點 a ∗ v a_{*}^{v} a∗v:
a ∗ , a ∗ ′ ′ = arg min a , a v [ min c 1 ∑ x i ∈ D 1 ( a , a v ) ( y i − c 1 ) 2 + min c 2 ∑ x , ∈ D 2 ( a , a v ) ( y i − c 2 ) 2 ] a_{*}, a_{*}^{\prime \prime}=\underset{a, a^{v}}{\arg \min }\left[\operatorname{min}_{c_{1}} \sum_{x_i \in D_{1}\left(a, a^{v}\right)}\left(y_{i}-c_{1}\right)^{2}+\min _{c_{2}} \sum_{x, \in D_{2}\left(a, a^{v}\right)}\left(y_{i}-c_{2}\right)^{2}\right] a∗,a∗′′=a,avargmin⎣⎡minc1xi∈D1(a,av)∑(yi−c1)2+c2minx,∈D2(a,av)∑(yi−c2)2⎦⎤
其中, D 1 ( a , a v ) D_{1}\left(a, a^{v}\right) D1(a,av)表示在屬性 a a a上取值小於等於 a v a^{v} av的樣本集合, D 2 ( a , a v ) D_2(a, a^{v}) D2(a,av)表示在屬性 a a a上取值大於 a v a^{v} av的樣本集合, c 1 c_1 c1表示 D 1 D_1 D1的樣本輸出均值, c 2 c_2 c2表示 D 2 D_2 D2的樣本輸出均值
- 根據劃分點 a ∗ v a_{*}^{v} a∗v將集合 D D D劃分為 D 1 D_1 D1和 D 2 D_2 D2兩個集合(分支節點)
- 對集合 D 1 D_1 D1和 D 2 D_2 D2重複遞迴步驟1,2,直到滿足停止條件
3.3 決策樹剪枝處理
剪枝是決策樹學習演算法對付過擬合的主要手段
3.3.1 預剪枝
在決策樹生成過程中,對每個結點在劃分前先進行估計,若當前結點的劃分不能帶來決策樹泛化效能提升,則停止劃分並將當前結點標註為葉結點。基於資訊增益準則
【看是否提高在驗證集上的準確率】
缺點:有些分支的當前劃分雖不能提升泛化效能,但是在其基礎上的後續劃分卻有可能導致效能提高。預剪枝基於貪心本質禁止這些分支繼續劃分,因此有可能導致模型欠擬合
3.3.2後剪枝
先從訓練集生成一顆完整的決策樹,然後自底向上地對非葉結點進行考察,若將該結點對應的子樹替換為葉結點能帶來決策樹泛化效能提升,則將子樹替換為葉子結點
缺點:時間複雜度比預剪枝更高
預剪枝 | 後剪枝 | |
---|---|---|
時間開銷 | 訓練 ↓ \downarrow ↓, 測試 ↓ \downarrow ↓ | 訓練 ↑ \uparrow ↑, 測試 ↓ \downarrow ↓ |
過/欠擬合風險 | 過 ↓ \downarrow ↓, 欠 ↑ \uparrow ↑ | 過 ↓ \downarrow ↓, 欠不變 |
泛化能力 | 更好 |
3.4 決策樹處理連續值、缺失值
to be continued
相關文章
- 西瓜書筆記筆記
- 機器學習西瓜書吃瓜筆記之(二)決策樹分類 附一鍵生成決策樹&視覺化python程式碼實現機器學習筆記視覺化Python
- 機器學習西瓜書02:第四章,決策樹。機器學習
- 機器學習筆記(四)決策樹機器學習筆記
- [模式識別複習筆記] 第8章 決策樹模式筆記
- 決策樹
- 決策樹模型(3)決策樹的生成與剪枝模型
- 決策樹示例
- 辭職還是留下(《困境中的決策力》讀書筆記)筆記
- 4. 決策樹
- Decision tree——決策樹
- 決策樹(Decision Tree)
- Python機器學習:決策樹001什麼是決策樹Python機器學習
- 分類——決策樹模型模型
- 決策樹演算法演算法
- ML《決策樹(三)CART》
- The art of multipropcessor programming 讀書筆記-3. 自旋鎖與爭用(2)筆記
- 機器學習:決策樹機器學習
- 關於決策樹的理解
- 決策樹學習總結
- 決策樹和隨機森林隨機森林
- 決策樹模型(2)特徵選擇模型特徵
- 機器學習——決策樹模型機器學習模型
- 機器學習之決策樹機器學習
- 大資料————決策樹(decision tree)大資料
- ML《決策樹(一)ID3》
- ML《決策樹(二)C4.5》
- 「馬爾可夫決策過程」學習筆記馬爾可夫筆記
- 模式識別學習筆記——貝葉斯決策模式筆記
- 【Python機器學習實戰】決策樹和整合學習(二)——決策樹的實現Python機器學習
- 周志華西瓜書《機器學習筆記》學習筆記第二章《模型的評估與選擇》機器學習筆記模型
- 02決策樹-初識與構建
- 深入淺出學習決策樹(二)
- 決策樹在sklearn中的實現
- 決策樹模型(1)總體介紹模型
- 決策樹模型(4)Cart演算法模型演算法
- 決策樹演算法-實戰篇演算法
- 決策樹詳解,從熵說起熵