【笔记】决策树
决策树
- 通过层层的if判断条件,将数据集划分成规模越来越来小的子集,直至无需划分。
- 核心:划分依据、剪枝
一、理论基础
- 熵 H(A)
- 信息增益 I(D, A) = H(D) - H(D|A)
已知特征A后,不确定性减小的程度。 - 信息增益比
用于C4.5算法,解决以下两个问题:- 同等概率下,ID3倾向分类多的特征。
- 缓解ID3分类过细,导致的过拟合问题。
- 基尼系数
用于CART分类树。同信息增益比的目的一样,但去除了对数运算,提高运算效率。 - 和方差
用于CART回归树。
二、核心问题
- 划分数据时,应该如何选择依据?
- 数据集划分到什么状态时,终止划分?
- 如何防止过拟合问题?
三、ID3算法(处理分类问题)
- 首先设置终止阈值𝜖。
- 若当前数据集都为同一种类别,则直接标记为该类别,返回单节点树。
- 若当前数据集无特征,则标记为数据中数量最多的类别。
- 每次对一个结点划分时(结点分叉),遍历剩余的可选特征,选择信息增益比最大的特征作为划分依据。
- 若信息增益比小于𝜖,则停止划分。
- 否则以当前结点作为根节点,进行分叉,并重复步骤1。
ID3算法的缺点
- 只能处理离散的特征
- 划分太精细,导致过拟合问题
四、C4.5算法(处理分类问题)
-
数据集的划分
相较于离散型特征,比如球的颜色:红色、黑色,连续型特征往往每个样本对应不同的值,无法直接计算熵。
C4.5算法采取将连续值离散化的方式。
假设数据集m中,连续特征A有m个,通过相邻两组加和取平均得到m-1个点。依次遍历,取信息增益比最大的点作为该特征A的分类点。比如离散化后,要计算a[i]的信息增益比,则把小于a[i]的看成一类,大于a[i]的看成一类,便可计算。
C4.5对于连续特征是二分叉? -
特征值选择
采用信息增益比
五、CART算法(分类和回归)
- 分类树:输出是离散值
- 回归树:输出是连续值
CART分类树
- 划分依据由信息增益比变为基尼系数。
- 处理连续型特征的思想同C4.5相同。
- 处理离散型特征时:
在ID3和C4.5算法中,假设选择的离散型特征A有三个取值[A1, A2, A3],则结点被分成三叉树。
在CART算法中,每次都是将特征划分为两类,如[A1, (A2, A3)]或[(A1, A2), A3)]或[(A1, A3), A2)],选取使基尼系数最小的分类,每次都是分成二叉树。 - 建树完成后做预测时,若数据走到了树的叶子结点,该结点中有多个类别,则选择概率最大的那个类别。
CART回归树
- 对于连续型特征,不再采取基尼系数作为度量标准,而是采用和方差的方式。
- 建树完成后做预测时,使用走到的叶子结点的均值或中位数作为预测结果。
CART后剪枝
- 基于原始决策树,根据损失函数,遍历所有可能的剪枝情况(𝛼取不同值),每种情况对应一棵剪枝后的树,全都保存下来。
- 首先取𝛼为无穷大。
- 自下而上遍历CART树,对于每个结点计算𝛼𝑚𝑖𝑛,并保存到列表中。
𝛼 = 𝑚𝑖𝑛{𝐶(𝑇)−𝐶(𝑇𝑡)/(|𝑇𝑡|−1),𝛼𝑚𝑖𝑛} 𝛼𝑚𝑖𝑛 = 𝛼
- 每一个𝛼,都自上而下遍历CART树,进行剪枝,并将遍历后的树保存,进行后续交叉验证。
- 对于每一种剪枝后的树,利用检查验证的方式,选出最优的剪枝情况。