转载:https://blog.csdn.net/acdreamers/article/details/44664481

在之前介绍过决策树的ID3算法实现,今天主要来介绍决策树的另一种实现,即CART算法

Contents

   1. CART算法的认识

   2. CART算法的原理

   3. CART算法的实现

1. CART算法的认识

Classification And Regression Tree,即分类回归树算法,简称CART算法,它是决策树的一种实现,通

常决策树主要有三种实现,分别是ID3算法,CART算法和C4.5算法。

CART算法是一种二分递归分割技术,把当前样本划分为两个子样本,使得生成的每个非叶子结点都有两个分支,

因此CART算法生成的决策树是结构简洁的二叉树。由于CART算法构成的是一个二叉树,它在每一步的决策时只能

是“是”或者“否”,即使一个feature有多个取值,也是把数据分为两部分。在CART算法中主要分为两个步骤

(1)将样本递归划分进行建树过程

(2)用验证数据进行剪枝

2. CART算法的原理

上面说到了CART算法分为两个过程,其中第一个过程进行递归建立二叉树,那么它是如何进行划分的 ?

代表单个样本的个属性,表示所属类别。CART算法通过递归的方式将维的空间划分为不重

叠的矩形。划分步骤大致如下

(1)选一个自变量,再选取的一个值维空间划分为两部分,一部分的所有点都满足

另一部分的所有点都满足,对非连续变量来说属性值的取值只有两个,即等于该值或不等于该值。

(2)递归处理,将上面得到的两部分按步骤(1)重新选取一个属性继续划分,直到把整个维空间都划分完。

在划分时候有一个问题,它是按照什么标准来划分的 ? 对于一个变量属性来说,它的划分点是一对连续变量属

性值的中点。假设个样本的集合一个属性有个连续的值,那么则会有个分裂点,每个分裂点为相邻

两个连续值的均值。每个属性的划分按照能减少的杂质的量来进行排序,而杂质的减少量定义为划分前的杂质减

去划分后的每个节点的杂质量划分所占比率之和。而杂质度量方法常用Gini指标,假设一个样本共有类,那么

一个节点的Gini不纯度可定义为

其中表示属于类的概率,当Gini(A)=0时,所有样本属于同类,所有类在节点中以等概率出现时,Gini(A)

最大化,此时

有了上述理论基础,实际的递归划分过程是这样的:如果当前节点的所有样本都不属于同一类或者只剩下一个样

本,那么此节点为非叶子节点,所以会尝试样本的每个属性以及每个属性对应的分裂点,尝试找到杂质变量最大

的一个划分,该属性划分的子树即为最优分支。

4. 示例 下面举个简单的例子,如下图

在上述图中,属性有3个,分别是有房情况,婚姻状况和年收入,其中有房情况和婚姻状况是离散的取值,而年

收入是连续的取值。拖欠贷款者属于分类的结果。

假设现在来看有房情况这个属性,那么按照它划分后的Gini指数计算如下

而对于婚姻状况属性来说,它的取值有3种,按照每种属性值分裂后Gini指标计算如下

最后还有一个取值连续的属性,年收入,它的取值是连续的,那么连续的取值采用分裂点进行分裂。如下

根据这样的分裂规则CART算法就能完成建树过程。

建树完成后就进行第二步了,即根据验证数据进行剪枝。在CART树的建树过程中,可能存在Overfitting,许多

分支中反映的是数据中的异常,这样的决策树对分类的准确性不高,那么需要检测并减去这些不可靠的分支。决策

树常用的剪枝有事前剪枝和事后剪枝,CART算法采用事后剪枝,具体方法为代价复杂性剪枝法。可参考如下链接

剪枝参考:http://www.cnblogs.com/zhangchaoyang/articles/2709922.html

