决策树主要由根节点、内部节点以及叶子结点组成,除了叶子节点对应分类结果之外,根节点和内部节点都分别对应一个属性测试,每个节点中都可以包含若干样本集合,这些样本会根据所在节点的测试结果被划分到子节点中,且决策树的最终目的就是学得一个泛化能力很强的
包含全部的训练样本,而且从根节点出发到每个叶子结点这一路径代表了一个完整的预测流程
内部节点会包含全部样本的子集,且内部节点可以利用单个属性来作为属性测试的依据,也可以在内部节点中训练出分类器来提高泛化能力
叶子节点所包含的就是最后的预测结果,比如二分类任务,叶子的值就为0/1,且叶子节点是可以包含样本集或者 不包含也可以
NOTE: 当遇到第二种情况时,直接将此节点变成叶子结点,在类别的确定上,根据此节点中样本类别比例占比最多的来划分,比如样本中好瓜的数量比坏瓜多,就将其设为好瓜结点;
在第三种情况也是将其设置为叶子结点,但是在确定类别时要根据其父节点来确定,具体方法同第二种情况
最优划分属性是决策树算法执行成功的关键
1. 信息熵
主要用来度量样本集合中的纯度大小。信息熵越大,说明数据集D的纯度越低。假设数据集D中第k类样本所占的比例为pk,则可得到下面的信息熵计算公式,其中|y|代指样本的种类个数,Ent(D)代表数据集D的信息熵
Note:信息熵的最大值为log2|y|,最小值为0
2. 信息增益
信息增益主要是用来衡量一个属性是否可以被作为划分属性来进行决策树的下一步划分,是一个非常重要的衡量指标。一般来说,求得的信息增益值越大,说明此属性越适合作为划分属性。计算方式如下,其中a表示划分属性,Dv表示在样本集D中在属性a上取值取值为av的样本的集合,v和属性a的取值个数相等:
具体计算案例去看西瓜书p76
3. 增益率
增益率出现的原因是信息增益在公式计算结果方面对属性取值较多的属性是有偏向的,所以出现了增益率这个概念用来衡量属性的划分效果瑞和,公式的符号表示和计算信息增益是相同的:
Note:
4. 基尼指数
这一概念首先被用在了CART决策树叶算法上[Breiman et al., 1984],此算法中数据集的纯度不用信息熵来表示,而是使用基尼值,如下式:
从公式中能够看出,基尼值所计算的是在一次抽样中,两个不同样本同时出现的概率,所以基尼指数越小,不同样本同时出现的概率就越小,也就代表数据集的纯度越高,所以进一步引出了关于属性a的基尼指数计算公式:
Note: 在选择最优划分属性时,选择基尼指数最小的作为划分属性
参照西瓜书的案例,写的很详细
由于机器学习算法有过拟合的可能性,所以决策树的过拟合也是无法避免的,如果决策树的数据集在训练过程中被划分过于细致,就会导致决策树的分支增多,会让决策树从训练样本中学到一些特别的属性,最终会导致过拟合使得泛化能力下降,而剪枝则是缓解决策树算法中过拟合的有效方法
在决策树进行划分时,对每个结点在划分之前先进性一下子评估,判断此次结点的划分能否给决策树的泛化能力带来提升
详细过程见西瓜书p81
先使用训练集去生成一个决策树,然后从底层的非叶子节点开始来进行评估,计算将该非叶节点换成叶子节点之后能否为决策树带来泛化提升
西瓜书p82以及南瓜书对应章节
主要思想
将连续属性进行离散化处理
方法描述
有数据集D和连续属性a,比如西瓜的密度和甜度这种连续属性,a在数据D上有若干取值,记为{α1,α2, . . , an }.基于划分点t可以把D分为包含正负样本的两个子集,即t为阈值。对于划分点t,我们可以取这样一个集合
即每个t都是相邻两个属性取值的平均值,这样就可以将t等同为离散情况下的属性值来进行划分。基于此将信息增益计算公式改为下面公式,取使得信息增益最大的t作为划分点。
计算过程见西瓜书p85和南瓜书对应章节
两个主要问题
其中,对属性 α, ρ 表辰无缺失值样本所占的比例 , Pk 表示无缺失值样本中,第 k 类所占的比例 rv 则表示无缺失值样本中在属性 α 上取值av的样本所占的比例.
见西瓜书p88和南瓜书对应章节
样本的属性可以看做空间中的一个坐标轴,样本则对应映射成为N维空间中的一个数值点,所以对于整个数据集的分类任务等价于找到一个合适的分类边界。而决策树的分类边界由于自身的判定特点,每一条分类边界都和坐标轴平行,如下图
上图所得出的分类边界是基于如下这颗决策树的
所以能够看到决策树的分类边界可以和属性有着很好的对应,但是当判定过程复杂时,使用这种表达方式就造成开销巨大
描述
在多变量决策树中,非叶节点的内部可以不仅是属性,还可以是一个训练器,比如一个神经网络,或者一个感知机,又或者一个线性分类器,这些模型可以通过在这些非叶节点所包含的数据集训练出来,所以在多变量决策树中,学习任务就变成了对分类器的训练
例子
下图是一个简单的线性分类器构成的决策树
这是它的分类边界
能够看出来,多变量决策树可以有效地改善单变量决策树分类边界和坐标轴平行的情况