机器学习入门-西瓜书总结笔记第四章

西瓜书第四章-决策树

  • 一、基本流程
  • 二、划分选择
    • 1.信息增益
    • 2.增益率
    • 3.基尼指数
    • 3.剪枝处理
  • 四、连续值与缺失值
    • 1.连续值处理
    • 2.缺失值处理
  • 五、多变量决策树


提示:后续精简

一、基本流程

  • 决策树(decision tree) 决策树是基于树结构来进行决策的
  • 一般的,一个决策树包含一个根节点、若干个内部节点和若干个叶节点;叶结点对应于决策结果,其他每个结点则对应于一个属性测试;每个结点包含的样本集合根据属性测试的结果被划分到子节点中;根结点包含样本全集
  • 决策树学习的目的是为了产生一颗泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单且直观的 “分而治之”(divide-and-conquer) 策略
    机器学习入门-西瓜书总结笔记第四章_第1张图片
  • 决策树的生成是一个递归过程,有三种情形会导致递归返回:(1)当前结点包含的样本全属于同一个类别,无需划分;(2)当前属性集为空,或是所有样本在所有属性上取值相同,无法划分;(3)当前结点包含的样本集合为空,不能划分

二、划分选择

  • 如何选择最优划分属性,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的 “纯度”(purity) 越来越高

1.信息增益

  • “信息熵”(information entropy)是度量样本集合纯度最常用的一种指标,假定当前样本集合D中第k类样本所占比例为 p k ( k = 1 , 2 , ⋯   , ∣ y ∣ ) p_k(k=1,2,\cdots,|y|) pk(k=1,2,,y)
    E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k l o g 2 p k Ent(D)=-\sum_{k=1}^{|y|}p_klog_2 p_k Ent(D)=k=1ypklog2pk
    E n t ( D ) Ent(D) Ent(D)的值越小,则D的纯度越高。
  • “信息增益”(information gain)
    G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) Gain(D,a)=Ent(D)-\sum_{v=1}^V\frac{|D^v|}{|D|}Ent(D^v) Gain(D,a)=Ent(D)v=1VDDvEnt(Dv)
    a 离散属性,V个可能取值,第v个分支结点包含了D中所有在属性a取值为 a v a^v av的样本,记为 D v D^v Dv,给分支结点赋予权重 ∣ D v ∣ / ∣ D ∣ |D^v|/|D| Dv/D
  • 信息增益越大,则意味着使用属性a进行划分所获得的“纯度提升”越大
    a ∗ = arg max ⁡ a ∈ A G a i n ( D , a ) a_*=\underset {a\in A}{\operatorname {arg\, max}}Gain(D,a) a=aAargmaxGain(D,a)
  • ID3决策树学习算法就是以信息增益为准则来选择划分属性

自行阅读书中西瓜利用ID3划分的例子

2.增益率

信息增益准则对取值数目较多的属性有所偏好

  • C4.5决策树 算法不直接使用信息增益,而是使用 “增益率”(gain ratio) 来选择最优划分属性
    G a i n _ r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) Gain\_ratio(D,a)=\frac{Gain(D,a)}{IV(a)} Gain_ratio(D,a)=IV(a)Gain(D,a)
    其中
    I V ( a ) = − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ l o g 2 ∣ D v ∣ ∣ D ∣ IV(a)=-\sum_{v=1}{V}\frac{|D^v|}{|D|}log_2\frac{|D^v|}{|D|} IV(a)=v=1VDDvlog2DDv
    称为属性a的 “固有值”(intrinsic value),属性a的可能取值数目越多(即V越大),则 I V ( a ) IV(a) IV(a)的值通常会越大
  • 信息增益率对可取值数目较少的属性有所偏好,因此C4.5算法并不是直接选择信息增益率最大的候选划分属性,而是使用了一个 启发式先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的

