决策树

决策树(Decision tree)是基于已知各种情况(特征取值)的基础上,通过构建树型决策结构来进行分析的一种方式,是常用的有监督的分类算法。

决策树是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果。

其中第8行伪代码,从A中选择最优划分属性,有以下几种算法。

ID3算法

ID3算法通过选择信息增益最大的特征进行节点分裂。

信息熵
信息熵是度量样本纯度的最常用的指标之一。假定当前样本集合$D$中第$k$类样本所占比例为$p_k (k=1,2,…,|y|)$,则$D$的信息熵定义为
$$
Ent(D) = - \sum_{k=1}^{|y|}p_k log_2p_k
$$

$Ent(D)$的值越小,则$D$的纯度越高

信息增益

由于不同分支节点所包含的样本数不同,给分支节点赋予一个权重$\frac{|D^v|}{|D|}$,即样本数越多的分支节点影响越大,于是可计算出用属性$a$对样本集$D$进行划分所获得的“信息增益”
$$
Gain(D,a) = Ent(D) - \sum_{v=1}^{V} \frac{|D^v|}{|D|} Ent(D^v)
$$

一般而言,信息增益越大,则意味着使用属性$a$来进行划分所获得的纯度提升越大。

在ID3算法中,选择属性即为:$a_* = arg\ max\ Gain(D, a)$

C4.5算法

信息增益有一个问题,它偏向取值较多的特征。原因是,当特征的取值较多时,根据此特征划分更容易得到纯度更高的子集,因此划分之后的熵更低,由于划分前的熵是一定的。因此信息增益更大,因此信息增益比较偏向取值较多的特征。

信息增益率
信息增益率相比信息增益,多了一个衡量本身属性的分散程度的部分作为分母,而著名的决策树算法C4.5就是使用它作为划分属性挑选的原则。

$$
Gain_ratio(D,a) = \frac{Gain(D,a)}{IV(a)}
$$
其中
$$
IV(a) = - \sum_{v=1}^{V}\frac{|D^v|}{|D|}log_2\frac{|D^v|}{|D|}
$$

在C4.5算法中,选择属性即为:$a_* = arg\ max\ Gain_ratio(D,a)$

CART算法

CART是分类与回归树(classification and regression tree),其与C4.5算法一样,由ID3算法演化而来。

CART假设决策树是一个二叉树,它通过递归地二分每个特征,将特征空间划分为有限个单元,并在这些单元上确定预测的概率分布。

CART在分类和回归任务中都可用。对于回归树,采用的是平方误差最小化准则;对于分类树,采用基尼指数最小化准则。

基尼指数:在分类问题中,假设有$K$个类别,样本点属于第k类的概率为$p_k$,则概率分布的基尼指数定义为
$$
Gini(p) = \sum_{k=1}^{K} p_k(1-p_k) = 1 - \sum_{k=1}^{K} p_k^2
$$

直观的来说,$Gini(D)$反映了从数据集$D$中随机抽取两个样本,其类别标记不一致的概率。因此,$Gini(D)$越小,则数据集$D$纯度越高。

属性$a$的基尼指数定义为:
$$
Gini_index(D, a) = \sum_{v=1}^{V} \frac{|D^v|}{|D|}Gini(D^v)
$$
因此我们在选取属性时,选择使得划分后基尼指数小的属性作为最优划分属性,即
$$
a_* = arg\ min \ Gini_index(D,a)
$$

文章作者: Dar1in9
文章链接: http://dar1in9s.github.io/2023/10/06/机器学习/决策树/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Dar1in9's Blog