机器学习10-决策树1
学习样本的特征,将样本划分到不同的类别(分类问题)或预测连续的数值(回归问题)。
- 选择特征,划分数据集,划分完成形成模型(树结构),一个叶节点是一个类别
- 新的需要判断的数据进入模型,根据某种距离,最近的那个类就是模型输出
内容有点多,要分开
文章目录
- 机器学习10-决策树1
- 概念
- 流程
- 一、特征选择
- 信息增益(Information Gain)
- 例子
- 信息增益比(Gain Ratio)
- 为什么信息增益偏向于选择取值较多的特征
- 定义
- 基尼指数(Gini Index)
概念
节点(Node):决策树中的每一个点,包括决策节点和叶节点。
决策节点(Decision Node):表示一个属性的判断节点。
叶节点(Leaf Node):表示最终决策结果的节点。
分支(Branch):连接节点的线,代表决策的路径。
路径(Path):从根节点到叶节点的一条完整路径。
通过一系列的决策规则将数据集划分成不同的子集,形成一个树状结构。每个内部节点表示一个特征(或属性),每个分支表示该特征的一个取值,每个叶子节点表示一个类别或预测值。
流程
决策树算法的学习过程通常包括三个主要步骤:特征选择、决策树的生成和决策树的剪枝。
- 特征选择:在构建决策树时,首先需要从数据集中选择最具分类能力的特征。这通常通过计算特征的信息增益、信息增益比或基尼指数等指标来完成。
- 决策树的生成:根据选择的特征,将数据集划分为若干个子集,并为每个子集生成相应的子树。这个过程是递归进行的,直到满足某个停止条件。
- 常见的停止条件包括:
所有样本都属于同一个类别。
达到预设的树的最大深度。
节点中的样本数少于最小样本数限制。
特征无法再进一步划分。 - 决策树的剪枝:由于生成的决策树可能过于复杂,存在过拟合的风险,因此需要通过剪枝来简化树的结构,提高模型的泛化能力。剪枝可以分为预先剪枝和后剪枝两种方法。
一、特征选择
通常基于某种度量,这些度量反映了特征对于数据集分类能力的贡献。
基尼指数 计算更简单,速度较快,因此在CART决策树中常用。
熵 则是更加严格的度量,计算信息增益时使用,更多应用于 ID3 和 C4.5 决策树算法。
信息增益(Information Gain)
信息增益衡量的是一个特征对减少数据集的不确定性(或熵)程度的能力。选择信息增益最大的特征作为当前节点的分裂特征。
信息增益 = 父节点的熵 - 子节点的加权平均熵
香农说,要有熵,于是便有了熵
-
对数据集 𝐷,k个类别
-
对于特征 A,它将数据集划分为多个子集,每个子集的熵加权平均就是条件熵:
-
信息增益是数据集的熵减去特征的条件熵:
某个特征划分了数据集后,熵(不确定性)减少的量
选择信息增益最大的特征进行划分。
例子
信息增益比(Gain Ratio)
信息增益的改进版本。信息增益偏向于选择取值较多的特征,而信息增益比考虑了特征自身的熵,通过引入"固有值(Intrinsic Value)"对偏向进行修正。
为什么信息增益偏向于选择取值较多的特征
- 特征取值多意味着更细的划分:当一个特征的取值较多时,它会将数据集划分得更加细致,甚至可以将每一个样本单独划分到不同的子集。
例如,假设一个特征有很多独特的取值(如“ID号”),每个样本可能对应一个唯一的取值,这样会使条件熵 H(D∣A) 极低,甚至接近0,因为每个样本已经被完全区分开来。
- 信息增益只考虑不确定性的减少:当特征的取值数量较多时,数据集在该特征上的条件熵会显著降低,从而导致信息增益增大。信息增益没有对特征的取值数量进行惩罚,因此它会倾向于选择那些取值种类多的特征,因为这些特征可以最大限度地减少不确定性。
假设你有两个特征:
- 特征A:取值种类很多,几乎每个样本的取值都不同(如用户ID号)。
特征B:取值种类很少,比如只有两个类别(如“是否为VIP用户”)。- 即使特征A的实际分类能力不强,因其将数据集划分得非常细致,信息增益公式会认为它显著减少了数据的不确定性,从而得到很高的信息增益值。而特征B尽管可能有更实际的区分能力,但因其取值较少,划分的效果不会显著,信息增益值相对较低。
定义
信息增益比 = 信息增益 / 特征自身的熵
特征自身的熵:
其中n是特征A的取值个数,𝐷𝑖表示特征 𝐴 的第 𝑖 个取值对应的样本集合,𝐷 是总样本集合。
- 对取值较多的特征进行了惩罚(分母更大)
基尼指数(Gini Index)
基尼指数反映了从数据集中随机抽取两个样本,其类别不一致的概率
这里会提到的纯度其实就是不确定性的等价概念,越纯,不确定性越小
选择使得分裂后基尼指数最小的特征作为分裂特征
例子
对于给定的数据集D和特征A,根据A划分后,基尼指数定义为:
和前面思想一样,子集的指数加权平均