决策树可以看作非线性的模型聚合:

《机器学习技法》---决策树

递归形式是:

《机器学习技法》---决策树

其中,G(x)表示决策树对应的函数,b(x)表示分叉的规则,Gc(x)是子树的模型。

 

2 一般决策树生成算法的框架

《机器学习技法》---决策树

即,学习划分规则b(x),然后把数据按照b(x)划分为C部分,对每一部分递归地生成子树。注意递归在一定条件停止,直接返回一个g(x)。

 

事实上,不同的决策树算法,都是这个基本的框架。不同的地方在于这四个部分的具体定义是不同的:

《机器学习技法》---决策树

 

3 CART算法

CART算法中,框架中的四个部分分别定义为:

number of branches:每次划分的分支规定为2。也就是CART决策树是一个二叉树。

branching criteria:选择一种划分方式,使得划分后两边数据集不纯度最低(不确定性小):

《机器学习技法》---决策树

base hypothesis:最底层的g(x)是一个常数,使得在最后的小数据集上Ein最小。

《机器学习技法》---决策树

termination criteria:节点中样本个数小于阈值,或基尼指数小于阈值,或没有更多特征。

 

回归的不纯度定义为:

《机器学习技法》---决策树

分类的不纯度定义为:

《机器学习技法》---决策树

也称为基尼指数。其中,K是总共的类别数。

 

因此,整个算法就是:

《机器学习技法》---决策树 

 

4 树的剪枝

为了避免过拟合,需要对产生的树作剪枝。方法是,对当前的树T,去掉一片叶子,选择去掉之后Ein最大的树,得到T1;再对T1去掉一片叶子.......直到只剩一个节点。对产生的T,T1,T2......,选择加正则项的损失函数最小的树作为最终剪枝的树:

《机器学习技法》---决策树

 

5 决策树算法的优点

《机器学习技法》---决策树

缺点是理论保证上还不太完备。