本文由 LeftNotEasy 发布于 http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系 wheeleast@gmail.com
前言:
决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得到的决策树做成图片展示出来)等。但是同时,单决策树又有一些不好的地方,比如说容易 over-tting,虽然有一些方法,如剪枝可以减少这种情况,但是还是不够的。
模型组合(比如说有 Boosting,Bagging 等)与决策树相关的算法比较多,这些算法最终的结果是生成 N(可能会有几百棵以上)棵树,这样可以大大的减少单决策树带来的毛病,有点类似于三个臭皮匠等于一个诸葛亮的做法,虽然这几百棵决策树中的每一棵都很简单(相对于 C4.5 这种单决策树来说),但是
他们组合起来确是很强大。
在最近几年的 paper 上,如 iccv 这种重量级的会议,iccv 09
年的里面有不少的文章都是与 Boosting 与随机森林相关的。模型组合+决策树相关的算法有两种比较基本的形式 - 随机森林与 GBDT((Gradient Boost Decision Tree),其他的比较新的模型组合+决策树的算法都是来自这两种算法的延伸。本文主
要侧重于 GBDT,对于随机森林只是大概提提,因为它相对比较简单。
在看本文之前,建议先看看机器学习与数学 (3) 与其中引用的论文,本文中的 GBDT 主要基于此,而随机森林相对比较独立。
基础内容:
这里只是准备简单谈谈基础的内容,主要参考一下别人的文章,对于随机森林与 GBDT,有两个地方比较重要,首先是 information gain,其次是决策树。这里特别推荐 Andrew Moore 大牛的 Decision Trees Tutorial,与 Information Gain Tutorial。Moore 的 Data Mining Tutorial
系列 非常赞,看懂了
上面说的两个内容之后的文章才能继续读下去。
决策树实际上是将空间用超平面进行划分的一种方法,每次分割的时候,都将当前的空间一分为二,比如说下面的决策树:
就是将空间划分成下面的样子: