已知:训练集:
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
⋅
⋅
⋅
⋅
,
(
x
N
,
y
N
)
}
T=\{(x_{1},y_{1}),(x_{2},y_{2})\cdot\cdot\cdot\cdot,(x_{N},y_{N})\}
T={(x1,y1),(x2,y2)⋅⋅⋅⋅,(xN,yN)}
其中
x
i
=
(
x
i
(
1
)
,
x
i
(
2
)
,
⋯
,
x
i
(
n
)
)
T
,
y
i
∈
{
1
,
2
,
⋯
,
K
}
,
i
=
1
,
2
,
⋯
,
N
;
x_{i}=(x_{i}^{(1)},x_{i}^{(2)},\cdots,x_{i}^{(n)})^{T},\;y_{i}\in\{1,2,\cdots,K\},\;i=1,2,\cdots,N;
xi=(xi(1),xi(2),⋯,xi(n))T,yi∈{1,2,⋯,K},i=1,2,⋯,N;
目的:构造决策树,并对实例正确分类
分类决策树模型是一种描述对实例进行分类的树形结构。
If-then:决策树是通过一系列规则对数据进行分类的过程。
步骤:
所有区域合在一起,就是整个特征空间,一个单元对应一条路径。
决策树的条件概率分布由各个单元给定条件下类的条件概率分布组成。
本质:从训练数据集中归纳出一组分类规则,与训练数据集不相矛盾
假设空间:由无穷多个条件概率模型组成
一棵好的决策树:与训练数据矛盾较小,同时具有很好的泛化能力
策略:最小化损失函数
特征选择:递归选择最优特征生成:对应特征空间的划分,直到所有训练子集被基本正确分类
剪枝:避免过拟合,具有更好的泛化能力
熵表示随机变量的不确实性:
H
(
X
)
=
−
∑
i
=
1
n
p
i
log
p
i
H(X)=-\sum_{i=1}^{n}p_{i}\log p_{i}
H(X)=−i=1∑npilogpi
或:
H
(
p
)
=
−
∑
i
=
1
n
p
i
log
p
i
H(p)=-\sum_{i=1}^{n}p_{i}\log p_{i}
H(p)=−i=1∑npilogpi
随机变量的取值等概率分布的时候,相应的熵最大。
0
≤
H
(
p
)
≤
log
n
0\leq H(p)\leq\log n
0≤H(p)≤logn
条件熵:
H
(
Y
∣
X
)
=
∑
i
=
1
n
p
i
H
(
Y
∣
X
=
x
i
)
H(Y|X)=\sum_{i=1}^{n}p_{i}H(Y|X=x_{i})
H(Y∣X)=i=1∑npiH(Y∣X=xi)
当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,则为经验熵(empirical entropy)和经验条件熵(empirical condition entropy)。
信息增益:得知特征
A
A
A 而使类
Y
Y
Y 的信息的不确定性减少的程度。
g
(
D
,
A
)
=
H
(
D
)
−
H
(
D
∣
A
)
g(D,A)=H(D)-H(D|A)
g(D,A)=H(D)−H(D∣A)
信息增益的算法
设训练数据集为 D D D , ∣ D ∣ |D| ∣D∣ 表示其样本容量,即样本个数。设有 K K K 个类 C k C_k Ck , k = 1 , 2 , ⋯ , K k = 1, 2, \cdots, K k=1,2,⋯,K, ∣ C k ∣ |C_k| ∣Ck∣ 为属于类 C k C_k Ck 的样本个数, ∑ k = 1 K ∣ C k ∣ = ∣ D ∣ \sum_{k = 1}^{K} |C_k| = |D| ∑k=1K∣Ck∣=∣D∣ 。设特征 A A A 有 n n n 个不同的取值 { a 1 , a 2 , ⋯ , a n } \{a_1, a_2, \cdots, a_n\} {a1,a2,⋯,an} ,根据特征 A A A 的取值将 D D D 划分为 n n n 个子集 D 1 , D 2 , ⋯ , D n D_1, D_2, \cdots, D_n D1,D2,⋯,Dn , ∣ D i ∣ | D_i | ∣Di∣ 为 D i D_i Di 的样本个数, ∑ i = 1 n ∣ D i ∣ = ∣ D ∣ \sum_{i = 1}^{n} |D_i| = |D| ∑i=1n∣Di∣=∣D∣ 。记子集 D i D_i Di 中属于类 C k C_k Ck 的样本的集合为 D i k D_{ik} Dik ,即 D i k = D i ∩ C k D_{ik} = D_i \cap C_k Dik=Di∩Ck , ∣ D i k ∣ |D_{ik}| ∣Dik∣ 为 D i k D_{ik} Dik 的样本个数。
输入:训练数据集 D D D 和特征 A A A
输出:特征 A A A 对 D D D 的信息增益 g ( D , A ) g(D, A) g(D,A)
计算经验熵
H
(
D
)
H(D)
H(D) :
H
(
D
)
=
−
∑
k
=
1
K
∣
C
k
∣
∣
D
∣
log
2
∣
C
k
∣
∣
D
∣
H(D)=-\sum_{k=1}^{K}\frac{|C_{k}|}{|D|}\log_{2}\frac{|C_{k}|}{|D|}
H(D)=−k=1∑K∣D∣∣Ck∣log2∣D∣∣Ck∣
计算经验条件熵 H ( D ∣ A ) H(D|A) H(D∣A) :
H ( D ∣ A ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ H ( D i ) = − ∑ i = 1 n ∣ D i ∣ ∣ D ∣ ∑ k = 1 K ∣ D i k ∣ ∣ D i ∣ log 2 ∣ D i k ∣ ∣ D i ∣ H(D|A)=\sum_{i=1}^{n}{\frac{|D_{i}|}{|D|}}H(D_{i})=-\sum_{i=1}^{n}{\frac{|D_{i}|}{|D|}}\sum_{k=1}^{K}{\frac{|D_{i k}|}{|D_i|}}\log_{2}{\frac{|D_{i k}|}{|D_i|}} H(D∣A)=i=1∑n∣D∣∣Di∣H(Di)=−i=1∑n∣D∣∣Di∣k=1∑K∣Di∣∣Dik∣log2∣Di∣∣Dik∣
以信息增益作为划分训练数据集的特征,存在偏向于选择取值较多的特征的问题。使用信息增益比(information gain ratio)可以对这一问题进行校正。
特征
A
A
A 对训练数据集
D
D
D 的信息增益比
g
R
(
D
,
A
)
g_R(D, A)
gR(D,A) 定义为其信息增益
g
(
D
,
A
)
g(D, A)
g(D,A) 与训练数据集
D
D
D 关于特征
A
A
A 的值的熵
H
A
(
D
)
H_A(D)
HA(D) 之比,即
g
R
(
D
,
A
)
=
g
(
D
,
A
)
H
A
(
D
)
g_R(D, A) = \frac{g(D,A)}{H_A(D)}
gR(D,A)=HA(D)g(D,A)
其中,
H
A
(
D
)
=
−
∑
i
=
1
n
∣
D
i
∣
∣
D
∣
log
2
∣
D
i
∣
∣
D
∣
H_A(D) = -\sum_{i = 1}^n \frac{|D_i|}{|D|} \log_{2}{\frac{|D_i|}{|D|}}
HA(D)=−∑i=1n∣D∣∣Di∣log2∣D∣∣Di∣ ,
n
n
n 是特征
A
A
A 取值的个数。
输入:训练数据集 D D D 、特征集 A A A 、阈值 $\epsilon $
输出:决策树 T T T
输入:训练数据集 D D D 、特征集 A A A 、阈值 $\epsilon $
输出:决策树 T T T
优秀的决策树:
在具有好的拟合和泛化能力的同时,
误差:训练误差、测试误差
过拟合:训练误差低,测试误差高(模型结构过于复杂)
欠拟合:训练误差高,测试误差低(模型结构过于简单)
剪枝:处理决策树的过拟合问题
预剪枝:生成过程中,对每个结点划分前进行估计,若当前结点的划分不能提升泛化能力,则停止划分,记当前结点为叶结点;
后剪枝:生成一棵完整的决策树之后,自底而上地对内部结点考察,若此内部结点变为叶结点,可以提升泛化能力,则做此替换。
常用的预剪枝方法:
原理:自下而上,使用测试集来剪枝。对每个结点,计算剪枝前和剪枝后的误判个数,若是剪枝有利于减少误判(包括相等的情况),则减掉该结点所在分枝。
错误率在验证集上计算出来。
原理:根据剪枝前后的错误率来决定是否剪枝。和降低错误剪枝(REP)不同之处在于,悲观错误剪枝(PEP)只需要训练集即可,不需要验证集,并且PEP是自上而下剪枝的。
设 L L L 为叶子结点的个数, L e a f i Leaf_i Leafi 为第 i i i 个叶子结点, L e a f Leaf Leaf 剪枝后的叶子结点, N ( T ) N(T) N(T) 为目标子树所包含的样本总个数。
E r r o r ( L e a f i ) = e r r o r ( L e a f i ) + 0.5 N ( T ) Error(Leaf_{i})= \frac{error(Leaf_{i})+0.5}{N(T)} Error(Leafi)=N(T)error(Leafi)+0.5
E r r o r ( T ) = ∑ i = 1 L E r r o r ( L e a f i ) = ∑ i = 1 L e r r o r ( L e a f i ) + 0.5 ∗ L N ( T ) {Error}(T)=\sum_{i=1}^L {Error}\left( { Leaf }_i\right)=\frac{\sum_{i=1}^L {error}\left( { Leaf }_i\right)+0.5 * L}{N(T)} Error(T)=i=1∑LError(Leafi)=N(T)∑i=1Lerror(Leafi)+0.5∗L
E ( T ) = N ( T ) × E r r o r ( T ) = ∑ i = 1 L e r r o r ( L e a f i ) + 0.5 ∗ L E(T)=N(T) \times {Error}(T)=\sum_{i=1}^L {error}( { Leaf }_i)+0.5 * L E(T)=N(T)×Error(T)=i=1∑Lerror(Leafi)+0.5∗L
s t d ( T ) = N ( T ) × E r r o r ( T ) × ( 1 − E r r o r ( T ) ) std(T)=\sqrt{N(T)\times Error(T) \times (1-Error(T))} std(T)=N(T)×Error(T)×(1−Error(T))
E ( T ) + s t d ( T ) E(T) + std(T) E(T)+std(T)
E r r o r ( L e a f ) = e r r o r ( L e a f ) + 0.5 N ( T ) Error(Leaf)=\frac{error(Leaf)+0.5}{N(T)} Error(Leaf)=N(T)error(Leaf)+0.5
E ( L e a f ) = e r r o r ( L e a f ) + 0.5 E(Leaf)=err o r(L e a f)+0.5 E(Leaf)=error(Leaf)+0.5
E ( L e a f ) < E ( T ) + s t d ( T ) E(L e a f)\lt E(T)+s t d(T) E(Leaf)<E(T)+std(T)
原理:根据剪枝前后的最小分类错误概率来决定是否剪枝。自下而上剪枝,只需要训练集即可。
设 P r k ( T ) Pr_k(T) Prk(T) 为 T T T 属于 k k k 类别的先验概率, m m m 表示先验概率对后验概率的影响, w i w_i wi 为叶子结点在 T T T 中的权重。
P k ( T ) = n k ( T ) + P r k ( T ) × m N ( T ) + m m → 0 , P k ( T ) → n k ( T ) N ( T ) m → ∞ , P k ( T ) → P r k ( T ) \begin{align} &P_{k}(T)={\frac{n_{k}(T)+P r_{k}(T)\times m}{N(T)+m}}\\ &m \rightarrow 0, P_k(T) \rightarrow \frac{n_k(T)}{N(T)}\\ &m \rightarrow \infty, P_k(T) \rightarrow Pr_k(T) \end{align} Pk(T)=N(T)+mnk(T)+Prk(T)×mm→0,Pk(T)→N(T)nk(T)m→∞,Pk(T)→Prk(T)
E r r o r ( T ) = m i n { 1 − P k ( T ) } = m i n { N ( T ) − n k ( T ) + m ( 1 − P r k ( T ) ) N ( T ) + m } Error(T)=min\{1{-}P_{k}(T)\}=min\left\{{\frac{{N}(T)-n_{k}(T)+m(1-Pr_{k}(T))}{{N}(T)+m}}\right\} Error(T)=min{1−Pk(T)}=min{N(T)+mN(T)−nk(T)+m(1−Prk(T))}
arg min m E r r o r ( T ) \arg\operatorname*{min}_{m}E rr o r(T) argmminError(T)
E r r o r ( T ) = N ( T ) − n k ( T ) + K − 1 N ( T ) + K {{E rr o r}}(T)=\frac{N(T)-n_{k}(T)+K-1}{N(T)+K} Error(T)=N(T)+KN(T)−nk(T)+K−1
步骤:
E r r o r ( L e a f i ) = N ( L e a f i ) − n k ( L e a f i ) + K − 1 N ( L e a f i ) + K E rr o r(L e af_{i})=\frac{N(L e af_{i})-n_{k}(L e af_{i})+K-1}{N(L e af_{i})+K} Error(Leafi)=N(Leafi)+KN(Leafi)−nk(Leafi)+K−1
E r r o r ( L e a f ) = ∑ i = 1 L w i E r r o r ( L e a f i ) = ∑ i = 1 L N ( L e a f i ) N ( T ) E r r o r ( L e a f i ) E rr o r(L e a f)=\sum_{i=1}^{L}w_{i}E rr o r(L e a f_{i})=\sum_{i=1}^{L}\frac{N(L e a f_{i})}{N(T)}E rr o r(L e a f_{i}) Error(Leaf)=i=1∑LwiError(Leafi)=i=1∑LN(T)N(Leafi)Error(Leafi)
E r r o r ( T ) = N ( T ) − n k ( T ) + K − 1 N ( T ) + K {{E rr o r}}(T)=\frac{N(T)-n_{k}(T)+K-1}{N(T)+K} Error(T)=N(T)+KN(T)−nk(T)+K−1
E r r o r ( T ) < E r r o r ( L e a f ) Error(T) < Error(Leaf) Error(T)<Error(Leaf)
原理:根据剪枝前后的误判个数来决定是否剪枝。自下而上剪枝,只需要训练集即可。
设 e ( T ) e(T) e(T) 为午盘个数, N ( T ) N(T) N(T) 为样本个数, α \alpha α 为上分位数, q α q_\alpha qα 为置信水平,常取 25% 。
U C F ( e ( L e a f i ) , N ( L e a f i ) ) = e ( L e a f i ) + 0.5 + q α 2 2 + q α ( e ( L e a f i ) + 0.5 ) ( N ( L e a f i ) − e ( L e a f i ) − 0.5 ) N ( L e a f i ) + q α 2 4 N ( L e a f i ) + q α 2 U_{C F}\left(e\left( { Leaf }_i\right), N\left( { Leaf }_i\right)\right)=\frac{e\left( { Leaf }_i\right)+0.5+\frac{q_\alpha^2}{2}+q_\alpha \sqrt{\frac{\left(e\left( { Leaf }_i\right)+0.5\right)\left(N\left( { Leaf }_i\right)-e\left( { Leaf }_i\right)-0.5\right)}{N\left( { Leaf }_i\right)}+\frac{q_\alpha^2}{4}}}{N\left( { Leaf }_i\right)+q_\alpha^2} UCF(e(Leafi),N(Leafi))=N(Leafi)+qα2e(Leafi)+0.5+2qα2+qαN(Leafi)(e(Leafi)+0.5)(N(Leafi)−e(Leafi)−0.5)+4qα2
E ( L e a f ) = ∑ i = 1 L N ( L e a f i ) U C F ( e ( L e a f i ) , N ( L e a f i ) ) E( { Leaf })=\sum_{i=1}^L N\left( { Leaf }_i\right) U_{C F}\left(e\left( { Leaf }_i\right), N\left( { Leaf }_i\right)\right) E(Leaf)=i=1∑LN(Leafi)UCF(e(Leafi),N(Leafi))
U C F ( e ( T ) , N ( T ) ) = e ( T ) + 0.5 + q α 2 2 + q α ( e ( T ) + 0.5 ) ( N ( T ) − e ( T ) − 0.5 ) N ( T ) + q α 2 4 N ( T ) + q α 2 U_{C F}\left(e\left( { T }\right), N\left( { T }\right)\right)=\frac{e\left( { T }\right)+0.5+\frac{q_\alpha^2}{2}+q_\alpha \sqrt{\frac{\left(e\left( { T }\right)+0.5\right)\left(N\left( { T }\right)-e\left( { T }\right)-0.5\right)}{N\left( { T }\right)}+\frac{q_\alpha^2}{4}}}{N\left( { T }\right)+q_\alpha^2} UCF(e(T),N(T))=N(T)+qα2e(T)+0.5+2qα2+qαN(T)(e(T)+0.5)(N(T)−e(T)−0.5)+4qα2
E ( T ) = N ( T ) U C F ( e ( T ) , N ( T ) ) E(T)=N(T)U_{C F}(e(T),\,\,N(T)) E(T)=N(T)UCF(e(T),N(T))
E ( T ) < E ( L e a f ) E(T) < E(Leaf) E(T)<E(Leaf)
原理:根据剪枝前后的损失函数来决定是否剪枝。
设 C ( T ) C(T) C(T) 为 T T T 在训练集中的预测误差, ∣ T ∣ |T| ∣T∣ 为树 T T T 的叶结点个数,反映 T T T 的复杂度(考验泛化能力), t t t 是树 T T T 的叶结点,该叶结点有 N t N_t Nt 个样本点,其中 k k k 类的样本点有 N t k N_{tk} Ntk 个, H t ( T ) H_t(T) Ht(T) 为叶结点 t t t 上的经验熵 , α ≥ 0 \alpha \ge 0 α≥0 为惩罚参数。
C α = C ( T ) + α ∣ T ∣ C_\alpha = C(T) + \alpha|T| Cα=C(T)+α∣T∣
其中, C ( T ) = ∑ t = 1 ∣ T ∣ N t H t ( T ) = − ∑ t = 1 ∣ T ∣ ∑ k = 1 K N t k log N t k N t C(T)=\sum_{t=1}^{|T|} N_t H_t(T)=-\sum_{t=1}^{|T|} \sum_{k=1}^K N_{t k} \log \frac{N_{t k}}{N_t} C(T)=∑t=1∣T∣NtHt(T)=−∑t=1∣T∣∑k=1KNtklogNtNtk
min f ∈ F 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f ) \operatorname*{min}_{f\in\mathcal{F}}\frac{1}{N}\sum_{i=1}^{N}L(y_{i},\,f(x_{i}))+\lambda J(f) f∈FminN1i=1∑NL(yi,f(xi))+λJ(f)
H t = − ∑ k = 1 K N t k N t log N t k N t H_t=-\sum_{k=1}^K \frac{N_{t k}}{N_t} \log \frac{N_{t k}}{N_t} Ht=−k=1∑KNtNtklogNtNtk
C α ( T A ) = C ( T A ) + α ∣ T A ∣ C_{\alpha}(\,T_{A})=\,C(\,T_{A})+\alpha |T_{A}| Cα(TA)=C(TA)+α∣TA∣
C α ( T B ) = C ( T B ) + α ∣ T B ∣ C_\alpha\left(T_B\right)=C\left(T_B\right)+\alpha\left|T_B\right| Cα(TB)=C(TB)+α∣TB∣
C α ( T B ) ≤ C α ( T A ) C_\alpha\left(T_B\right) \leq C_\alpha\left(T_A\right) Cα(TB)≤Cα(TA)
假设现在有
K
K
K 个类,样本点属于第
k
k
k 个类的概率为
p
k
p_k
pk ,则概率分布的基尼指数为:
Gini
(
p
)
=
∑
k
=
1
K
p
k
(
1
−
p
k
)
=
1
−
∑
k
=
1
K
p
k
2
\operatorname{Gini}(p)=\sum_{k=1}^K p_k\left(1-p_k\right)=1-\sum_{k=1}^K p_k^2
Gini(p)=k=1∑Kpk(1−pk)=1−k=1∑Kpk2
二分类:
Gini
(
p
)
=
2
p
(
1
−
p
)
\operatorname {Gini}(p) = 2p(1-p)
Gini(p)=2p(1−p)
样本集
D
D
D 的基尼系数:
Gini
(
D
)
=
1
−
∑
k
=
1
K
(
∣
C
k
∣
∣
D
∣
)
2
\operatorname{Gini}(D)=1-\sum_{k=1}^K\left(\frac{\left|C_k\right|}{|D|}\right)^2
Gini(D)=1−k=1∑K(∣D∣∣Ck∣)2
特征
A
A
A 条件下,样本集
D
D
D 的基尼指数为:
Gini
(
D
,
A
)
=
∣
D
1
∣
∣
D
∣
Gini
(
D
1
)
+
∣
D
2
∣
∣
D
∣
Gini
(
D
2
)
\operatorname{Gini}(D, A)=\frac{\left|D_1\right|}{|D|} \operatorname{Gini}\left(D_1\right)+\frac{\left|D_2\right|}{|D|} \operatorname{Gini}\left(D_2\right)
Gini(D,A)=∣D∣∣D1∣Gini(D1)+∣D∣∣D2∣Gini(D2)
输入:训练数据集 D D D 、特征集 A A A 、阈值 ϵ \epsilon ϵ
输出:CART决策树 T T T
假设将输入空间划分为
M
M
M 个单元
R
1
,
R
2
,
⋯
,
R
m
R_1, R_2, \cdots, R_m
R1,R2,⋯,Rm ,并在每个单元
R
m
R_m
Rm 上有一个固定的输出值
C
m
C_m
Cm 。回归树模型可表示为:
f
(
x
)
=
∑
m
=
1
M
c
m
I
(
x
∈
R
m
)
f(x)=\sum_{m=1}^M c_m I\left(x \in R_m\right)
f(x)=m=1∑McmI(x∈Rm)
平方误差:
∑
x
i
∈
R
m
(
y
i
−
f
(
x
i
)
)
2
\sum_{x_i \in R_m}\left(y_i-f\left(x_i\right)\right)^2
xi∈Rm∑(yi−f(xi))2
最优输出:
c
^
m
=
average
(
y
i
∣
x
i
∈
R
m
)
\hat{c}_m=\operatorname{average}\left(y_i \mid x_i \in R_m\right)
c^m=average(yi∣xi∈Rm)
选择第
x
(
j
)
x^{(j)}
x(j) 个变量和取值
s
s
s ,分别作为切分变量和切分点,并定义两个区域:
R
1
(
j
,
s
)
=
{
x
∣
x
(
j
)
⩽
s
}
R
2
(
j
,
s
)
=
{
x
∣
x
(
j
)
>
s
}
R_1(j, s)=\left\{x \mid x^{(j)} \leqslant s\right\} \quad R_2(j, s)=\left\{x \mid x^{(j)}>s\right\}
R1(j,s)={x∣x(j)⩽s}R2(j,s)={x∣x(j)>s}
寻找最优切分变量
j
j
j 和最优切分点
s
s
s:
min
j
,
s
[
min
c
1
∑
x
i
∈
R
1
(
j
,
s
)
(
y
i
−
c
1
)
2
+
min
c
2
∑
x
i
∈
R
2
(
j
,
s
)
(
y
i
−
c
2
)
2
]
\min _{j, s}\left[\min _{c_1} \sum_{x_i \in R_1(j, s)}\left(y_i-c_1\right)^2+\min _{c_2} \sum_{x_i \in R_2(j, s)}\left(y_i-c_2\right)^2\right]
j,smin
c1minxi∈R1(j,s)∑(yi−c1)2+c2minxi∈R2(j,s)∑(yi−c2)2
对固定输入变量
j
j
j 可以找到最优切分点
s
s
s :
c
^
1
=
ave
(
y
i
∣
x
i
∈
R
1
(
j
,
s
)
)
c
^
2
=
ave
(
y
i
∣
x
i
∈
R
2
(
j
,
s
)
)
\begin{align} \hat{c}_1=\operatorname{ave}\left(y_i \mid x_i \in R_1(j, s)\right) \\ \hat{c}_2=\operatorname{ave}\left(y_i \mid x_i \in R_2(j, s)\right) \end{align}
c^1=ave(yi∣xi∈R1(j,s))c^2=ave(yi∣xi∈R2(j,s))
输入:训练数据集 D D D ,停止条件
输出:CART 决策树 T T T
从根节点出发,进行操作,构建二叉树;
结点处的训练数据集为
D
D
D ,计算变量的最优切分点,并选择最优变量。
min
j
,
s
[
min
c
1
∑
x
i
∈
R
1
(
j
,
s
)
(
y
i
−
c
1
)
2
+
min
c
2
∑
x
i
∈
R
2
(
j
,
s
)
(
y
i
−
c
2
)
2
]
\min _{j, s}\left[\min _{c_1} \sum_{x_i \in R_1(j, s)}\left(y_i-c_1\right)^2+\min _{c_2} \sum_{x_i \in R_2(j, s)}\left(y_i-c_2\right)^2\right]
j,smin
c1minxi∈R1(j,s)∑(yi−c1)2+c2minxi∈R2(j,s)∑(yi−c2)2
在第 j j j 变量下,对其可能取的每个值 s s s ,根据样本点分割成 R 1 R_1 R1 和 R 2 R_2 R2 两部分,计算切分点为 s s s 时的平方误差。
选择平方误差最小的那个值作为该变量下的最优切分点。
计算每个变量下的最优切分点,并比较在最优切分下的每个变量的平方误差,选择平方误差最小的那个变量,即最优变量。
根据最优特征与最优切分点 ( j , s ) (j, s) (j,s),从现结点生成两个子结点,将训练数据集依变量配到两个子结点中去,得到相应的输出值。
R 1 ( j , s ) = { x ∣ x ( j ) ⩽ s } , R 2 ( j , s ) = { x ∣ x ( j ) > s } R_1(j, s)=\left\{x \mid x^{(j)} \leqslant s\right\}, \quad R_2(j, s)=\left\{x \mid x^{(j)}>s\right\} R1(j,s)={x∣x(j)⩽s},R2(j,s)={x∣x(j)>s}
c ^ m = 1 N m ∑ x i ∈ R m ( j , s ) y i , x ∈ R m , m = 1 , 2 \hat{c}_m=\frac{1}{N_m} \sum_{x_i \in R_m(j, s)} y_i, \quad x \in R_m, \quad m=1,2 c^m=Nm1xi∈Rm(j,s)∑yi,x∈Rm,m=1,2
f ( x ) = ∑ m = 1 M c m I ( x ∈ R m ) f(x)=\sum_{m=1}^M c_m I\left(x \in R_m\right) f(x)=m=1∑McmI(x∈Rm)
决策树不一定是二叉树,可能是多叉树,即:决策树可以做多分类。
决策树的内部结点表示一个特征或属性,叶结点表示一个类。
决策树符合 if-then 规则,互斥且完备,即:每一个实例都被一条路径或一条规则所覆盖,而且只被一条路径或一条规则所覆盖。
决策树还可以看成是由给定条件下类的条件概率分布组成的,即在上一个特征发生的条件下求取下一个特征发生的概率。
任何一棵多叉树都可以表示成二叉树的形式,这也是为什么在悲观错误剪枝(Pessimistic Error Pruning)和基于错误的剪枝(Error Based Pruning)中具有二项分布的身影 。
随机变量的取值等概率分布的时候,相应的熵最大。通俗理解为:等概率分布时,随机变量取到每一个值的概率都相同,此时随机变量的不确定性最大。
决策树还表示给定特征条件下类的概率分布,即在上一个特征发生的前提下寻找下一个特征发生的概率。
g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)−H(D∣A)
要使 g ( D , A ) g(D,A) g(D,A) 变小,需使 H ( D ∣ A ) H(D|A) H(D∣A) 变大,表示为:已知特征 A A A 的条件下对集合 D D D 的分类效果好。
决策树生成过程中,若特征 A g A_g Ag 只有一种可能值,此时 H ( D ) H(D) H(D) 和 H ( D ∣ A ) H(D|A) H(D∣A) 均为 0 ,信息增益也为 0 ,必小于 ϵ \epsilon ϵ ,应生成叶结点。
决策树生成时,当所有特征的信息增益均小于 ϵ \epsilon ϵ 时,决策树完成构建。
以信息增益作为划分训练数据集的特征,存在偏向于选择取值较多的特征的问题。使用信息增益比(information gain ratio)可以对这一问题进行校正。
ID3算法和C4.5算法,只有划分依据不同,ID3算法依据信息增益划分,C4.5算法依据信息增益比划分。
C4.5算法较ID3算法,它可以处理连续型的数据,但不适用于大型数据。
预剪枝是自上而下的过程,后剪枝是自下而上的过程。其中悲观错误剪枝(Pessimistic Error Pruning)较为特殊,它归属于后剪枝,但却是自上而下剪枝。
连续性修正:
将伯努利分布 B ( 1 , p ) B(1,p) B(1,p) 重复 n n n 次,就是二项分布 B ( n , p ) B(n,p) B(n,p) 。
棣莫弗-拉普拉斯中心极限定理:
设随机变量 Y n ∼ B ( n , p ) ( 0 < p < 1 , b ≥ 1 ) Y_n \sim B(n,p)(0<p<1, b \ge 1) Yn∼B(n,p)(0<p<1,b≥1)
lim n → ∞ P { a < x n − n p n p ( 1 − p ) ≤ b } = ∫ a b 1 2 π e − t 2 2 d t \lim _{n \rightarrow \infty} P\left\{a<\frac{x_n-n p}{\sqrt{n p(1-p)}} \leq b\right\}=\int_a^b \frac{1}{\sqrt{2 \pi}} e^{-\frac{t^2}{2}} d t n→∞limP{a<np(1−p) xn−np≤b}=∫ab2π 1e−2t2dt
其中, 1 2 π e − t 2 2 \frac{1}{\sqrt{2 \pi}} e^{-\frac{t^2}{2}} 2π 1e−2t2 就是正态分布的概率密度函数。
该定理表明:正态分布是二项分布的极限分布。
即: n → ∞ , B ( n , p ) → B ( n p , n p ( 1 − p ) ) n \rightarrow \infty, B(n,p) \rightarrow B(np, np(1-p)) n→∞,B(n,p)→B(np,np(1−p))
二项分布为离散型随机变量,分布函数是阶梯状;正态分布为连续性随机变量,而正态分布的曲线穿过了每个阶梯的中心点。在 [ a , a + 0.5 ) [a, a+0.5) [a,a+0.5) 区间内,二项分布的分布函数大于正态分布;在 ( a + 0.5 , a + 1 ] (a+0.5, a+1] (a+0.5,a+1] 区间内,正态分布的分布函数大于二项分布。
若直接用正态分布求概率,结果偏大,体现在概率直方图中:
当二项分布的期望 n p np np 大到可以用正态分布近似的时候,应对正态分布做连续性修正,视概率求取边界对积分边界进行 ± 0.5 \pm0.5 ±0.5 处理(根据四舍五入计数法,经过 0.5 0.5 0.5 修正后的边界内的整数个数等于二项分布区间内的整数个数)。
对于 X ∼ B ( n , p ) X \sim B(n,p) X∼B(n,p) :
若求取概率
P
(
a
<
X
<
b
)
P(a<X<b)
P(a<X<b) ,有:
∑
k
=
a
+
1
b
−
1
C
n
k
1
p
n
≈
∫
a
+
0.5
b
−
0.5
1
2
π
e
−
t
2
2
d
t
\sum_{k=a+1}^{b-1}C_{n}^k \frac{1}{p^{n}} \approx \int_{a+0.5}^{b-0.5} \frac{1}{\sqrt{2 \pi}} e^{-\frac{t^2}{2}}dt
k=a+1∑b−1Cnkpn1≈∫a+0.5b−0.52π
1e−2t2dt
若求取概率
P
(
a
≤
X
≤
b
)
P(a \leq X \leq b)
P(a≤X≤b) ,有:
∑
k
=
a
b
C
n
k
1
p
n
≈
∫
a
−
0.5
b
+
0.5
1
2
π
e
−
t
2
2
d
t
\sum_{k=a}^{b}{C_{n}^{k}{\frac{1}{p^{n}}} \approx } \int_{a-0.5}^{b+0.5} \frac{1}{\sqrt{2 \pi}} e^{-\frac{t^2}{2}}dt
k=a∑bCnkpn1≈∫a−0.5b+0.52π
1e−2t2dt
对于
(
a
,
b
)
(a,b)
(a,b) ,连续性修正后的正态分布区间
(
a
+
0.5
,
b
−
0.5
)
(a+0.5,b-0.5)
(a+0.5,b−0.5) 内取整即为二项分布在区间
(
a
,
b
)
(a,b)
(a,b) 内取整。
对于 [ a , b ] [a,b] [a,b] ,连续性修正后的正态分布区间 ( a − 0.5 , b + 0.5 ) (a-0.5, b+0.5) (a−0.5,b+0.5) 内取整二项分布在区间 [ a , b ] [a,b] [a,b] 内取整。
悲观错误剪枝(Pessimistic Error Pruning)中, E ( T ) = N ( T ) × E r r o r ( T ) E(T)=N(T) \times {Error}(T) E(T)=N(T)×Error(T) 的实质就是二项分布的期望 E ( X ) = n p E(X) = np E(X)=np , s t d ( T ) = N ( T ) × E r r o r ( T ) × ( 1 − E r r o r ( T ) ) std(T)=\sqrt{N(T)\times Error(T) \times (1-Error(T))} std(T)=N(T)×Error(T)×(1−Error(T)) 的实质就是二项分布的标准差 D ( X ) = n p ( 1 − p ) \sqrt{D(X)} = \sqrt{np(1-p)} D(X) =np(1−p) 。
悲观错误剪枝(Pessimistic Error Pruning)中,剪枝后只有一个叶结点,没有标准差和方差。
最小误差剪枝(Minimum Error Pruning)引入了贝叶斯思维,加入了先验概率影响因子。
关于最小误差剪枝(Minimum Error Pruning)中的 m m m ,应该计算得到而不是直接给出。应在已知先验概率的情况下,通过迭代或网格搜索等方法确定 min E r r o r ( T ) \min Error(T) minError(T),此时才符合标题中的“最小误差”。当类别总数较大时,先验概率至关重要,更不应该随意设定 m m m 的值。
上 α \alpha α 分位数: P ( X ≥ x α ) = α P(X \ge x_\alpha) = \alpha P(X≥xα)=α ; 下 α \alpha α 分位数: P ( X ≤ x α ) = α P(X \le x_\alpha) = \alpha P(X≤xα)=α 。
对于基于错误的剪枝(Error Based Pruning)中误判率上界的分析:
e r r o r ( T ) = e ( T ) + 0.5 N ( T ) error(T) = \frac{e(T) +0.5}{N(T)} error(T)=N(T)e(T)+0.5
N ( T ) ⋅ e ( T ) + 0.5 N ( T ) ⋅ ( 1 − e ( T ) + 0.5 N ( T ) ) = ( e ( T ) + 0.5 ) ( N ( T ) − e ( T ) − 0.5 ) N ( T ) N(T) \cdot \frac{e(T) + 0.5}{N(T)} \cdot (1 - \frac{e(T) + 0.5}{N(T)})= \sqrt{\frac{\left(e\left( { T }\right)+0.5\right)\left(N\left( { T }\right)-e\left( { T }\right)-0.5\right)}{N\left( { T }\right)}} N(T)⋅N(T)e(T)+0.5⋅(1−N(T)e(T)+0.5)=N(T)(e(T)+0.5)(N(T)−e(T)−0.5)
( e ( T ) + 0.5 ) ( N ( T ) − e ( T ) − 0.5 ) N ( T ) + q α 2 4 \sqrt{\frac{\left(e\left( { T }\right)+0.5\right)\left(N\left( { T }\right)-e\left( { T }\right)-0.5\right)}{N\left( { T }\right)} + \frac{{q_\alpha}^2}{4}} N(T)(e(T)+0.5)(N(T)−e(T)−0.5)+4qα2
因篇幅问题不能全部显示,请点此查看更多更全内容