3.基尼指数

  • CART决策树使用“基尼指数”(Gini index)来选择划分属性,数据集D的纯度可用基尼值来度量
    G i n i ( D ) = ∑ k = 1 ∣ y ∣ ∑ k ′ ≠ k p k p k ′ = 1 − ∑ k = 1 ∣ y ∣ p k 2 \begin{aligned} Gini(D)&=\sum_{k=1}^{|y|}\sum_{k'\ne k}p_kp_{k'}\\ &=1-\sum_{k=1}^{|y|}p_k^2 \end{aligned} Gini(D)=k=1yk=kpkpk=1k=1ypk2
    Gini(D)越小,则数据集D的纯度越高

  • 属性a的基尼指数定义为
    G i n i _ i n d e x ( D , a ) = ∑ v = 1 V ∣ D v ∣ ∣ D ∣ G i n i ( D v ) Gini\_index(D,a)=\sum_{v=1}^V\frac{|D^v|}{|D|}Gini(D^v) Gini_index(D,a)=v=1VDDvGini(Dv)
    在候选属性集合A中,选择那个划分后基尼指数最小的属性作为最优划分属性 a ∗ = arg min ⁡ a ∈ A G i n i _ i n d e x ( D , a ) a_*=\underset {a\in A}{\operatorname {arg\, min}}Gini\_index(D,a) a=aAargminGini_index(D,a)

3.剪枝处理

剪枝(pruning) 是决策树学习算法对付“过拟合”的主要手段

  • “预剪枝”(prepruning) 是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分当前结点标记为叶结点;
  • “后剪枝”(post-pruning) 是先从训练集生成一颗完整的决策树,然后从底向上地对非叶结点进行考察,若将结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点
  • “决策树状”(decision stump) 一颗仅有一层划分的决策树
  • 预剪枝基于“贪心” 本质禁止某些分支展开,给预剪枝决策树带来欠拟合风险。
  • 后剪枝欠拟合风险小,泛化性能好,但开销大
    机器学习入门-西瓜书总结笔记第四章_第2张图片机器学习入门-西瓜书总结笔记第四章_第3张图片机器学习入门-西瓜书总结笔记第四章_第4张图片

四、连续值与缺失值

1.连续值处理

  • 连续属性离散化技术,最简单的策略是采用二分法(bi-partition)对连续属性进行处理,这正式C4.5决策树算法采用的机制。
  • 样本取值,从小到大排序, { a 1 , a 2 , ⋯   , a n } \{a^1,a^2, \cdots,a^n\} {a1,a2,,an},基于划分点t可将D分为两个子集 D t − D_t^- Dt D t + D_t^+ Dt+,我们可考察包含n-1个元素的候选划分集合
    T a = { a i + a i + 1 2 ∣ 1 ≤ i ≤ n − 1 } , T_a = \{\frac{a^i+a^{i+1}}{2}|1\le i \le n-1\}, Ta={2ai+ai+11in1},
    然后就可以像离散属性值一样来考察这些划分点,选取最优的划分点进行样本集合的划分
    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 λ ) \begin{aligned} Gain(D,a) &= \underset {t\in T_a}{\operatorname {max}}\quad Gain(D,a,t)\\ & = \underset {t\in T_a}{\operatorname {max}}\quad Ent(D) - \sum_{\lambda\in \{-,+\}}\frac{|D_t^\lambda|}{|D|}Ent(D_t^\lambda) \end{aligned} Gain(D,a)=tTamaxGain(D,a,t)=tTamaxEnt(D)λ{,+}DDtλEnt(Dtλ)
    其中 G a i n ( D , a , t ) Gain(D,a,t) Gain(D,a,t)是样本集D基于划分点 t t t二分后的信息增益,选择使 G a i n ( D , a , t ) Gain(D,a,t) Gain(D,a,t)最大化的划分点
  • 当前结点划分属性为连续属性,该属性还可作为后代结点的划分属性

2.缺失值处理

