1 - 背景
决策树:是基于树结构的一种机器学习方法。其训练方法决定了它是一种有监督学习方法,且和KNN一样是一种非参数化模型。且当类数较多时,该方法具有一定的优势[1]。最流行的决策树是将空间拆分成超矩形,超矩形的边与轴平行。常用的算法有:CHAID、 CART、ID3、C4.5、 Quest 和C5.0(后续慢慢更新)。
ps:参数化模型,有着固定数量的参数,通常在预测阶段速度很快,而缺点就是对数据分布有着先验假设;非参数化模型,其参数会随着训练集的增大而增加,所以相对更加灵活,可是对于大数据集来说,其计算效率相对低下。
树结构主要都是由根节点,内部节点,叶节点组成。根节点:作为树的入口,也作为第一个判别特征点;内部节点:在当得到其父节点的时候,父节点需要接着划分,且自身还需要进一步划分;叶节点,基于父节点划分基础上,分到当前结点的样本无需进一步划分,且叶节点所表示的标签为当前叶节点包含的样本中标签最多的那个标签。
通常会有四种情况:
1)这是一棵空树;
2)这是一棵只有根节点的树;
3)这是一棵只有根节点,叶子节点的树;
4)这是一棵具有根节点、内部节点、叶子节点的完整树。
情况1):此时对应的是训练数据集为空,或者未开始训练;
情况2):此时训练集都被归为同一个类别,比如训练集本身就是只有一种类别的时候;
情况3):只经过了一次特征判别就完成树的训练,或者在训练后,经过“后剪枝”操作后得到的决策树;
情况4):经过完整的训练,且“后剪枝”没有完全剪完,成为情况3,大部分都是属于情况4.
其学习过程分成三个部分:判别特征的选取,树的生成,减枝。
判别特征的选取:即决策树的根节点和内部节点所表示的含义。这里通常有三种选取方式:ID3的信息增益、C4.5的启发式增益率、CART的基尼系数。
树的生成:即决策树的训练阶段,此时如果引入了“预剪枝”,那么就是边训练边剪枝;
剪枝:分“预剪枝”和“后剪枝”。”预剪枝”就是在树训练阶段,在判断特征选取的时候,预先计算当该判断节点生成前与生成后,整棵树的泛化能力是否有提升,如果有,该判断节点会生成。如果没有,当前节点就是叶子节点;“后剪枝”就是在树训练完成之后,对整棵树自底向上的进行剪枝,判别标准也是剪枝前后,整棵树的泛化能力是否有提升。
2 - 判别特征的选取规则
决策树发展中三大算法:ID3(1986)、C4.5(1993)、CART(1984)。首先他们在判别特征的选取规则上就有不同,不过也有相似之处。判别特征的选取,也就是根节点或者当前内部节点的生成,主要就是希望从根节点到当前节点这条路径选取的样本能够尽可能的相似,如希望能够正确把类别为1的样本,且相似的样本能够分到一起,通常也叫做纯度。
为了使得树的生长更有意义,每个分支必须产生比父节点子集更“类均匀”的子集。也就是每个子节点表示的样本集合都更好的属于特定的类,例如,一个四类问题,假设子集
2.1 - 信息增益:
首先,是引入信息熵的概念,且
通常来说,信息增益越大,意味着使用判别特征
2.1.1 - 离散特征
这里拿周老师西瓜书上的例子来说明(离散特征):
1 - 根节点的确定
以图2.1举例。因为是2个类别,即
且当前判别特征集合为{色泽、根蒂、敲声、纹理、脐部、触感}。假设先考虑”色泽”这个特征,它是离散值,只有三个取值:{青绿,乌黑,浅白},即当前
以”色泽”作为当前结点(目前是根节点)的判别特征的话,对应的三个信息熵为:
对应的其他几个特征的信息增益为:
因为”纹理”的信息增益最大,所以第一个判别特征选择为“纹理”:
ps:因为是离散性质的特征,所以对于第二层来说,就可以直接将使用过的特征剔除当前层的候选判别特征集合了,因为是基于父节点的先验概率基础上做的进一步划分,即第二层只要基于{色泽、根蒂、敲声、脐部、触感}来考虑怎么划分,而如果是连续型的特征,就可以不做剔除这一步,只是缩小范围,后面会说到。
2 - 第二层节点的确定
基于图2.2基础,我们现在需要划分第二层的清晰节点,该节点上有数据集
1)先计算节点的信息熵:
2)
同理:
因为有三个相同的最大值,所以任意取一个就行,这里假设取”根蒂”,从而得到新的三个样本集:
因为对于此时的
2.1.2 - 连续特征
我们获取的“样本x特征”矩阵,其值呈现的都是确定值。所谓离散特征,就是当前特征的取值有限,且经常重复出现;而连续值,就是具有多个取值,基本上都看不到重复那种,可以认为是连续的。如2.1.1是处理当特征为离散时候的情况,而很多时候,我们得到的特征是连续值。以西瓜书的表4.3作为例子。
这里相对于图2.1 增加了2个特征,密度和含糖率,这2个都是连续值。而为了应对这种情况时,可以通过m分法,将其分成m份,且以相邻的两个特征点的平均值作为划分点,从而得到m个所谓的离散区域,此时
如图2.4中 密度有16个候选划分点
从而计算得出其最佳划分点为0.381,对应的信息增益为0.262.
同理得,含糖率最佳划分点0.126,信息增益为0.349。从而得到:
ps:假如选取了密度为当前的判别特征,则其左边子树是密度小于0.381的样本,右子树是大于0.381的点。因为该特征是连续值,故而不会被剔除下一层的判别特征的候选集合,因为对于小于0.381的样本集合(即左子树)来说,其还是可以从范围
2.2 - 信息增益率
因为2.1的信息增益方法对于当该特征的取值较多时候,会有所偏差,比如一个特征只有2个取值,一个特征却能取3个值,这时候信息增益方法会稍微倾向于选择能取3个值得特征作为判别特征。为了解决这种特征取值个数带来的问题,C4.5选择使用信息增益率的方式作为判别特征的选取规则。
增益率公式为:
这里
如图2.1所示的数据集:
可以发现,计算公式和计算信息增益是一样的,只是信息增益是基于样本标签,而这里是计算该特征的几个不同的取值。增益率规则对可取值数目较少有偏好,所以C4.5采用了启发式增益率,即先从当前候选特征集合中找到 信息增益高于平均水平的特征,组成新候选特征集合,然后再计算这个新候选特征集合中 增益率高的那个。相当于设定一个自适应阈值,将大于该阈值的特征留下,然后取留下特征中增益率高的特征。
2.3 - 基尼系数
在CART算法中,采取的是基尼系数的方式来衡量判别特征。
数据集D的纯度可用基尼值来度量:
直观来说,
候选判别特征
所以在候选特征集合中选择使得划分后基尼指数最小的熟悉作为最优划分属性,即
2017/03/17 第一次修改!
参考资料:
[1] 模式识别 第4版.(希腊)西奥多里蒂斯
[2] 周志华,机器学习
[3]