组合模型简介

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

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

  3. 组合模型的作用方式
    组合模型的主要形式有tree model、boosting以及models averaging三种方式。这三种模型从不同的角度在简单的模型基础上进行优化。
    1) tree model:通过对输入空间的划分,使得各个小的输入空间更为简单,然后利用简单的base model进行分类或回归。
    2) boosting:boosting实质上是利用贪心算法,在已有的模型的基础上更关注“残差”并对其进行建模。
    3) models averaging:通过多个模型获得的结果然后进行平均作为最后的结果。

tree model

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

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

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

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

  3. 一个简单的决策树例子

上图是一个根据refund、marital status、taxable income来判断一个人是否会还贷的例子。
输入空间:refund、marital status、taxable income这三个特征空间的组合。
输出空间:cheat的状态。
解决这个问题有两种方式:
方式一:一次性输入三个特征,并且建模得到是否cheat的状态;
方式二:对输入空间进行划分,然后对每个特征依次进行判断;
方式一与方式二的不同点在于你在进行判断的时候所采用的模型的输入是三个特征还是一个特征,如果你的模型允许三个特征那么你可以采用方式一,但是如果不允许或者不能有很好的建模那么方式二则可以更好的建模。
这只是一个很简单的例子,方式一肯定能够做好,但是对于很多复杂的问题,方式一往往不能做好。注意这里的方式二的输入只有一个特征,但这并不代表只能有一个特征输入,可以有多个,这里只是强调方式二的模型是比较简单的模型。

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

  1. 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

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

三种方法的联系与区别

committees, 训练多个不同的模型,取其平均值作为最终预测值。
boosting: 是committees的特殊形式,顺序训练L个模型,每个模型的训练依赖前一个模型的训练结果。
决策树:不同模型负责输入变量的不同区间的预测,每个样本选择一个模型来预测,选择过程就像在树结构中从顶到叶子的遍历。

组合模型——Tree models、Boosting、 Committee相关推荐

  1. R语言使用caret包构建遗传算法树模型(Tree Models from Genetic Algorithms )构建回归模型、通过method参数指定算法名称

    R语言使用caret包构建遗传算法树模型(Tree Models from Genetic Algorithms  )构建回归模型.通过method参数指定算法名称.通过trainControl函数控 ...

  2. A Complete Tutorial on Tree Based Modeling from Scratch (in R Python)

    转载自: http://www.analyticsvidhya.com/blog/2016/04/complete-tutorial-tree-based-modeling-scratch-in-py ...

  3. Qt 可编辑的树模型(Tree Model)的一个实例

    本实例来自Qt 官方的一个实例(Editable Tree Model Example) 简介: 本实例是关于怎样基于模式视图框架下的 树模型的实现. 该模型支持可编辑的表单项,自定义表头,删除插入行 ...

  4. 笔记—集成学习—Boosting

    集成学习--Boosting 一.引言 在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型.但是,实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模 ...

  5. 机器学习:集成学习之 Bagging、Boosting和AdaBoost

    Bagging.Boosting和AdaBoost(Adaptive Boosting)都是Ensemble learning的方法.集成学习其实就是有很多个分类器,概念就是三个臭皮匠,顶过诸葛亮. ...

  6. 机器学习笔记-Adaptive Boosting

    集成学习系列: Blending and Bagging Adaptive Boosting Decision Tree Random Forest Gradient Boosted Decision ...

  7. NIPS 2018 接收论文list 完整清单

    NIPS2018 接收论文包括poster.tutorial.workshop等,目前官网公布了论文清单: https://nips.cc/Conferences/2018/Schedule Post ...

  8. 部分算法与对应代码整理(R、Python)

    目录 1. 图像.人脸.OCR.语音相关算法整理 2. 机器学习与深度学习相关的R与Python库 (1)R General-Purpose Machine Learning Data Manipul ...

  9. Machine Learning Summary

    Machine Learning Summary General Idea No Free Lunch Theorem (no "best") CV for complex par ...

  10. 算法理解|从头开始理解梯度提升算法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者:Prince Grover 编译:ronghuaiyang ...

最新文章

  1. ECCV 2020 中国预会议 邀请您参加计算机视觉盛宴
  2. Shell脚本——初识
  3. oracle学习-PL SQL 存储过程中循环
  4. Spring 基于注解(annotation)的配置之@Qualifier注解
  5. Opencv FFmpeg Ubuntu下编译问题
  6. 东北大学计算机 大一物理考试题,2010-2011东北大学物理考试题及答案
  7. 阶段3 3.SpringMVC·_03.SpringMVC常用注解_4 HiddentHttpMethodFilter过滤器
  8. Office 2016 for mac 打开闪退/出现问题,提示发送错误报告
  9. js中求2个数的最大值的几种方法
  10. 学安全测试需要考什么证书?
  11. Android 双卡双待支持检验SIM信息获取
  12. 大学里的网络安全专业为什么没多少人就读?
  13. Niagara Networks和Fortinet安全解决方案
  14. CVS命令深入研究 zz
  15. 产品上ref和lot是什么意思_试剂盒REF与LOT分别是什么意思
  16. 大数据学习之路(转载)
  17. 个人电脑如何搭建服务器?或远程连接
  18. 【论文分享】AF2:Highly accurate protein structure prediction with AlphaFold
  19. javaBean:java语言写成的可重用的组件。
  20. 八十年代的计算机游戏,梦回黄金时代 80年代最伟大的20款游戏_单机游戏_新浪游戏_新浪网...

热门文章

  1. turtle实例2 奥运五环
  2. 爬取豆瓣电影排行榜top 250
  3. 《东周列国志》第十八回 曹沫手剑劫齐侯 桓公举火爵宁戚
  4. IP签名档美化版api源码PHP
  5. C++实现简单数独游戏
  6. C语言学习中遇到的问题和解决方法
  7. 小写字母转大写字母并输出ASCLL值
  8. 2021年11月 | openGauss走进高校活动系列回顾
  9. 独孤求败,未必就是王者:CloudStack和Eucalyptus已去,OpenStack赢了吗?
  10. Python操作MongoDb与Redis以及ODM