CART分类树原理及示例相关推荐

  1. CART回归树原理及示例

    转载:https://cethik.vip/2016/09/21/machineCAST/ 一.概念 CART全称叫Classification and Regression Tree.首先要强调的是 ...

  2. Lesson 8.1Lesson 8.2 决策树的核心思想与建模流程CART分类树的建模流程与sklearn评估器参数详解

    Lesson 8.1 决策树的核心思想与建模流程 从本节课开始,我们将介绍经典机器学习领域中最重要的一类有监督学习算法--树模型(决策树). 可此前的聚类算法类似,树模型也同样不是一个模型,而是一类模 ...

  3. 机器学习(四):CART分类树(基础篇)

    机器学习(四):CART分类树(基础篇) 相关的决策树文章: 机器学习(四)ID3决策树 机器学习(四)C4.5决策树 机器学习(四)CART回归树 机器学习(四)决策树绘图 机器学习(四)剪枝技术 ...

  4. CART回归树原理及python实现

    CART回归树入门学习 一.什么是CART回归算法 二.分类树与回归树区别 三.CART回归树与一般回归算法区别 四.CART回归树创建 4.1 CART回归树的划分 4.2 CART回归树的构建 4 ...

  5. 决策树之CART分类树

    目录 一.基尼系数 (1)离散型属性 (2)连续型属性 二.cart算法的步骤 三.举个栗子 四.代码实现过程 总结: 一.基尼系数 基尼系数(Gini)是一种不等性的度量,经济学上用基尼系数度量收入 ...

  6. 1. 分类与回归树原理(CART)

    1. 简介 分类与回归树(Classification And Regression Tree),采用二分递归分割技术,将当前样本集划分成两个子集,即其结构为二叉树,每个内部节点均只有两个分支.左分支 ...

  7. CART分类与回归树

    一.CART分类与回归树 资料转载: http://dataunion.org/5771.html http://blog.sina.com.cn/s/blog_afe2af380102x020.ht ...

  8. 决策树之CART 算法(回归树,分类树)

    CART 算法,英文全称叫做 Classification And Regression Tree,中文叫做分类回归树. ID3 和 C4.5 算法可以生成二叉树或多叉树,而 CART 只支持二叉树. ...

  9. CART 分类和回归树

    背景 CART(Classification And Regression Tree)可以做分类树也可以做回归树.注意特征可以是不同的类别,标签也可以是不同的类别. 回归树 求最优的数据切分点,首先要 ...

最新文章

  1. C语言中extern关键字的使用
  2. OpenGL 基础图形绘制与投影变换
  3. 【干货】网络中常用的9个命令,超级实用
  4. STP文件服务器,综合监控stp服务器
  5. java 命名管道_Java中命名管道的并发读/写(在Windows上)
  6. ajax提交手机号去数据库验证并返回状态值
  7. leetcode28. 实现 strStr()
  8. java web汽车商城_基于jsp的汽车销售商城系统
  9. iOS7 - NSURLSession
  10. 从“救火”到“井然有序”
  11. js手机端图片弹出方法
  12. 推到 旋转矩阵公式_想知道旋转矩阵的带入公式
  13. RS422-RS485-RS232标准接线
  14. 使用canvas压缩图片
  15. 国产BI报表工具中低调的优秀“模范生”——思迈特软件Smartbi
  16. 线性代数学习笔记——第四十讲——n维向量空间的概念
  17. scrcpy Device disconnected报错
  18. 熟读100句英文,记7000单词
  19. docker目录 /var/lib/docker/containers 日志清理
  20. JSP四大作用域属性范围

热门文章

  1. Ruby‘s Adventrue游戏制作笔记(十二)Unity给角色添加简单的特效
  2. GDPR全文翻译(一)
  3. Java高并发程序设计入门
  4. 带阻滤波器对周期性噪声消除matlab实现
  5. 二维数组的传参调用写法
  6. exlc表格怎么换行_excel如何换行_表格怎么换行上下换行
  7. WEB应用开发设计实验报告四
  8. 如何写一个vscode插件
  9. vscode的插件使用
  10. 2018版本webstorm的安装与汉化!【最新,超全,超详细!】