(《机器学习》完整版系列)第4章 线性模型——4.3 连续值的处理与缺失值的处理(现实很骨感:属性连续和属性缺失)
当样本中有连续属性时,连续属性的可取值是无限的,但
D
D
D是有限的,如何处理?
当样本中的属性值缺失时,总不能空着吧,如何处理?
连续值的处理
连续属性 a a a的可取值是无限的,但 D D D是有限的,即 a a a在 D D D中出现的值是有限的,将这有限个 a a a值从小到大排序设为 { a 1 , a 2 , ⋯ , a n } \{a^1,a^2,\cdots,a^n\} {a1,a2,⋯,an}(这里的上标不是指方幂,而是表示序号,通常把下标留给样本编号,故这里用上标),显然,对每一个 a i a^i ai,可得到 D D D的一个划分:( D a i − : 由 D 中 ( a ⩽ a i ) D_{a^i}^-:由D中(a\leqslant a^i) Dai−:由D中(a⩽ai))与( D a i + : 由 D 中 ( a > a i ) D_{a^i}^+:由D中(a> a^i) Dai+:由D中(a>ai)),这里 D D D的上标“+”与“-”是指连续属性值“大于”与“小于”分界点,而不是指样本的“正例”与“反例”。
又 i = n i=n i=n时, D a n + = ∅ D_{a^n}^+=\varnothing Dan+=∅,即此时 D D D无划分,故当有划分时, i = 1 , 2 , ⋯ , n − 1 i=1,2,\cdots,n-1 i=1,2,⋯,n−1。
当然,可以取更一般的 t i ∈ [ a i , a i + 1 ) t^i\in [a^i,a^{i+1}) ti∈[ai,ai+1),在 t i t^i ti处截断形成划分 D t i − D_{t^i}^- Dti−和 D t i + D_{t^i}^+ Dti+,较常用中点: t i = a i + a i + 1 2 , i = 1 , 2 , ⋯ , ( n − 1 ) t^i=\frac{a^i+a^{i+1}}{2},\qquad i=1,2,\cdots,(n-1) ti=2ai+ai+1,i=1,2,⋯,(n−1)
这时,候选划分点集合为:
T
a
=
{
t
1
,
t
2
,
⋯
,
t
n
−
1
}
T_a=\{t^1,t^2,\cdots,t^{n-1}\}
Ta={t1,t2,⋯,tn−1}
这样,对一个属性
a
a
a(连续的)派生出多个属性(离散的),形成属性集
T
a
T_a
Ta,由此定义
G
a
i
n
(
D
,
a
)
=
max
t
∈
T
a
G
a
i
n
(
D
,
a
,
t
)
=
max
t
∈
T
a
E
n
t
(
D
)
−
∣
D
t
+
∣
∣
D
∣
E
n
t
(
D
t
+
)
−
∣
D
t
−
∣
∣
D
∣
E
n
t
(
D
t
−
)
\begin{align} \mathrm{Gain}(D,a) & =\mathop{\max}_{t \in T_a}\mathrm{Gain}(D,a,t)\notag \\ & =\mathop{\max}_{t \in T_a}\mathrm{Ent}(D)-\frac{|D_t^+|}{|D|}\mathrm{Ent}(D_t^+)-\frac{|D_t^-|}{|D|}\mathrm{Ent}(D_t^-) \tag{4.15} \end{align}
Gain(D,a)=maxt∈TaGain(D,a,t)=maxt∈TaEnt(D)−∣D∣∣Dt+∣Ent(Dt+)−∣D∣∣Dt−∣Ent(Dt−)(4.15)
式(4.15)即【西瓜书式(4.8)】。 求式(4.15)最大值时,也获得了对应的
t
∗
t_*
t∗
t
∗
=
arg
max
t
∈
T
a
G
a
i
n
(
D
,
a
,
t
)
\begin{align} t_*=\mathop{\arg\max}_{t \in T_a}\mathrm{Gain}(D,a,t) \tag{4.16} \end{align}
t∗=argmaxt∈TaGain(D,a,t)(4.16)
连续属性 a a a处的决策分为两步:
(1)由式(4.15)计算连续属性 a a a的 G a i n \mathrm{Gain} Gain,它与其他属性的 G a i n \mathrm{Gain} Gain比较,确定连续属性 a a a是否为本次划分属性。
(2)若它是本次划分属性,则再由式(4.16)在 T a T_a Ta中取最优的 t ∗ t_* t∗进行划分。
而该处的划分是二叉的(二分),即划分为 D t ∗ − D_{t^*}^- Dt∗−和 D t ∗ + D_{t^*}^+ Dt∗+,示例【西瓜书图4.8左下角】。
值得注意的是:该决策产生的划分并没有完全消除连续属性 a a a,但消除了一个离散属性 t ∗ t_* t∗,划分的子集中仍有 T a T_a Ta中的其他离散属性,需要在后续结点中消除:由于该划分将 T a T_a Ta一分为二,故后续节点中的 T a T_a Ta逐步变小,而后续节点中的 D D D也是指划分后落入该结点的子集,即后续结点必须用划分到该结点处的 T a T_a Ta和 D D D计算式(4.15)和式(4.16)。
示例【西瓜书图4.10】表明:1)连续属性的划分为二叉的;连续属性需要多次划分才能消除(每次消集 T a T_a Ta中的一个)。 2)离散属性是划分时使用多叉一次性地消除,分叉宽度为该属性的可取值个数。
决策树的基本算法【西瓜书图4.2】并没有包含连续属性,可以在其中增加对连续属性处理的分支。
缺失值的处理
当样本中的属性值缺失时,需要进行处理。
1.样本中处理:将缺失值化为非缺失值
(1)删除法:删除有缺失值(或有较多缺失)的样本;
(2)填补法:依某规则(如,概率)填补;
(3)增加值或维:如“性别”的缺失,将其取值由“男、女”增加成“男、女、未知”;或将“性别”的多值属性拆分为多个二值属性,并增加一维“未知”,这样,属性“性别”为变三个属性“男”、“女”、“未知”,每个属性取值范围为“是、否”。
2.算法中处理:即从算法的角度考虑缺失值,【西瓜书图4.2】所示的基本算法中与缺失值相关的有:属性选择与划分。
我们以信息增益准则为例,考虑在有缺失值的情况下算法中的变化。
(1)影响划分属性的选择
设
D
D
D中有缺失属性
a
a
a的样本,不缺失
a
a
a的子集记为
D
~
\tilde{D}
D~,由【西瓜书式(4.1)(4.2)】可求得
G
a
i
n
(
D
~
,
a
)
=
E
n
t
(
D
~
)
−
∑
v
=
1
V
∣
D
~
v
∣
∣
D
~
∣
E
n
t
(
D
~
v
)
\begin{align} \mathrm{Gain}(\tilde{D},a)=\mathrm{Ent}(\tilde{D})-\sum_{v=1}^V\frac{|\tilde{D}^v|}{|\tilde{D}|}\mathrm{Ent}(\tilde{D}^v) \tag{4.17} \end{align}
Gain(D~,a)=Ent(D~)−v=1∑V∣D~∣∣D~v∣Ent(D~v)(4.17)
假定在划分选择时对无缺失值的属性有偏好,即若 G a i n ( D ~ , a ) = G a i n ( D , b ) \mathrm{Gain}(\tilde{D},a)= \mathrm{Gain}(D,b) Gain(D~,a)=Gain(D,b),而属性 a a a有缺失样本, b b b无缺失,则选择 b b b作为划分属性。
若缺失属性 a a a的样本占比小,则可视为 G a i n ( D , a ) ≈ G a i n ( D ~ , a ) \mathrm{Gain}(D,a)\approx \mathrm{Gain}(\tilde{D},a) Gain(D,a)≈Gain(D~,a)。 此时, G a i n ( D , a ) \mathrm{Gain}(D,a) Gain(D,a)应定义为略小于 G a i n ( D ~ , a ) \mathrm{Gain}(\tilde{D},a) Gain(D~,a),使 G a i n ( D , a ) < G a i n ( D , b ) \mathrm{Gain}({D},a)< \mathrm{Gain}(D,b) Gain(D,a)<Gain(D,b),以便决策时满足上述偏好。
由此易找到一个合理的定义:
G
a
i
n
(
D
,
a
)
=
∣
D
~
∣
∣
D
∣
G
a
i
n
(
D
~
,
a
)
\begin{align} \mathrm{Gain}(D,a)=\frac{|\tilde{D}|}{|D|}\mathrm{Gain}(\tilde{D},a) \tag{4.18 } \end{align}
Gain(D,a)=∣D∣∣D~∣Gain(D~,a)(4.18 )
引入比重记号
ρ
=
∣
D
~
∣
∣
D
∣
r
v
=
∣
D
~
v
∣
∣
D
~
∣
(
v
=
1
,
2
,
⋯
,
V
)
\begin{align*} \rho & =\frac{|\tilde{D}|}{|D|} \\ r_v & =\frac{|\tilde{D}^v|}{|\tilde{D}|}\quad (v=1,2,\cdots,V) \end{align*}
ρrv=∣D∣∣D~∣=∣D~∣∣D~v∣(v=1,2,⋯,V)
则由式(4.17)、式(4.18)有限个时,有
G
a
i
n
(
D
,
a
)
=
ρ
[
E
n
t
(
D
~
)
−
∑
v
=
1
V
r
v
E
n
t
(
D
~
v
)
]
\begin{align} \mathrm{Gain}(D,a)=\rho[\mathrm{Ent}(\tilde{D})-\sum_{v=1}^Vr_v\mathrm{Ent}(\tilde{D}^v)] \tag{4.19 } \end{align}
Gain(D,a)=ρ[Ent(D~)−v=1∑VrvEnt(D~v)](4.19 )
进一步地,假定
D
D
D中样本各有不同的重要性,则对样本
x
\boldsymbol{x}
x可赋予权重(反映其重要程度)
w
x
w_{\boldsymbol{x}}
wx,这时比重变为
ρ
=
∑
x
∈
D
~
w
x
∑
x
∈
D
w
x
r
v
=
∑
x
∈
D
~
v
w
x
∑
x
∈
D
~
w
x
(
v
=
1
,
2
,
⋯
,
V
)
\begin{align} \rho & =\frac{\sum_{{\boldsymbol{x}} \in \tilde{D}}w_{\boldsymbol{x}}}{\sum_{{\boldsymbol{x}} \in D}w_{\boldsymbol{x}}}\tag{4.20 } \\ r_v & =\frac{\sum_{{\boldsymbol{x}} \in \tilde{D}^v}w_{\boldsymbol{x}}}{\sum_{{\boldsymbol{x}} \in \tilde{D}}w_{\boldsymbol{x}}}\quad (v=1,2,\cdots,V)\tag{4.21 } \end{align}
ρrv=∑x∈Dwx∑x∈D~wx=∑x∈D~wx∑x∈D~vwx(v=1,2,⋯,V)(4.20 )(4.21 )
同样,在权重下,类别
k
k
k的频率(概率)变为
p
~
k
=
∑
x
∈
D
~
k
w
x
∑
x
∈
D
~
w
x
p
~
k
v
=
∑
x
∈
D
~
k
v
w
x
∑
x
∈
D
~
v
w
x
(
v
=
1
,
2
,
⋯
,
V
)
\begin{align} \tilde{p}_k & =\frac{\sum_{{\boldsymbol{x}} \in \tilde{D}_k}w_{\boldsymbol{x}}}{\sum_{{\boldsymbol{x}} \in \tilde{D}}w_{\boldsymbol{x}}}\tag{4.22 } \\ \tilde{p}_k^v & =\frac{\sum_{{\boldsymbol{x}} \in \tilde{D}_k^v}w_{\boldsymbol{x}}}{\sum_{{\boldsymbol{x}} \in \tilde{D}^v}w_{\boldsymbol{x}}}\quad (v=1,2,\cdots,V)\tag{4.23 } \end{align}
p~kp~kv=∑x∈D~wx∑x∈D~kwx=∑x∈D~vwx∑x∈D~kvwx(v=1,2,⋯,V)(4.22 )(4.23 )
由式(4.22)、式(4.23)对应的信息熵变为
E
n
t
(
D
~
)
=
−
∑
k
=
1
∣
Y
∣
p
~
k
log
2
p
~
k
E
n
t
(
D
~
v
)
=
−
∑
k
=
1
∣
Y
∣
p
~
k
v
log
2
p
~
k
v
(
v
=
1
,
2
,
⋯
,
V
)
\begin{align} \mathrm{Ent}(\tilde{D}) & =-\sum_{k=1}^{|\mathcal{Y} |}\tilde{p}_k{\log} _2\tilde{p}_k\tag{4.24 } \\ \mathrm{Ent}(\tilde{D}^v) & =-\sum_{k=1}^{|\mathcal{Y} |}\tilde{p}_k^v{\log} _2\tilde{p}^v_k\quad (v=1,2,\cdots,V)\tag{4.25} \end{align}
Ent(D~)Ent(D~v)=−k=1∑∣Y∣p~klog2p~k=−k=1∑∣Y∣p~kvlog2p~kv(v=1,2,⋯,V)(4.24 )(4.25)
由式(4.19)至式(4.25)即可计算带权重的 G a i n ( D , a ) \mathrm{Gain}(D,a) Gain(D,a)。
计算 G a i n ( D , a ) \mathrm{Gain}(D,a) Gain(D,a)后, a a a即可参与划分决策了,若选中有缺失属性 a a a作为划分属性时,对于该属性的不缺失的样本,直接划入它所属于的分支的子集中,而对于缺失该属性的每个样本 x {\boldsymbol{x}} x都分裂(一变多:将整体“一”打碎成多份)到生长出的各分支中,其在各分支所占的比重等于该分支中不缺失该属性 a a a的样本的比重,即划分结点该样本 x {\boldsymbol{x}} x的权重 w x w_{\boldsymbol{x}} wx被按比重 r v r_v rv分解到各分支中,相应的权重为 r v × w x ( v = 1 , 2 , ⋯ , V ) r_v\times w_{\boldsymbol{x}}\quad (v=1,2,\cdots,V) rv×wx(v=1,2,⋯,V)。 例如【西瓜书p.88】依“纹理”划分后,编号为{8}的样本缺失该属性,划分到三个子结结点后,它的权重分别变为 7 15 {\frac{7}{15}} 157、 7 5 {\frac{7}{5}} 57和 3 15 {\frac{3}{15}} 153。
上述讨论了有缺失值情况下的信息熵,也可以类似地讨论有缺失值情况下的基尼指数:上篇博客中式(4.12)中定义了基尼指数
G
i
n
i
_
i
n
d
e
x
(
D
,
a
)
\mathrm{Gini\_index}(D,a)
Gini_index(D,a)最优划分属性准则,参照式(4.19)至式(4.25)对缺失值情况的讨论,可定义有缺失值情况下的基尼指数如下:
G
i
n
i
_
i
n
d
e
x
(
D
,
a
)
=
1
ρ
G
i
n
i
_
i
n
d
e
x
(
D
~
,
a
)
其中,
ρ
=
∣
D
~
∣
∣
D
∣
(4.26 )
\mathrm{Gini\_index}(D,a)=\frac{1}{\rho } \mathrm{Gini\_index}(\tilde{D},a) \tag{4.26 }\\ \text{其中,}\rho =\frac{|\tilde{D}|}{|{D}|}
Gini_index(D,a)=ρ1Gini_index(D~,a)其中,ρ=∣D∣∣D~∣(4.26 )
本文为原创,您可以:
- 点赞(支持博主)
- 收藏(待以后看)
- 转发(他考研或学习,正需要)
- 评论(或讨论)
- 引用(支持原创)
- 不侵权
上一篇:4.2 划分选择与剪枝(此事“信息量好大”,暗指该事件不平常)
下一篇:4.4 连续变量的决策树(以属性为轴的坐标系)