前言

写这一章本来是想来介绍GBDT-LR这一个推荐模型的。但是这里面就涉及到了很多机器学习的基础树形算法,思前想后还是决定分成几篇文章来写,这里先介绍一下CART数,因为在GBDT中用来分类回归的树形结构就是CART,为了更好的理解这个推荐模型,首选需要的就是打好基础,介绍完CART之后,我就会介绍XGBoost等一些集成学习的东西,然后就是GBDT,当然了还有Xgboost。的确是一个大家族啊,当然了这些并不是全部的东西,还有LightGBMcatboost这几大巨头算法。这些之后再介绍吧。

一、CART简介

分类回归树(classification and regression tree, CART)模型由Breiman等人在1984年提出,是应用广泛的决策树学习方法。CART同样由特征选择、树的生成及剪枝组成,既可以用于分类也可以用于回归。

具体的实现方法其实就类似于在刷算法题的时候的二叉搜索树,如下图所示:

二、理论推导

理论推导部分还是也有着很多的数学公式,如果小伙伴是第一次来看CART那可能有点难受,而且在我看过的所有博客中很多都是在单纯的讲解公式,然后配个例子。在这里我会尝试着用自己的大白话来讲出自己的理解来的,希望可以给大家带来不一样的视觉体验。给定X和Y两个输入和输出变量,并且Y是连续变量,给定训练数据集

接下来我们要做的就是如何进行CART的划分,首先要考虑的两个问题是如何先择划分点也就是如何选择划分特征,第二个就是每个叶子节点上面的输出特征值应该如何求?一个回归树对应着输入空间(即特征空间)的一个划分以及在划分的单元上的输出值。换句大白话就是每个CADT中的非叶子节点都是一次输入特征的划分,并且当被划分到叶子结点的时候叶子结点的值就是要进行的输出值。假设CADT将输入空间化为了M个单元,,也就是将并且每个单元(叶子节点)上面都有着一个固定的输出值。则回归树的模型可以表示为:

我们训练的误差可以使用平方误差 来表示,用平方误差最小的准则求解每个单元上的最优输出值。

那么我们图和对输入空间Y进行划分呢,我们可以用过遍历X中的特征来获取它对应的Y特征,在这里用s来表示,从而作为切分变量和切分点,由此而来定义两个区域:

然后就是如何寻求最有切分点了,首先就用到上面我们说的平方误差,先看公式:

那么这个c如何求解呢,每个单元R上的c的最优值都是所有输入向量x对应y的均,即:

那么选定的最优切分点c_1和c_2的求解则是:

遍历所有输入变量,找到最优的切分变量j,构成一个对(j, s)。依此将输入空间划分为两个区域。接着,对每个区域重复上述划分过程,直到满足停止条件为止。这样就生成一颗回归树。这样的回归树通常称为最小二乘回归树(least squares regression tree)。

然后贴一下算法的具体流程吧:

三、具体实例

首先先看一下李航老师书上的例子:

假设这里有10个训练样本的某个特征取值范围区间[0.5, 10.5], y的取值范围[5.0, 10.0], 我们学习一个提升树模型。

首先需要求出区域R以及c来:

并且

取s=1,则求得两个区域则分别求得这两个区域的输出值c:

遍历全部的特征值x之后得到下表:

将c带入到均值方差中去得到

显然取s=5时,m(s)最小。因此,第一个最优切分变量为j=x、最优切分点为s=5。

然后继续对两个区域进行递归划分即可得到最终的结果。

