机器学习技法-决策树和CART分类回归树构建算法
课程地址:https://class.coursera.org/ntumltwo-002/lecture
重要!重要!重要~
一、决策树(Decision Tree)、口袋(Bagging),自适应增强(AdaBoost)
- Bagging和AdaBoost算法再分类的时候,是让所有的弱分类器同时发挥作用。它们之间的区别每个弱分离器是否对后来的blending生成G有相同的权重。
- Decision Tree是一种有条件的融合算法,每次只能根据条件让某个分类器发挥作用。
二、基本决策树算法
1.用递归的视角来看决策树,根据特征选择分支条件,不断的生成子树,所有的子数组成了最后的决策树。
例如下面根据回家时间、约会情况、作业的deadline的特征,生成决策树,预测是否会观看mooc在线课程。
2.基本的决策树算法描述
- 确定分支条件。分支条件可以由人来确定,也可以由算法生成
- 根据分支条件划分训练数据D
- 根据分支条件不断递归生成子树,直到满足终止条件
- 为了防止过拟合,限制模型的复杂度,通常都会通过剪枝(Pruning)来正则化决策树
三、CART算法(分类回归树)
林这里讲的很容易理解,可以参考:http://blog.csdn.net/u011067360/article/details/24871801?utm_source=tuicool&utm_medium=referral
- CART是只有两个分支的二叉树
- 根据“纯度”确定分支的条件。对于分类的通常选择GINI,对于连续的目标变量可以使用LSD或者LAD。
GINI指数:介于0~1之间的数,0-完全相等,1-完全不等。总体内包含的类别越杂乱,GINI指数就越大(和熵的概念类似)。
- 根据GINI找到最佳的待切分特征
- 如果该节点不能再分,将该节点存为叶节点
- 执行二元切分
- 在右子树递归调用createTree()方法,创建子树
- 在右子树递归调用createTree()方法,创建子树
四、CART和AdaBoost元算法应用比较
CART相比AdaBoost的效率会高一些,因为前者是“有条件的切”,后者是完全的“横、竖”。
五、CART实践中的特点