机器学习笔记(分类决策树)

决策树简介

决策树作为一种基本的分类与回归方法,它由结点和有向边组成。结点有两种类型:

  • 内部节点: 表示一个特征或属性;
  • 叶子结点: 表示一个类别或者某个值。

决策过程

决策树是一种基于规则的方法,在树的每个决策节点处,根据判断结果进入一个分支,反复执行这项操作直至到达叶子结点,得到预测结果。而规则是通过训练得到的,而不是人工制定的。

划分属性选择

决策树学习的关键是如何选择最优划分属性。一般地,我们要求随着划分的进行,节点的纯度越来越高,即节点所包含的样本尽可能属于同一样本。

为此,下面我们引入度量样本集不纯度的指标:

1. 信息增益

假设当前样本集中第 k k k 类样本所占比例为 p k   ( k = 1 , 2 , … , K ) , p_{k} \, (k = 1, 2, \ldots, K), pk(k=1,2,,K), D D D 的信息熵定义为
Ent ( D ) = − ∑ i = 1 K p k log ⁡ 2 p k . \text{Ent}(D) = -\sum_{i = 1}^{K} p_{k} \log_{2} p_{k}. Ent(D)=i=1Kpklog2pk.
信息熵的值越小,则 D D D 的纯度越高。

假定离散属性 a a a V V V 个可能的取值 { a 1 , … , a ν } \{ a^{1}, \ldots, a^{\nu}\} {a1,,aν},若使用 a a a 来对样本集进行划分, 则会产生 V V V 个分支节点, 其中第 ν \nu ν 个分支节点包含了 D D D 中所有在属性 a a a 上 取值为 a ν a^{\nu} aν 的样本, 记为 D ν D^{\nu} Dν.

接下来,定义用属性 a a a 对样本集划分所获得的信息增益
Gain ( D , a ) = End ( D ) − ∑ ν = 1 V ∣ D ν ∣ ∣ D ∣ Ent ( D ν ) . \text{Gain}(D, a) = \text{End}(D) - \sum_{\nu = 1}^{V} \frac{\left| D^{\nu} \right|}{\left| D \right|} \text{Ent}(D^{\nu}). Gain(D,a)=End(D)ν=1VDDνEnt(Dν).
一般来说,信息增益越大,意味着用属性 a a a 来进行划分所获得的纯度提升越大。因此,我们可以用信息增益来进行决策树的划分属性选择,即
a ∗ = arg ⁡ max ⁡ a ∈ A Gain ( D , a ) . a^{*} = \mathop{\arg \max}\limits_{a \in A} \text{Gain}(D, a). a=aAargmaxGain(D,a).

2. 信息增益比

信息增益比(增益率)定义为
Gain_ratio ( D , a ) = Gain ( D , a ) IV ( a ) , \text{Gain\_ratio}(D, a) = \frac{\text{Gain}(D, a)}{\text{IV}(a)}, Gain_ratio(D,a)=IV(a)Gain(D,a),
其中
IV ( a ) = − ∑ ν = 1 V ∣ D ν ∣ ∣ D ∣ log ⁡ 2 ∣ D ν ∣ ∣ D ∣ \text{IV}(a) = -\sum_{\nu = 1}^{V} \frac{\vert D^{\nu} \vert}{ \vert D \vert} \log_{2} \frac{\vert D^{\nu} \vert}{ \vert D \vert} IV(a)=ν=1VDDνlog2DDν
称为属性 a a a 的固有值。

3. 基尼指数

数据集 D D D 的不纯度可以用基尼值来度量
Gini ( D ) = ∑ k = 1 K ∑ k ′ ≠ k p k p k ′ = 1 − ∑ k = 1 K p k 2 . \begin{aligned} \text{Gini}(D) &= \sum_{k=1}^{K} \sum_{k' \ne k} p_{k}p_{k'} \\ &= 1 - \sum_{k=1}^{K}p_{k}^{2}. \end{aligned} Gini(D)=k=1Kk=kpkpk=1k=1Kpk2.
基尼值反映了从数据集中随机抽取两个样本,类别不一致的概率。

属性 a a a 的 Gini index 定义为
Gini_index ( D , a ) = ∑ ν = 1 V ∣ D ν ∣ ∣ D ∣ Gini ( D ν ) . \text{Gini\_index}(D, a) = \sum_{\nu = 1}^{V} \frac{\vert D^{\nu} \vert}{ \vert D \vert} \text{Gini}(D^{\nu}). Gini_index(D,a)=ν=1VDDνGini(Dν).

因此,最优划分属性为
a ∗ = arg ⁡ min ⁡ a ∈ A Gini_index ( D , a ) . a^{*} = \mathop{\arg \min}\limits_{a \in A} \text{Gini\_index}(D, a). a=aAargminGini_index(D,a).

剪枝处理

当决策树的结构过于复杂时,有可能会带来过拟合的问题。此时,要对决策树进行剪枝,剪掉某些节点。
决策树的剪枝算法分为

  • 预剪枝:在树的训练过程中通过停止分裂来对树的规模进行限制,即边训练边剪枝。
  • 后剪枝:先构造一颗完整的树,而后通过某种规则去掉部分节点。

后剪枝的典型实现:

  • 降低错误剪枝( Reduced-Error Pruning, REP )
  • 悲观错误剪枝( Pesimistic-Error Pruning, PEP )
  • 代价-复杂度剪枝( Cost-Complexity Pruning, CCP)

三种典型的决策树学习算法的比较

算法支持类型划分属性的选择连续值处理缺失值处理剪枝
ID3分类信息增益不支持不支持不支持
C4.5分类信息增益比支持支持支持
CART分类与回归基尼指数/均方差支持支持支持
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值