一、什么是决策树
决策树是一种常见的机器学习算法,用于解决分类和回归问题。它通过构建一个树状结构,每个非叶子节点表示一个特征,每个叶子节点表示一个类别或一个预测值。
决策树的构建过程是递归的,从根节点开始,选择一个最佳特征将数据集分割成子集,然后对每个子集递归地构建子树。构建子树的过程可以通过一些指标,如信息增益、基尼系数等来选择最佳特征。
决策树算法有一些优点,包括易于理解和解释、能够处理数值型和类别型数据、能够处理缺失值等。然而,决策树也存在一些缺点,如容易过拟合、对输入数据的小变化敏感等。
二、基本流程
1.数据准备:收集、整理和预处理数据集,将数据分为训练集和测试集。
2.特征选择:根据数据集的特征选择一个最佳特征作为根节点。
3.构建决策树:根据选择的特征,将数据集分割成子集,并递归地构建子树。
4.划分子集:对每个子集重复步骤2和3,直到满足某个终止条件,例如子集中的所有实例属于同一类别或者达到树的最大深度。
5.树的修剪:通过剪枝操作,去除决策树中不必要的分支,以避免过拟合。
6.测试和评估:使用测试集对构建的决策树进行测试,并计算预测准确性。
7.预测:使用构建好的决策树对新样本进行分类或回归预测。
下图为决策树模型示意图。圆点指内部节点,方框指叶节点。
三、划分选择
决策树的划分选择是指在构建决策树的过程中,选择哪个特征作为节点来划分数据集。划分选择的目标是使得每个子集的纯度最大或者不确定性最小,从而提高决策树的准确性。
常见的划分选择指标有:
1.信息增益(Information Gain):
根据信息论的概念,计算划分前后数据集的熵的差值,选择使得信息增益最大的特征作为划分特征。
“信息熵”是度量样本集合纯度最常用的一种指标,假定当前样本集合D中第k类样本所占的比例为 pk (K=1, 2, ..., |y|),则D的信息熵定义为
Ent(D)的值越小,则D的纯度越高 。
计算信息熵时约定:若p = 0,则plog2p=0 。
Ent(D)的最小值为0,最大值为log2|y|。
2.增益率(Gain Ratio):
为了避免信息增益对取值数目较多的特征有偏好,引入了增益率作为划分选择指标,即信息增益与划分前数据集的熵的比值。
可定义增益率:
其中:
称为属性a的“固有值”,属性a的可能取值数目越多(即V越大),则IV(a)的值通常就越大。
3.基尼指数(Gini Index):
衡量数据集的不确定性,计算划分前后数据集的基尼指数的差值,选择使得基尼指数最小的特征作为划分特征。
分类问题中,假设D有K个类,样本点属于第k类的概率为p_k,则概率分布的基尼值定义为:
Gini(D)越小,数据集D的纯度越高。
给定数据集D,属性a的基尼指数定义为:
4.方差(Variance):
用于回归问题,选择划分后使得子集的方差最小的特征作为划分特征。
四、剪枝处理
决策树剪枝是为了减少决策树的复杂度和提高泛化能力而进行的一种处理方法。决策树的剪枝可以分为预剪枝和后剪枝两种方式。
1.预剪枝:
预剪枝是在构建决策树的过程中,在每个节点划分之前,通过一些条件来判断是否进行划分。
常用的预剪枝条件有设定树的最大深度、叶子节点的最小样本数、信息增益或基尼指数的阈值等。如果在满足预剪枝条件时,当前节点不再进行划分,而是直接将节点标记为叶子节点。
预剪枝可以有效防止决策树的过拟合问题,但可能会导致欠拟合。
2.后剪枝:
后剪枝是在决策树构建完成后,通过剪掉一些子树来提高决策树的泛化能力。
常用的后剪枝方法有代价复杂性剪枝和错误率剪枝。代价复杂性剪枝是通过引入一个代价函数,计算剪枝前后决策树的代价,并选择代价最小的剪枝方式。错误率剪枝是通过比较剪枝前后决策树在验证集上的错误率,选择错误率最小的剪枝方式。
后剪枝欠拟合风险小,泛化性能往往优于预剪枝决策树,但训练时间开销大。
五、连续值处理
决策树在处理连续值时,通常有两种方法:离散化和二分法。
1.离散化:
将连续值划分为多个离散的区间,将连续值转化为离散的取值。常见的离散化方法有等宽离散化和等频离散化。等宽离散化将连续值划分为相等宽度的区间,而等频离散化则将连续值划分为每个区间包含相同数量的样本。离散化后,连续值就可以像离散特征一样进行处理。
2.二分法:
通过比较连续特征的取值与某个阈值的大小关系,将连续值划分为两个子集。在决策树的构建过程中,通过选择最佳的划分点来将连续值划分为左右两个子节点。常见的划分指标有信息增益、增益率、基尼指数等,选择最佳划分点的方法与离散特征的划分类似。
(1)将连续属性 a 在样本集 D 上出现 n 个不同的取值从小到大排列,记为 a1, a2, ..., an 。基于划分点t,可将D分为子集Dt+和Dt-,其中Dt-包含那些在属性a上取值不大于t的样本,Dt+包含那些在属性 a上取值大于t的样本。考虑包含n-1个元素的候选划分点集合
即把区间 [ai, ai-1) 的中位点 (ai+ai-1)/2作为候选划分点。
(2)采用离散属性值方法,计算这些划分点的增益,选取最优的划分点进行样本集合的划分:
其中Gain(D, a, t)是样本集D基于划分点 t 二分后的信息增益,于是, 就可选择使Gain(D, a, t)最大化的划分点。
六、多变量决策树
多变量决策树是一种决策树的扩展形式,用于处理多个特征之间的关系。传统的决策树使用单一特征进行划分,而多变量决策树可以同时考虑多个特征的取值来进行划分。
多变量决策树在处理具有复杂关系的数据时可以更好地表达特征之间的相互作用,提高模型的表达能力。然而,多变量决策树的构建和计算复杂度通常比传统决策树要高,需要更多的计算资源和时间。
单变量决策树分类边界:轴平行。
多变量决策树: