机器学习技法笔记-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类型的特征上也易于处理。
缺失值的处理。在训练的时候,对分支存一个(或多个)和它的分割效果差不多的替代分支。在预测的时候如果碰到缺失值,无法在这个特征上做分割的时候,利用替代的分支来做。
特性