Cart算法

Cart是Classification and regression tree的缩写,即分类回归树。它和前面的ID3, C4.5等算法思想一致都是通过对输入空间进行递归划分并确定每个单元上预测的概率分布,进而进行回归和分类任务。只不过由于任务的不同, 所以回归树和分类树的划分准则并不相同。

Cart生成

回归树

模型

上面说到,我们将特征空间划分为一个个小的单元,假设共有\(M\)个,那么对于回归任务来说,每个单元就应该对于一个数值,我们分别记作\(R_i\)和\(c_i\)。那么决策树模型就可以表示为

\[f(x) = \sum_{m=1}^M c_m I(x\in R_m)
\]

即同一个所属同一个单元内的样本的值相同。

那么我们的每个单元上的预测误差就可以用下面的式子表示

\[L = \sum_{x_i\in R_m} (y_i - f(x_i))^2= \sum_{x_i\in R_m} (y_i - c_m)^2
\]

令\(L^{\prime}=0\),我们可以得到

\[\hat{c}_m = ave(y_i|x_i\in R_m)=\frac{\sum_{x_i\in R_m}y_i}{|R_m|}
\]

但问题的难点在于如何对决策空间进化划分,文中给出了一种启发式的方法。

划分方法

选择第\(j\)个变量\(x^{(j)}\)和它的取值s,作为切分变量和切分点,并定义两个区域(两个划分集合)

\(R_1(j, s)=\{x|x^{(j)} \leq s\}\)以及\(R_2(j, s)=\{x|x^{(j)} > s\}\)

这样我们可以通过求解下式来找到每次最佳划分变量和切分点。

\[\begin{equation}
\mathop\min_{j,s} [\mathop\min_{\hat{c_1}} \sum_{x_i\in {R_1(j,s)}} (y_i - \hat{c_1})^2+\mathop\min_{\hat{c_2}} \sum_{x_i\in {R_2(j,s)}} (y_i - \hat{c_2})^2]
\end{equation}
\]

其中\(j\)从1到所有存在的特征,\(s\)取遍\(x^{(j)}\)所有可能的取值。

生成算法

Step1:求解公式(1)得到切分变量与切分点

Step2:划分子区域\(R_1(j, s)=\{x|x^{(j)} \leq s\}\)以及\(R_2(j, s)=\{x|x^{(j)} > s\}\),并决定子区域的输出值

Step3:递归调对子区域递归调用上述步骤,直至满足停止条件

Step4:划分为\(M\)个子区域,生成决策树完毕。

分类树

Cart分类树和前面的ID3以及C4.5大致相同,主要不同的地方在于划分方法(特征选择)有所区别,我们将重点对此部分进行阐述。

划分方法

Cart分类树使用基尼指数选择最有特征(表示集合\(D\)的不确定性,成正相关),同时决定该特征的最优二值切分点。

样本的基尼指数计算如下:

\[\mathrm {Gini}(D) = 1 - \sum_{k=1}^{K} (\frac{\vert C_k \vert}{|D|})^2
\]

定义在特征\(A\)的条件下,集合\(D\)的基尼指数为:

\[\mathrm {Gini}(D) = \frac{|D_1|}{|D|}\mathrm {Gini}(D_1) + \frac{|D_2|}{|D|}\mathrm {Gini}(D_2)
\]

生成算法

Step1:对现有数据集的每个特征的每个取值计算其基尼指数并选择最小的特征\(A\)及其取值\(A=a\)作为切分点。

Step2:依照切分点将数据集划分为两个部分\(D_1\)和\(D_2\)。

Step3:继续对两个子集进行递归操作,直至达到停止条件(样本数小于阈值,样本基本属于同一类等等)。

