您的位置:首页 > 其它

组合模型——Tree models、Boosting、 Committee

2017-11-10 21:01 417 查看

组合模型简介

组合模型产生的原因

组合模型产生的原因是现有的简单的模型的表达能力不够,不能对复杂的问题进行很好的建模(拟合),比如简单的线性模型很难对复杂的非线性函数进行拟合。

组合模型的作用

组合模型的作用就是通过“组合”的方式把模型变得更为复杂(增加模型复杂度),从而能够有更好的表达能力。

组合模型的作用方式

组合模型的主要形式有tree model、boosting以及models averaging三种方式。这三种模型从不同的角度在简单的模型基础上进行优化。

1) tree model:通过对输入空间的划分,使得各个小的输入空间更为简单,然后利用简单的base model进行分类或回归。

2) boosting:boosting实质上是利用贪心算法,在已有的模型的基础上更关注“残差”并对其进行建模。

3) models averaging:通过多个模型获得的结果然后进行平均作为最后的结果。

tree model

决策树基本概念

决策树有一系列的决策条件(conditions)和一系列的基础模型(base model)组成。

每个internal node代表一个condition,一个condition也就表示对input space的一次划分

每个leaf node代表一个base model。在分类问题中就是一个class或者classifier,在回归问题中就是一个constant(常数)或者regressor。

决策树的思想

决策树的思想就是我的方法(base model)不能解决复杂的问题(original input space),而且我没有更好的方法解决,那么我就通过一种手段(condition)把复杂的问题划分为很多个简单的问题(simple input space),然后一个一个解决,把所有简单问题都解决了也就解决了原来的复杂问题。

一个简单的决策树例子



上图是一个根据refund、marital status、taxable income来判断一个人是否会还贷的例子。

输入空间:refund、marital status、taxable income这三个特征空间的组合。

输出空间:cheat的状态。

解决这个问题有两种方式:

方式一:一次性输入三个特征,并且建模得到是否cheat的状态;

方式二:对输入空间进行划分,然后对每个特征依次进行判断;

方式一与方式二的不同点在于你在进行判断的时候所采用的模型的输入是三个特征还是一个特征,如果你的模型允许三个特征那么你可以采用方式一,但是如果不允许或者不能有很好的建模那么方式二则可以更好的建模。

这只是一个很简单的例子,方式一肯定能够做好,但是对于很多复杂的问题,方式一往往不能做好。注意这里的方式二的输入只有一个特征,但这并不代表只能有一个特征输入,可以有多个,这里只是强调方式二的模型是比较简单的模型。

从上面的例子可以发现,这种划分并非最好的划分,其实决策树的核心问题就是怎么找到最优的划分结构。当然你可以用穷举法,但是对于比较复杂的问题,穷举法的算法复杂度是不被允许的,所以通常采用的是Hunt’s algorithm

Hunt’s algorithm



对上图的两点解释:

1) need not 表示不需要对输入空间进行划分,出现need not 的情况是该输出空间对应的输出空间都一样,可以想象,当输出空间都一样时划分已经没有意义了,所以不需要划分。

2) cannot 表示不可以再对输入空间划分,出现cannot的情况是该输入空间已经完全一样,输入空间都一样了当然不可以再进行划分了。

Hunt’s algorithm其实是利用了树的递归结构,通过递归对输入空间进行一次又一次的划分。其基本过程就是,每次选取输入空间的一个特征,并对这个特征进行一个条件判断从而对该空间进行划分得到若干个子空间,然后各个子空间组成各自的树,并且均作为当前树的子节点

到这里,核心问题就转化为怎么在划分过程中选取一个特征,并且对这个特征加一个怎样的condition才能得到最好的划分了。



对于这个问题,提出了的解决办法是

斜决策树:对多种特征同时划分。http://longgb246.github.io/2017/02/15/ML_ITDM_classfy_01/

Committee

boosting

boosting的理论支撑:基分类器的表现仅仅比随机猜测好一点点,那么boosting就可以产生比较好的效果。

boosting的定义:

三种方法的联系与区别

committees, 训练多个不同的模型,取其平均值作为最终预测值。

boosting: 是committees的特殊形式,顺序训练L个模型,每个模型的训练依赖前一个模型的训练结果。

决策树:不同模型负责输入变量的不同区间的预测,每个样本选择一个模型来预测,选择过程就像在树结构中从顶到叶子的遍历。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