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

决策树模型。算法

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

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

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

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

 

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

 

一种递归的角度spa

优缺点orm

便于理解,简单高效。可是缺乏理论保证。递归

 

基本的决策树算法ci

下面的步骤中咱们还不知道分支个数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类型的特征上也易于处理。

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

 

特性

相关文章
相关标签/搜索