西瓜书-Task03-决策树

1. 基本概念与流程

决策树是一种常见的机器学习方法。一般的,一棵决策树包含一个根节点、若干个内部节点和若干个叶节点。叶节点对应于决策结果,其他每个节点则对应于一个属性测试。其基本决策算法如下图所示:西瓜书-Task03-决策树_第1张图片

决策树的生成是一个递归过程,以下三种情形会导致递归返回:
(1)当前结点包含的样本全属于同一属性,无需划分;

(2)当前属性集为空,或是所有样本在所有属性上取值相同,无法划分;

(3)当前结点包含的样本集合为空,不能划分。

2. 划分选择

目标是希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”越来越高

2.1 信息增益

信息熵(information entropy)是度量样本集合纯度最常用的一种指标

西瓜书-Task03-决策树_第2张图片

 2.2 增益率

C4.5决策树算法不直接使用信息增益,而是使用“增益率”来选择最优划分属性。增益率定义为:

西瓜书-Task03-决策树_第3张图片

增益率准则对可取值数目较少的属性有所偏好。因此,C4.5算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找到信息增益高于平均水平的属性,再从中选择增益率最高的。

2.3 基尼指数

CART决策树使用“基尼指数”来选择划分属性。数据集D的纯度可用基尼值来度量:

西瓜书-Task03-决策树_第4张图片

直观来说,Gini(D)反映了 从数据集D中随机抽取两个样本,其类别标记不一致的概率。因此,Gini(D)越小,则数据集D的纯度越高。

3. 剪枝处理

剪枝是决策树学习算法对付“过拟合”的主要手段,决策树剪枝的基本策略有“预剪枝”和“后剪枝”

(1)预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能的提升,则停止划分并将当前结点标记为叶结点。

(2)后剪枝是线重合训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能够带来决策树泛化性能的提升,则将该子树替换为叶结点。

4. 连续和缺失值

针对连续值,可进行连续属性离散化。最简单的策略是采用二分法对连续属性进行处理

针对缺失值,需要解决两个问题:

(1)如何在属性值缺失的情况下进行划分属性选择?

(2)给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?

针对(1),引入公式:

西瓜书-Task03-决策树_第5张图片

针对(2),可以让同一样本以不同的概率划入到不同的子结点中去。

你可能感兴趣的:(决策树)