机器学习之分类回归树(CART)相关推荐

  1. id3决策树 鸢尾花 python_机器学习之分类回归树(python实现CART)

    机器学习之分类回归树(python实现CART) 之前有文章介绍过决策树(ID3).简单回顾一下:ID3每次选取最佳特征来分割数据,这个最佳特征的判断原则是通过信息增益来实现的.按照某种特征切分数据后 ...

  2. 机器学习实战(八)分类回归树CART(Classification And Regression Tree)

    目录 0. 前言 1. 回归树 2. 模型树 3. 剪枝(pruning) 3.1. 预剪枝 3.2. 后剪枝 4. 实战案例 4.1. 回归树 4.2. 模型树 学习完机器学习实战的分类回归树,简单 ...

  3. 机器学习--CART分类回归树

    目录 文章目录 目录 前言 1.CART回归树简介 2.剪枝策略 3.模型树 4.线性回归 回归树 模型树比较 前言 虽然许多问题都可以用线性方法取得良好的结果,但现实中也有许多问题是非线性的,用线性 ...

  4. 机器学习算法之CART(分类回归树)概要

    分类回归树  classification and regression tree(C&RT)  racoon 优点 (1)可自动忽略对目标变量没有贡献的属性变量,也为判断属性变量的重要性,减 ...

  5. 机器学习系列之手把手教你实现一个分类回归树

    https://www.ibm.com/developerworks/cn/analytics/library/machine-learning-hands-on5-cart-tree/index.h ...

  6. CART决策树(分类回归树)分析及应用建模

    一.CART决策树模型概述(Classification And Regression Trees)   决策树是使用类似于一棵树的结构来表示类的划分,树的构建可以看成是变量(属性)选择的过程,内部节 ...

  7. ML之DT之CART:分类与回归树CART算法的简介、应用、经典案例之详细攻略

    ML之DT之CART:分类与回归树CART算法的简介.应用.经典案例之详细攻略 目录 分类与回归树CART算法简介 1.CART原理-比较ID3.C4.5 2.CART算法描述 CART算法的案经典案 ...

  8. 分类与回归树(CART)相关知识

    文章目录 CART算法 CART回归树生成 CART分类树的生成 连续值处理: 离散值处理: CART 剪枝 CART算法 分类与回归树(CART)是应用广泛的算法,同样由特征选择.树的生成及剪枝组成 ...

  9. tree | 分类回归树模型

    专注系列化.高质量的R语言教程 推文索引 | 联系小编 | 付费合集 分类回归树(Classification and Regression Trees,CART)模型分为分类树模型和回归树模型:当因 ...

最新文章

  1. Java成员变量与成员方法
  2. 微信小程序在开发中遇到的问题与解决方法
  3. 公共界面_公共建筑东营市档案馆能耗计量分析系统
  4. laragon环境安装新的php版本后弹出php startup
  5. 网站链接跳转安全警告提示l单页源码
  6. 数组与集合转换 java
  7. SpringMVC 运行原理及主要组件
  8. org.springframework.dao.InvalidDataAccessApiUsageException
  9. Nginx——反向代理多个服务器
  10. linux 目录提权,【安全科普】Linux提权——利用可执行文件SUID
  11. Android 开发之 ---- 底层驱动开发(一)
  12. 128 数据库基本操作
  13. yii2 restful的自定义api
  14. 共享计算机管理员权限设置,有共享文件夹。怎么从局域网取得管理员权限
  15. sap abap开发从入门到精通_SAP开发-ABAP数据字典(搜索帮助增强)
  16. 分享国外安全团队及工具
  17. Modern Robotics:机器人的构型空间
  18. 【完美解决】用python自带IDLE 进行turtle画图时,老是报错 AttributeError: module 'turtle' has no attribute 'fd'等问题
  19. 鸿蒙Module引用har方法
  20. Pearson correlation coefficient与Cosine Similarity的区别

热门文章

  1. 水电图纸——防雷术语-4.1
  2. 我做分析师的十年感受 ( 三 )
  3. win10更新后电脑没声音问题
  4. 一键进入教室、一键查找答案,教育App自动跳转、匹配实现方法
  5. 在逆境中成长,人生的财富
  6. android微信分享gif图,android实现截图分享qq,微信
  7. 做了一个小项目-PHP实现人生只有900个月
  8. 新老台商共话“不平凡的5年”:政策礼包开启“另一扇窗”
  9. 考研英语 长难句训练day38
  10. 关于使用二维数组实现输出三角形规律排列数字的Java代码