机器学习技法笔记-Lecture 9 Decision tree

决策树模型。

和前面几个介绍的几种aggretation方式的联系:

blending是首先我们已经有g,只是去把它们融合;

learning是一边学习g,一边(其实是最后)融合。bagging是uniform的方式融合,adaboost是linear的方式融合;

决策树是同时学到条件和g,然后利用条件将g合起来的一种aggregation方法。

 

G表达式中的q(x)就是一种条件,对于输入的x,x是否在路径t上,是就是1,否就是0,然后乘以对应路径t的base hypothesis. 

 

一种递归的角度

优缺点

便于理解,简单高效。但是缺少理论保证。

 

基本的决策树算法

下面的步骤中我们还不知道分支个数c,分支条件,算法终止条件和最后base 假设g的形态。

 

然后介绍了比较常用的 CART算法

CART中选择c=2,每次只分为两颗小树,最后生成的树是二叉树。

g的形态是一个常数。划分结束后,在划分的数据里面使得Ein最小的常数。比如在分类中,就是类别最多的那一类。在回归中,就是剩下资料的y的平均。

 

那有了c,划分的条件如何定义呢?

我们知道每次要将资料划分成两份,就相当于使用了decision stump h(x)去切一下,一边是正的,一边是负的。怎么选择h(x)呢?就是能使切完后两边资料的纯度最大的一个h。反过来说也就是使两边不纯度最小。这里对两边的不纯度加权,还考虑了切完后两边资料的个数,资料多的,纯度更有重要性。

 

不纯度的衡量

每切一下,就对切完后的两边资料的不纯度算一算。

回归上使用均方误差

分类上一般使用Gini系数,能够把所有类别都考虑进去,而不是只看最大的那个类别。

 

最后看一下CART的终止条件

当分出来的资料,里面的y都相同或者x都相同时,就不再进行下去。此时称为fully grown tree。

 

当分裂为y都相同的fully grown tree时,这时候Ein(G)其实就是0了。这种时候就很容易overfit。

那么就需要regularization,我们认为最后切出来的叶子节点越多,树就越复杂。

加上复杂度惩罚后,再求最小化的树称作剪枝的决策树。但是这种问题不好求解。

通常的做法是先做一颗完全长成的树,然后摘去一片叶子,看看摘掉哪一片的Ein最好。依次摘去多片叶子。

得到的G(i)放到最小化目标函数里面去看哪个最好。

参数lamda的选择使用validation.

 

决策树在category类型的特征上也易于处理。

缺失值的处理。在训练的时候,对分支存一个(或多个)和它的分割效果差不多的替代分支。在预测的时候如果碰到缺失值,无法在这个特征上做分割的时候,利用替代的分支来做。

 

特性

posted @ 2017-06-20 17:06  Akane  阅读(436)  评论(0编辑  收藏  举报