概述
- 决策树是一种树型结构,其中每个内部结点表示在一个属性上的测试,每个分支代表一 个测试输出,每个叶结点代表一种类别。
- 决策树学习采用的是自顶向下的递归方法,其基本思想是以信息熵为度量构造一棵熵值下降最快的树,到叶子节点处的熵值为零,此时每个叶节点中的实例都属于同一类。
模型 : 特征树决定的空间划分
策略:不确定信息“度量”最小
算法:以不同的指标选择最优特征进行空间划分,直到满足停止条件
ID3 (信息增益 )、C4.5 ( 信息增益比)、CART (二叉树、分类与回归、Gini指数)
流程:
- 特征选择:决策树在每个节点上选择最佳特征进行分割,这个特征能够最好地区分数据。
- 树的增长:通过递归地选择特征并分割数据,直到满足停止条件,如达到最大深度或叶节点中的样本数量小于某个阈值。
- 剪枝:为了防止过拟合,决策树需要剪枝,即去除一些不必要的分支。
算法
(1) ID3
使用信息增益作为选择特征的标准,它倾向于选择具有最高信息增益的特征进行分割。
1.1 熵
日常生活中,当我们要搞清楚某件事情时,这件事情的不确定性越大,我们需要了解的信息就越多。由此可以看出,一条信息的信息量大小和它的不确定性有直接关系。受此启发,人们就拿不确定性这个量来度量信息量的大小。在信息论或概率统计中,用熵度量随机变量的不确定性。熵值越大 ,随机变量的不确定性就越大。
定义随机变量X的概率分布为p(x),从而定义X信息量:
对离散型随机事件X的信息量求期望,得熵的定义:
注:经典熵的定义,底数是2,单位是bit;
若底数是e,单位是nat(奈特)。
1.2 信息增益
联合熵:
条件熵为:
信息增益概念:当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵和条件熵分别称为经验熵和经验条件熵。
信息增益表示:得知特征A的信息而使得类X的信息的 不确定性减少的程度。
信息增益定义:特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即:
选择信息增益最大的特征作为当前的分裂特征(根节点)。
其中,数据集D的经验熵为:
信息增益的缺点:特征的类别越多,其信息增益越大,越容易形成分裂特征,造成决策树宽且浅。
(2)C4.5
使用信息增益比(率)来选择特征,以避免偏向于具有更多值的特征
2.1 信息增益比
用信息增益作为划分训练集特征的标准时,有一个潜在的问题,那就是相比之其会倾向于选择类别取值较多的特征。因此人们提出使用信息增益比(Information Gain Ratio)来对这一问题进行校正。
特征X对训练集的信息增益比定义为特征X的信息增益g(Y,X)与特征X的取值的熵 H(X) 的比值,记为,即
(3)CART(Classification and Regression Trees)
既可以用于分类也可以用于回归任务。使用Gini系数求解分类问题;使用平方误差最小求解回归问题。
3.1 基尼系数——分类树:目标变量是离散型
基尼系数(Gini) 可以用来度量任何不均匀分布,且介于 0~1 之间的数 (0指完全相等,1指完全不相等)。分类度量时,总体包含的类别越杂乱,基尼系数就越大 (与熵的概念相似)。基尼指数主要用来度量数据集的不纯度。基尼指数越小,表明样本只属于同一类的概率越高,即样本的纯净度越高。
分类问题中,假设有k个类,样本点属于k的概 率Pk,则概率分布的基尼指数:
对给定的样本集合D,基尼指数:
Gini系数的图像、熵、分类误差 率三者之间的关系如下:
说明:Gini系数越小越好。
3.2 平方误差最小——回归树:目标变量是连续型
对于含有M个样本、每个样本的特征维度为N的训练数据集D,遍历样本的特征变量Fn,n=1,2...M,对每一个特征变量Fn, 扫描所有可能的K个样本切分点Sk, k = 1,2, ..., K,样本切分点Sk每次将数据集D划分为D1和D2两个子集.我们的目标是选出划分点Sk,使得D1和D2各自集合的标准差最小,同时D1和D2的标准差之和也最小,写为数学表达式为:
其中, c1为数据集中所有样本的输出均值,yi是D1数据子集中各样本的实际值,c2为D2数据集中所有样本的输出均值,yj是D2数据子集中各样本的实际值。
CART回归树的过程:
总结
一个属性的信息增益(率)大/Gini指数越小,表明属性对样本的熵减少的能力更强,这个属性使得数 据由不确定性变成确定性的能力越强。
优点:
-
易于理解和解释:决策树的结构类似于流程图,可以直观地展示数据是如何被分割的,以及如何根据特征做出决策。
-
数据要求不高:决策树可以处理数值型和类别型数据,不需要复杂的数据预处理。
-
特征重要性评估:可以识别哪些特征对分类结果影响最大,提供特征重要性的信息。
-
处理缺失值:一些算法可以在构建树的过程中处理缺失值。
-
非线性:决策树可以捕捉数据中的非线性关系。
-
多类问题:决策树可以用于多类分类问题。
-
可视化:可以轻松地将决策树可视化,有助于理解模型的决策过程。
缺点:
-
容易过拟合:决策树容易生长成过于复杂的树,这可能导致模型在训练数据上表现良好,但在未见数据上表现差。
-
对噪声敏感:如果训练数据中包含噪声,决策树可能会学习到错误的规则。
-
对特征规模敏感:如果特征数量很多,尤其是当特征之间存在高度相关性时,决策树的性能可能会受到影响。
-
树的构建依赖于数据集:不同的数据集可能导致生成不同的树结构,这可能导致模型的泛化能力下降。
-
忽略特征间的交互:决策树通常不考虑特征之间的交互作用,这可能限制了模型的表达能力。
-
需要剪枝:为了防止过拟合,通常需要进行剪枝处理,这增加了模型构建的复杂性。(文中没有提及)
-
不稳定:小的变化在训练数据中可能会导致生成完全不同的树。
-
对类别不平衡不敏感:决策树在类别不平衡的数据集中可能表现不佳,因为它倾向于为多数类创建更多的分支。
-
基尼不纯度或信息增益的局限性:这些指标可能不会总是导致最优的分割,特别是在具有不同分布的数据集中。
图片来源 :《机器学习基础:从入门到求职》胡欢武