周志华机器学习总结第四章

基本流程

目的

产生一棵泛化能力强,处理未见实力能力强的决策树

简介

一棵决策树包括一个根节点,若干内部节点和若干叶节点;叶节点对应决策结果,其他节点对应一个属性测试。根节点包含所有的训练样本,每到一个节点根据该节点的属性将满足该属性的训练样本放入节点中继续判断。

特殊情况

  1. 当前节点包含的样本全属于同一类别,无需划分。
  2. 当前属性集为空,或是所有样本在所有属性上的取值相同,无法划分,该节点定义为叶节点。若此时节点内的存在多个类别的样本数,那么根据数目最多的样本类别定义该节点的类别。
  3. 当前节点包含的样本集合为空,不能继续划分,该节点定义为叶节点,类别定义为父节点的类别。

划分选择

目的

使每个节点包含的样本类别尽可能的单一,是节点的纯度越来越高。

划分标准

信息增益

信息熵(information entropy)

当前样本集合 D D 中第 k k 类样本所占的比例为 p k ( k = 1 , 2 , . . . , Y ) p_k ( k = 1, 2, ... , |\mathcal{Y}|)
Ent ( D ) = k = 1 Y p k log 2 p k \text{Ent}(D) = - \sum_{k=1}^{|\mathcal{Y}|}p_k\log_2p_k
Ent ( D ) \text{Ent}(D) 的值越小,那么 D D 的纯度越高。

信息增益(information gain)

假设当前节点根据离散属性 a ( a { a 1 , a 2 , . . . , a V } ) a ( a \in \{ a^1, a^2, ... , a^V\} ) 进行划分,由此当前节点下产生了 V V 个分支,第 v v 个分支包含了所有 a a 属性为 a v a^v 的样本,记为 D v D^v ,那么定义信息增益
Gain ( D , a ) = Ent ( D ) v = 1 V D v D Ent ( D v ) \text{Gain}(D, a) = \text{Ent}(D) - \sum_{v=1}^{V}\frac{|D^v|}{|D|}\text{Ent}(D^v)
信息增益越大,表明在使用 a a 划分样本之后各分支的信息熵越小,各分支的纯度提升越大。因此对于每个节点我们选择 a = arg max a A Gain ( D , a ) a_* = \text{arg} \max_{a \in A} \text{Gain}(D, a) 属性来进行划分。

应用实例

I D 3 ID3 决策树学习算法

注意

  1. 若多个属性的信息增益相同,那么任选一个属性作为划分标准。
  2. 对于离散属性,在决策树的一条支路上(从根节点到叶节点)不能用同一个属性进行重复判断。

增益率

信息增益对取值数目较多的属性有所偏好,从而造成对训练样本的过拟合,为了减少这种不利影响,引入增益率 (gain ratio)
Gain _ ratio ( D , a ) = Gain ( D , a ) IV ( a ) \text{Gain}\_\text{ratio}(D, a) = \frac{\text{Gain}(D, a)}{\text{IV}(a)}
其中 IV ( a ) = v = 1 V D v D log 2 D v D \text{IV}(a) = -\sum_{v=1}^V \frac{|D^v|}{|D|}\log_2\frac{|D^v|}{|D|}
IV \text{IV} 称为属性 a a 的“固有值”(instrinsic value),属性 a a 的取值数目越多(即 V |V| 越大),则 IV ( a ) \text{IV}(a) 的值越大。

应用实例

C 4.5 C4.5 算法,由于增益率准则对取值数目少的属性有所偏好,因此 C 4.5 C4.5 算法使用了一个启发式:从候选区域中找到信息增益高于平均水平的属性,再从中选择增益率最高的。

基尼系数(Gini index)

Gini ( D ) = k = 1 Y k k p k p k = 1 k = 1 Y p k 2 \text{Gini}(D) = \sum_{k=1}^{|\mathcal{Y}|}\sum_{k' \neq k} p_k p_{k'} = 1- \sum_{k=1}^{|\mathcal{Y}|}p_k^2
Gini ( D ) \text{Gini}(D) 反映了从数据集 D D 中随机抽取两个样本,类别不一样的概率, Gini ( D ) \text{Gini}(D) 越小,说明数据集 D D 的纯度越高。
Gini _ index ( D , a ) = v = 1 V D v D Gini ( D v ) \text{Gini}\_\text{index}(D, a) = \sum_{v= 1}^{V} \frac{|D^v|}{|D|}\text{Gini}(D^v)
因此 a = arg min a A Gini _ index ( D , a ) a_* = \text{arg}\min_{a \in A} \text{Gini}\_\text{index}(D, a)

应用实例

G A R T GART 决策树

剪枝处理

目的

对抗过拟合

判断标准

正确分类样本所占的比例

预剪枝

定义

在决策树生成过程中,对每个节点在划分前进行估计,如果当前节点的划分不能带来决策树的泛化性能提升,则停止将当前节点标记为叶节点

优缺点

  1. 优点:降低了过拟合的风险,显著减少了决策树的训练时间开销和测试时间开销。
  2. 缺点:某些节点当前划分可能带来泛化性能的降低,但后续划分可能导致泛化性能显著提高,因此预剪枝可能带来欠拟合的风险。

后剪枝

定义

从训练集生成一棵完整的决策树,然后自底而上的对非叶节点进行考察,若将该节点对应的子树替换为叶节点能带来决策树泛化性能的提升,则将该子树替换为叶节点。

优缺点

  1. 优点:欠拟合风险很小,泛化性能优于预剪枝决策树。
  2. 缺点:训练时间开销比未剪枝决策树和预剪枝决策树都要大得多。

连续与缺失值

连续值的处理

给定样本集 D D 和连续属性 a a ,假定 a a D D 上出现了 n n 个不同的取值,将这些值按照大小排序,记为 { a 1 , a 2 ,   , a n } \{a_1, a_2, \cdots , a_n\} ,对于相邻两个属性值 a i a_i a i + 1 a_{i+1} 而言,若 t t 满足 t [ a i , a i + 1 ) t \in [ a_i, a_{i+1}) ,那么按照 t t 划分产生的分类结果是相同的。对于含有 n n 个连续值的属性 a a ,考察含有 N 1 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\}
于是将连续属性转换为离散属性,按照离散属性处理即可构建决策树。
与离散属性不同的是,若当前节点划分属性为连续属性,该属性可作为其后代节点的划分属性,也就是说,在一条从根节点到叶节点的通路上,连续属性可以出现多次。

缺失值的处理

给定训练集 D D 和属性 a a D ~ \tilde{D} 表示 D D 在属性 a a 上没有缺失值的样本子集。假定 a a V V 个可取值 { a 1 , a 2 ,   , a V } \{ a^1, a^2, \cdots , a^V\} ,令 D ~ v \tilde{D}^v 表示 D ~ \tilde{D} 中在属性 a a 上取值为 a v a^v 的样本子集, D ~ k \tilde{D}_k 表示 D ~ \tilde{D} 中属于第 k k 类的( k = 1 , 2 ,   , Y k = 1, 2, \cdots, |\mathcal{Y}| )样本子集, D ~ = k = 1 Y D ~ k \tilde{D} = \bigcup_{k=1}^{|\mathcal{Y}|}\tilde{D}_k D ~ = v = 1 V D ~ v \tilde{D} = \bigcup_{v =1}^{V}\tilde{D}_v 。假定我们给数据集中的每个样本 x \boldsymbol{x} 赋予一个权重 ω x \omega_{\boldsymbol{x}} ,并定义:
ρ = x D ~ ω x x D ω x \rho = \frac{\sum_{\boldsymbol{x} \in \tilde{D}}\omega_{\boldsymbol{x}}}{\sum_{\boldsymbol{x} \in D}\omega_{\boldsymbol{x}}}
表示无缺失样本所占比例;
p ~ k = x D ~ k ω x x D k ω x ( 1 k Y ) \tilde{p}_k = \frac{\sum_{\boldsymbol{x} \in \tilde{D}_k}\omega_{\boldsymbol{x}}}{\sum_{\boldsymbol{x} \in D_k}\omega_{\boldsymbol{x}}}\quad ( 1\le k \le |\mathcal{Y}|)
表示无缺失样本在第 k k 类中所占的比例;
r ~ v = x D ~ v ω x x D v ω x ( 1 v V ) \tilde{r}_v = \frac{\sum_{\boldsymbol{x} \in \tilde{D}^v}\omega_{\boldsymbol{x}}}{\sum_{\boldsymbol{x} \in D^v}\omega_{\boldsymbol{x}}}\quad (1 \le v \le V)
表示无缺失样本中在属性 a a 上取值为 a v a^v 的样本所占比例。
更新信息增益的计算式为
Gain ( D , a ) = ρ × Gain ( D ~ , a ) = ρ × ( Ent ( D ~ ) v = 1 V r ~ v Ent ( D ~ v ) ) \text{Gain}(D, a) = \rho \times \text{Gain}(\tilde{D}, a) = \rho \times \left(\text{Ent}(\tilde{D})-\sum_{v=1}^V\tilde{r}_v\text{Ent}(\tilde{D}^v)\right)
其中
Ent ( D ~ ) = k = 1 Y p ~ k log 2 p ~ k \text{Ent}(\tilde{D}) = -\sum_{k=1}^{|\mathcal{Y}|}\tilde{p}_k\log_2\tilde{p}_k
若样本 x \boldsymbol{x} 在划分属性 a a 上的取值已知,那么将 x \boldsymbol{x} 划入与其取值对应的子节点,且样本权值保持 ω x \omega_{\boldsymbol{x}} 不变;若样本 x \boldsymbol{x} 在划分属性 a a 上的取值位置,那么将 x x 放入所有子节点,且样本权值在与属性值 a v a^v 对应的子节点中调整为 r ~ v ω x \tilde{r}_v \cdot \omega_{\boldsymbol{x}} ,即让一个样本以不同权重放入不同的节点中。通常每一个样本权重 ω x \omega_{\boldsymbol{x}} 赋为 1。

多变量决策树

实现方法

在多变量决策树的学习过程中,不是为每个非叶节点寻找一个最优划分属性,而是试图建立一个适合的线性分类器(由多个属性线性组合而成)

应用实例

O C 1 OC1 决策树

增量学习

在接收到新样本后对已学习的模型进行调整,而不用完全重新学习。主要机制是通过调整分支路径上的划分属性次序来对树进行部分重构。代表性算法有 I D 4 ID4 I D 5 R ID5R I T I ITI 等。增量学习可有效降低每次接收到新样本后的训练时间开销,但多步增量学习后的模型会与基于全部数据训练而得的模型有较大差别

猜你喜欢

转载自blog.csdn.net/qq_33669204/article/details/83216520