机器学习笔记(10)

学习打卡内容:

阅读《李航统计学习方法》的65-74页

学习Gini指数

学习回归树

剪枝

根据自己阅读,先写出自己所认为的笔记。


前面学习了决策树的建立方法。

这样产生的树往往对训练数据的分类很准确, 但对未知的测试数据的分类却没有那么准确, 即出现过拟合现象。过拟合的原因在于学习时过多地考虑如何提高对训练数据的正确分类, 从而构建出过于复杂的决策树。 解决这个问题的办法是考虑决策树的复杂度, 对已生成的决策树进行简化。

如何简化?

剪枝

从已生成的树上裁掉一些子树或叶结点, 并将其根结点或父结点作为新的叶结点, 从而简化分类树模型。

决策树的剪枝往往通过极小化决策树整体的损失函数(loss function) 或代价函数(cost function) 来实现。

C(T)表示模型对训练数据的预测误差, 即模型与训练数据的拟合程度, |T|表示模型复杂度, 参数a≥0控制两者之间的影响。 较大的a促使选择较简单的模型(树) ,较小的a促使选择较复杂的模型(树) 。 a=0意味着只考虑模型与训练数据的拟合程度,不考虑模型的复杂度。

决策树生成只考虑了通过提高信息增益(或信息增益比) 对训练数据进行更好的拟合。 而决策树剪枝通过优化损失函数还考虑了减小模型复杂度。 决策树生成学习局部的模型, 而决策树剪枝学习整体的模型。

算法5.4(树的剪枝算法)

输入: 生成算法产生的整个树T, 参数a;

输出: 修剪后的子树Ta。

(1) 计算每个结点的经验熵。

(2) 递归地从树的叶结点向上回缩。设一组叶结点回缩到其父结点之前与之后的整体树分别为TB与TA, 其对应的损失函数值分别是Ca(TB)与Ca(TA), 如果则进行剪枝, 即将父结点变为新的叶结点。

(3) 返回(2) , 直至不能继续为止, 得到损失函数最小的子树Ta。


CART算法

分类与回归树(classification and regression tree, CART)

CART是在给定输入随机变量X条件下输出随机变量Y的条件概率分布的学习方法。CART假设决策树是二叉树, 内部结点特征的取值为“是”和“否”, 左分支是取值为“是”的分支, 右分支是取值为“否”的分支。 这样的决策树等价于递归地二分每个特征, 将输入空间即特征空间划分为有限个单元, 并在这些单元上确定预测的概率分布, 也就是在输入给定的条件下输出的条件概率分布。

CART算法由以下两步组成:

(1) 决策树生成: 基于训练数据集生成决策树, 生成的决策树要尽量大;

(2) 决策树剪枝: 用验证数据集对已生成的树进行剪枝并选择最优子树, 这时用损失函数最小作为剪枝的标准。

决策树的生成就是递归地构建二叉决策树的过程。 对回归树用平方误差最小化准则,对分类树用基尼指数(Gini index) 最小化准则, 进行特征选择, 生成二叉树。

基尼指数(Gini index) 

分类问题中, 假设有K个类, 样本点属于第k类的概率为pk,则概率分布的基尼指数定义为:

基尼指数Gini(D)表示集合D的不确定性, 基尼指数Gini(D,A)表示经A=a分割后集合D的不确定性。 基尼指数值越大, 样本集合的不确定性也就越大, 这一点与熵相似。

CART剪枝算法从“完全生长”的决策树的底端剪去一些子树, 使决策树变小(模型变简单) , 从而能够对未知数据有更准确的预测。CART剪枝算法由两步组成: 首先从生成算法产生的决策树

T0底端开始不断剪枝, 直到T0的根结点, 形成一个子树序列{T0, T1,…,Tn}; 然后通过交叉验证法在独立的验证数据集上对子树序列进行测试, 从中选择最优子树。

1. 剪枝, 形成一个子树序列

对固定的a, 一定存在使损失函数Ca(T)最小的子树, 将其表示为Ta。 Ta在损失函数Ca(T)最小的意义下是最优的。 容易验证这样的最优子树是唯一的。 当a大的时候, 最优子树Ta偏小; 当a小的时候, 最优子树Ta偏大。 极端情况, 当a=0时, 整体树是最优的。 当a→ 时, 根结点组成的单结点树是最优的。

它表示剪枝后整体损失函数减少的程度。 在T0中剪去g(t)最小的Tt, 将得到的子树作为T1, 同时将最小的g(t)设为a1。 T1为区间[a1,a2)的最优子树。如此剪枝下去, 直至得到根结点。 在这一过程中, 不断地增加a的值, 产生新的区间。

2. 在剪枝得到的子树序列T0,T1,…,Tn中通过交叉验证选取最优子树Ta

利用独立的验证数据集, 测试子树序列T0,T1,…,Tn中各棵子树的平方误差或基尼指数。 平方误差或基尼指数最小的决策树被认为是最优的决策树。 在子树序列中, 每棵子树T1,T2,…,Tn都对应于一个参数a1,a2,…,an。 所以, 当最优子树Tk确定时, 对应的ak也确定了, 即得到最优决策树Ta。

你可能感兴趣的:(机器学习笔记(10))