标签:
本节主要讲述了决策树的两种解释,一种是决策树是由叶子节点和路径组成的,当选择叶子节点对应的路径时采用对应的叶子节点结果;另一种观点是由分叉的树递归组成,当选择某一分支时将采用分支对应的子树的演算法结果。
决策树的优点在于可解释性强,高效。缺点是理论保证不足,并且算法多样。
决策树主要有4个关键部分:
(1)分支分成几支?
(2)该怎么分支?
(3)什么时候停止?
(4)最终回传的叶子节点的base hypothesis是什么?
以下介绍CART的4个关键:
(1)分成2支。
(2)用decision stump分支。
(3)通过加权不纯度衡量什么时候停止,其中权重是所分类数据大小:
当值域是连续时,不纯度为方差;当值域是离散时,不纯度为基尼系数。有时候可能会使用分类错误。
(4)最终回传一个常数。
9.3.1 多分类
需要改变的地方有两处,第一是回传的时候的值,第二是不纯度的计算。
9.3.2 过拟合
可以每次在剩余的叶子中减掉一个可以得到更好的
展示了决策树的判断过程。
随机森林就是将bagging和决策树结合起来,每次bagging训练一个决策树,最后投票。另外它在训练决策树时通过一个转换矩阵来线性组合出新的特征以供训练。
本节讲述了评估随机森林的
另外可以知道,当数据量足够大,抽取的数目和样本集大小相同时,没被选取到的样本大约占总样本的三分之一。
这个方法叫Out of Bag,简称OOB。
本节讲述了在随机森林中如何评估特征的重要性。特征重要性的指标是:
本节描述了了随机森林的应用情况,一般来说,所使用的树越多,结果越收敛,并且能表现出large margin的性质。
上一节讲了将bagging和决策树组合在一起成为随机森林,本节描述将adaboost和决策树组合在一起。
将它们组合在一起的方式就是给样本加上权重然后用来训练决策树,最后根据权重将决策树线性组合。其中有一些特殊之处,其一是权重将通过按比例抽取数据的方式表现;其二是决策树不能完全展开,否则其权重为无穷大,因此需要进行剪枝,在极端情况下的剪枝即只剩一个节点,成为decision stump。
如此就是adaboost-DTree的一个特殊例子,AdaBoost-Stump。
将AdaBoost对某一样本的分类看做是对其评分,其中,
AdaBoost的损失函数是指数损失函数。将该损失函数泰勒展开,可以看做是在原损失函数的基础上加上一个梯度,使得损失函数更小,这个梯度是一个函数。该函数的求解结果即AdaBoost的新树。
另外,我们希望
本节对上节的思想做了扩展。在这里尝试将上节的AdaBoost的指数错误函数转换成平方错误函数,并用同样的思路先泰勒展开求损失函数的梯度(梯度是一个函数),这里需要注意到的是,在利用梯度最小化损失函数的时候需要在目标函数中减去
然后再将
本节总结了过去几节提出的集成的方法:
在得到不同的
(1)uniform:简单地利用投票的方式将它们组合起来。
(2)non-uniform:将
(3)conditional:将
第一种的好处在于简单、稳定,后两者的好处在于能处理更加复杂的情况。
在不知道
(1)bagging:用bootstrap的方法获得样本,并进行学习。
(2)AdaBoost:用重新设置权重的方法学习
(3)Decision Tree:通过切割样本的方式获得
另外,可以把以上的方式融合起来:
(1)随机森林:bagging和完全决策树的融合。
(2)AdaBoost-DTree、GBDT:分别用AdaBoost和GradientBoost来组合弱决策树(即Decision stump)。
最后可以注意到的是,组合(ensemble)的方式有large margin的效果。
coursera机器学习技法笔记(9-11)——decision tree & Random forest & GBDT
标签:
原文地址:http://blog.csdn.net/u010366427/article/details/51332770