机器学习技法 Lecture9: Decision Tree

Decision Tree Hypothesis

目前讲了几种aggregation类型的算法,一大类是有已知的基分类器直接进行混合的blending,另一大类是一边学基分类器一遍混合的。下面要讲一个conditional情形的learning大类的算法,就是决策树算法:
在这里插入图片描述
举个实际生活中的例子来描述决策树模型,根据自己的下班时间和deadline的时间决定今晚是否学习mooc课程。可以画成一个决策树,因此决策树算法就是最接近人类决策过程的一种模型。
在这里插入图片描述
而最终的模型可以用数学化的公式表示 G ( x ) = ∑ t = 1 T q t ( x ) g t ( x ) G(x)=\sum_{t=1}^{T}q_{t}(x)g_{t}(x) G(x)=t=1Tqt(x)gt(x),其中 q t ( x ) q_{t}(x) qt(x)指的是判断某种情形, g t ( x ) g_{t}(x) gt(x)是个基函数,一般返回一个常数。

决策树同样也可以写成递归的形式,根据某个分支条件 b ( x ) b(x) b(x)可以将下一级分成c种情形,每个情形对应的又是一个新的更小型的决策树。就像是数据结构中树类型的定义一样。
在这里插入图片描述
但是决策树实际上是一个经验模型,它本身虽然有很多好处比如可解释性,简单高效等等,但是它缺少理论上的保证,大家只是习惯性的使用,而且选择分支的方式有时候也是有些难懂。也没有什么单一的代表性的算法。
在这里插入图片描述

Decision Tree Algorithm

根据前面的定义描述可以表达出一个基本的决策树算法,如下图所示:
在这里插入图片描述
有四个可选择的部分:每一层的分支数,分支的规则,结束继续分支下去的规则以及最终的基函数。这个决策树的算法也是一个递归形式的描述。

我们经常用的有一种决策树算法叫做classification and regression tree(C&RT)。它是上面决策树算法的一个具体化,主要的选择就是将分支数确定为2个,而且基函数是一个使得 E i n E_{in} Ein最小的常数。比如分类时选择返回最多的那类,回归时选择样例标签的平均值。它能够解决分类与回归问题。
在这里插入图片描述
除此之外还需要确定的是分支规则。在C&AT算法里分支规则用的是让子数纯度更高。
在这里插入图片描述
分割后的纯度是两个子树中纯度的加权和,权值是样本数量。因此分割规则 b ( x ) b(x) b(x)返回的是让分割后的子树“不”纯度加权和最小的分割函数。而不纯度的具体计算有不同的方式,回归与分类也不太相同。
在这里插入图片描述
而进行分割的终止条件也是很自然的,那就是分割进行不下去的时候。一种是y全部一样的情况,或者是x一样的情况。这种叫做强制终止条件。所有子树都进行到强制终止条件的树叫做fully-grown tree。
在这里插入图片描述

Decision Tree Heuristic in C&RT

因此C&AT算法的流程就清楚了,具体流程如下:
在这里插入图片描述
使用不同的基函数这个算法能够解决二分类与回归的问题,同样也很轻松的解决多分类的问题。

对于决策树算法而言,过拟合也是一个需要重点关注的问题。如果任由算法进行到fully-grown的程度,那么 E i n E_{in} Ein虽然为0但是可能模型复杂度过高会导致过拟合。因此需要一个正则化。一般来说惩罚项是叶子节点的数量。
在这里插入图片描述
理论上的方法是在所有的决策树中选择一个 E i n ( G ) + λ Ω ( G ) E_{in}(G)+\lambda\Omega(G) Ein(G)+λΩ(G)最小的树。但实际上没法枚举所有的树。具体的过拟合方法是,从fully-grown的算法开始剪枝,每次在所有比当前决策树少一个叶子节点的决策树里选一个 E i n ( G ) + λ Ω ( G ) E_{in}(G)+\lambda\Omega(G) Ein(G)+λΩ(G)最小的树,然后重复这个过程。直到只有一个叶子节点为止。然后在所有的候选树里选择 E i n ( G ) + λ Ω ( G ) E_{in}(G)+\lambda\Omega(G) Ein(G)+λΩ(G)最小的。

而有时候遇到的特征是分类特征而不是数值特征,这样分类就不能选择小于某个值。因为这样对于分类的类别特征没有意义。这样就不太好分支。对于分类特征而言分支方法叫做decision subset。也就是将类别set分成两个不同的小set作为决策分支过程。
在这里插入图片描述
在实际使用中有可能还会遇到一些缺失值。这是第一步就是重新获取这个值。但是有时候无法重新获取,那么就可以选择一些其它特征作为替代。比如确实体重特征,可以用身高特征近似替代。同样可以进行分支决策。
在这里插入图片描述

Decision Tree in Action

在实际的使用中C&AT算法与adaboost使用有一些区别。adaboost每个基函数的决策都是建立在所有的数据基础上的。而C&AT算法是在分支的基础之上进行下一步的划分,因此有可能是在数据集的某个小部分上做的决策,因此可能效率更高。
在这里插入图片描述
在这里插入图片描述
最后总结一下C&AT算法的特点,以及提到了C4.5这个另外的决策树算法。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值