zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

(《机器学习》完整版系列)第4章 线性模型——4.3 连续值的处理与缺失值的处理(现实很骨感:属性连续和属性缺失)

机器属性学习 处理 系列 模型 线性 连续
2023-09-11 14:14:53 时间

当样本中有连续属性时,连续属性的可取值是无限的,但 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(aai))与( 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,,n1

当然,可以取更一般的 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,,(n1)

这时,候选划分点集合为:
T a = { t 1 , t 2 , ⋯   , t n − 1 } T_a=\{t^1,t^2,\cdots,t^{n-1}\} Ta={t1,t2,,tn1}

这样,对一个属性 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)=maxtTaGain(D,a,t)=maxtTaEnt(D)DDt+Ent(Dt+)DDtEnt(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=argmaxtTaGain(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=1VD~D~vEnt(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)=DD~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=DD~=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=1VrvEnt(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=xDwxxD~wx=xD~wxxD~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=xD~wxxD~kwx=xD~vwxxD~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=1Yp~klog2p~k=k=1Yp~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)其中,ρ=DD~(4.26 )

本文为原创,您可以:

  • 点赞(支持博主)
  • 收藏(待以后看)
  • 转发(他考研或学习,正需要)
  • 评论(或讨论)
  • 引用(支持原创)
  • 不侵权

上一篇:4.2 划分选择与剪枝(此事“信息量好大”,暗指该事件不平常)
下一篇:4.4 连续变量的决策树(以属性为轴的坐标系)