决策树模型(4)Cart算法的更多相关文章

  1. python数据分析算法(决策树2)CART算法

    CART(Classification And Regression Tree),分类回归树,,决策树可以分为ID3算法,C4.5算法,和CART算法.ID3算法,C4.5算法可以生成二叉树或者多叉树 ...

  2. 深入了解机器学习决策树模型——C4.5算法

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第22篇文章,我们继续决策树的话题. 上一篇文章当中介绍了一种最简单构造决策树的方法--ID3算法,也就是每次选择一个特 ...

  3. 决策树模型 ID3/C4.5/CART算法比较

    决策树模型在监督学习中非常常见,可用于分类(二分类.多分类)和回归.虽然将多棵弱决策树的Bagging.Random Forest.Boosting等tree ensembel 模型更为常见,但是“完 ...

  4. R_Studio(cart算法决策树)对book3.csv数据用测试集进行测试并评估模型

    对book3.csv数据集,实现如下功能: (1)创建训练集.测试集 (2)用rpart包创建关于类别的cart算法的决策树 (3)用测试集进行测试,并评估模型 book3.csv数据集 setwd( ...

  5. 决策树-预测隐形眼镜类型 (ID3算法,C4.5算法,CART算法,GINI指数,剪枝,随机森林)

    1. 1.问题的引入 2.一个实例 3.基本概念 4.ID3 5.C4.5 6.CART 7.随机森林 2. 我们应该设计什么的算法,使得计算机对贷款申请人员的申请信息自动进行分类,以决定能否贷款? ...

  6. 决策树模型比较:C4.5,CART,CHAID,QUEST

    (1)C4.5算法的特点为: 输入变量(自变量):为分类型变量或连续型变量. 输出变量(目标变量):为分类型变量. 连续变量处理:N等分离散化. 树分枝类型:多分枝. 分裂指标:信息增益比率gain ...

  7. 机器学习总结(八)决策树ID3,C4.5算法,CART算法

    本文主要总结决策树中的ID3,C4.5和CART算法,各种算法的特点,并对比了各种算法的不同点. 决策树:是一种基本的分类和回归方法.在分类问题中,是基于特征对实例进行分类.既可以认为是if-then ...

  8. 决策树-Cart算法二

    本文结构: CART算法有两步 回归树的生成 分类树的生成 剪枝 CART - Classification and Regression Trees 分类与回归树,是二叉树,可以用于分类,也可以用于 ...

  9. 统计学习五:3.决策树的学习之CART算法

    全文引用自<统计学习方法>(李航) 分类与回归树(classification and regression tree, CART)模型是由Breiman等人于1984年提出的另一类决策树 ...

  10. 决策树之CART算法

    顾名思义,CART算法(classification and regression tree)分类和回归算法,是一种应用广泛的决策树学习方法,既然是一种决策树学习方法,必然也满足决策树的几大步骤,即: ...

随机推荐

  1. Taurus.MVC WebMVC 入门开发教程5:表单提交与数据验证

    前言: 在本篇 Taurus.MVC WebMVC 入门开发教程的第五篇文章中,我们将学习如何处理表单提交和进行数据验证. 这是 Web 开发中非常重要的一部分,因为它涉及到用户输入数据的处理和有效性 ...

  2. 【Azure 存储服务】Azure Data Lake Storage (ADLS) Gen2 GRS Failover是否支持自动切换或者手动切换到灾备的终结点呢?

    问题描述 在Azure的存储服务中,介绍灾备恢复和Storage Account故障转移的文档中,有一句话"Account failover is not supported for sto ...

  3. Task Manager 的设计简述

    讲解 Task Manager 之前,在这里先介绍一些 Task Manager 会使用到的概念术语. 图数据库 Nebula Graph 中,存在一些长期在后台运行的任务,我们称之为 Job.存储层 ...

  4. Android Handler实现子线程与子线程、主线程之间通信

    一.子线程向主线程传值: 首选在主线程里创建一个Handler 1 Handler mHandler = new Handler(){ 2 @Override 3 public void handle ...

  5. 从华为WeAutomate数字机器人论坛,看政企领域的“政务新智理”

    从华为WeAutomate数字机器人论坛,看政企领域的"政务新智理" 从政务治理到"政务新智理",华为WeAutomate在政务领域的思考与实践 华为WeAut ...

  6. centos 定时任务

    想法 看见一个别的项目,每天扒bing的背景,然后 生成个列表,然后数据就一天天的增加,创意非常好 有时间研究下 关键字 centos 定时任务 基于centos7系统定时任务创建 https://b ...

  7. Linux 使用 selenium 环境配置

    1.需要安装 Chrome 浏览器 yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64 ...

  8. windows 10 wsl 环境 docker 无法正常启动 -The system cannot find the file specified

    错误信息: error during connect: in the default daemon configuration on Windows, the docker client must b ...

  9. 记录--这个前端Api管理方案会更好?

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 简介 大家好,前端小白一枚,目前接触后台管理系统比较多,经常遇到不同对象的增删改查的接口,如何对Api进行一个有比较好的管理是个问题.在学 ...

  10. 记录:Openlayers6.5 实现轨迹回放

    这篇分享我记录到的一个案例,废话不多说,上代码 import Feature from 'ol/Feature' import LineString from 'ol/geom/LineString' ...