统计学习方法学习笔记第五章(决策树)

决策树是对实例进行分类的树形结构,是条件概率模型。

决策树的思想和kd树有点相似。

kd_tree中,是依次扫描每一维特征,选取其中的中位数作为空间划分。

决策树要先选择哪一维最优,之后再进行划分。选取的标准是判断以哪一维作为划分标准可以让熵下降的最多(信息增益),也就是确定性增加。划分之前的熵是数据集D的经验熵(每类标签的样本数/样本总数),划分之后的熵是经验条件熵(采用特征A划分后,每类划分的概率 * 每个划分类的内部,每类标签的样本数/样本总数)。当然有一些特助情况要考虑,比如熵减的太少,或者没有维度可以继续进行划分,就不划分了。

决策树有两种生成算法,一种是ID3算法,一种是C4.5算法,生成树的方法和上一段的描述基本一致。两种算法的差别在于信息增益的选择。ID3算法是直接选择用信息增益来作为划分标准,但是这会导致选择偏向于选择取值较多的特征。C4.5算法采用信息增益比来划分,就是在原来信息增益的基础上,除以一个特征的熵(特征每个取值的数目/样本总数),这样可以矫正这一问题。

生成决策树之后容易过拟合,泛化能力不行,所以需要剪枝(说明结构复杂),剪枝过程的损失函数分为两部分,第一部分和经验熵相关,第二部分和以该点为根的子树的复杂程度有关。第一部分乘以了一个当前子树的样本数目,使得损失函数变成了对数损失函数,由第一章的结论,条件概率模型,损失函数是对数损失函数,经验风险最小化等价于极大似然估计,故可以用极大似人估计求解。剪枝的过程就是自下而上的判断如果把这颗树变成叶子,损失函数能不能变小,如果能变小就缩成叶子。

最后介绍了CRAT算法,CRAT算法既可用于回归问题,也可用于分类问题。

算法分为两部分,第一部分是构造回归树/分类树,第二部分是剪枝。

对于回归树,采用平方误差来表示回归树对训练数据的预测误差,预测输出值的最优值是每一类的输出值的平均值。划分是选择一个特征,在特征中选择一个取值,将样本分为大于它和小于等于它的两个部分,每一次划分要遍历每一个特征和特征的每一种可能的取值,寻找让总的均方误差最小的划分。

对于分类树,回归树树过程很像,只不过把平方误差换成的基尼指数,基尼指数和熵之半的曲线很接近,都可以近似的代表分类误差率,划分的过程还是要遍历每一个特征和特征每一种可能的划分。

回归树和分类树的剪枝过程是基本一致的,损失函数和决策树差不多,分为预测误差和模型复杂度两个部分。这里可以通过计算算出参数α的取值范围,在某一个取值范围内树的结构是不变的,最终形成不同的n+1个版本的树,之后通过验证集交叉验证来判断哪一种树哪一颗树的平方误差或基尼指数小,哪一颗树就是最优决策树。

原文地址:https://www.cnblogs.com/pkgunboat/p/15758636.html