给定训练集D和属性a,令 D ~ \tilde{D} D~表示D中属性a上没有缺失值的样本子集,属性a有V个取值,属于第k类标记, D ~ = U k = 1 ∣ y ∣ D ~ k \tilde D = U_{k=1}^{|y|} \tilde D_k D~=Uk=1yD~k D ~ = U v = 1 ∣ V ∣ D ~ v \tilde D = U_{v=1}^{|V|} \tilde D_v D~=Uv=1VD~v,假定我们为每个样本 x \pmb x xxx赋予一个权重 w x w_x wx,并定义
ρ = ∑ x ∈ D ~ w x ∑ x ∈ D w x p ~ k = ∑ x ∈ D ~ k w x ∑ x ∈ D ~ w x ( 1 ≤ k ≤ ∣ y ∣ ) , r ~ v = ∑ x ∈ D ~ v w x ∑ x ∈ D ~ w x ( 1 ≤ v ≤ ∣ V ∣ ) , \rho=\frac{\sum_{x\in \tilde D}w_x}{\sum_{x\in D}w_x}\\ \tilde p_k=\frac{\sum_{x\in \tilde D_k}w_x}{\sum_{x\in \tilde D}w_x} \quad(1\le k\le|y|),\\ \tilde r_v = \frac{\sum_{x \in \tilde D^v}w_x}{\sum_{x\in \tilde D}w_x} \quad(1\le v\le|V|), ρ=xDwxxD~wxp~k=xD~wxxD~kwx(1ky),r~v=xD~wxxD~vwx(1vV),
对属性a, ρ \rho ρ表示无缺失值样本所占的比例, p ~ k \tilde p_k p~k表示无缺失值样本第k类所占比例, r ~ v \tilde r_v r~v则表示无缺失值样本中在属性a上取值 a v a^v av的样本所占比例。 ∑ k = 1 ∣ y ∣ p ~ k = 1 \sum_{k=1}^{|y|} \tilde p_k=1 k=1yp~k=1 ∑ v = 1 V r ~ v = 1 \sum_{v=1}^V \tilde r_v=1 v=1Vr~v=1
信息增益的计算式推广为
G a i n ( D , a ) = ρ × G a i n ( D ~ , a ) = ρ × ( E n t ( D ~ ) − ∑ v = 1 V r ~ v E n t ( D ~ v ) ) \begin{aligned} Gain(D,a)&=\rho \times Gain(\tilde D,a)\\ &=\rho \times(Ent(\tilde D)-\sum_{v=1}^{V}\tilde r_vEnt(\tilde D^v)) \end{aligned} Gain(D,a)=ρ×Gain(D~,a)=ρ×(Ent(D~)v=1Vr~vEnt(D~v))
其中
E n t ( D ~ ) = − ∑ k = 1 ∣ y ∣ p ~ k l o g 2 p ~ k Ent(\tilde D)=-\sum_{k=1}^{|y|}\tilde p_k log_2 \tilde p_k Ent(D~)=k=1yp~klog2p~k

  • 直观上来看,就是让同一个样本以不同的概率划入到不同的子节点中去。C4.5使用了上述算法

五、多变量决策树

  • 决策树所形成的边界有一个明显特点:轴平行(axis-parallel) ,即它的分类边界由若干个与坐标轴平行的分段组成
    机器学习入门-西瓜书总结笔记第四章_第5张图片

  • “多变量决策树”(multivariate decision tree) 每个非叶结点不再是仅对某个属性,例如,每个非叶结点是一个形如 ∑ i = 1 d w i a i = t \sum_{i=1}^{d}w_ia_i=t i=1dwiai=t的线性分类器,其中 w i w_i wi是属性 a i a_i ai的权重,与传统 “单变量决策树”(univariate decision tree)
    机器学习入门-西瓜书总结笔记第四章_第6张图片机器学习入门-西瓜书总结笔记第四章_第7张图片

你可能感兴趣的:(学习笔记,机器学习)