Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[机器学习算法]决策树引论和CART算法

[机器学习算法]决策树引论和CART算法

作者头像
TOMOCAT
发布于 2020-06-09 03:21:21
发布于 2020-06-09 03:21:21
7410
举报

决策树综述

1.决策树的工作原理

决策树decision tree分类法是一种简单但广泛使用的分类技术。以是否贷款违约的二分类问题为例,当我们希望根据给定的训练集习得一个模型对新出现的贷款人进行分类时,经常需要从大量的贷款申请单中识别出来哪些贷款人是劣质的贷款人(容易拖欠贷款)。想象一下客户经理和助手针对一个贷款者进行的如下对话:

经理:他有房吗? 助手:没有 经理:他结婚了吗? 助手:没有,一个单身汉 经理:他年收入高于70K吗? 助手:不足70K 经理:那驳回他的申请

经理根据贷款者的各方面“特征”一步步分析后进行的多次决策就相当于一个简单的决策树过程。下面我们用一个决策树模型模拟经理的决策过程。

image.png

2.决策树的构成

决策树是一种由节点和有向边组成的层次结构,树中包含三种节点:

  • 根节点root node:它没有入边,但有零条或多条出边,是决策树首次划分的节点。
  • 内部节点internal node:恰有一条入边和两条或多条出边。
  • 叶子节点left node:恰有一条入边但没有出边。每个叶子节点都被赋予一个类标签。
3.如何建立决策树模型

机器学习中,决策树是一个预测模型,代表着的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶节点则对应从根节点到该叶节点所经历的路径所表示的对象的值。机器学习中的经典决策树算法包括ID3C4.5CART等,但最基本的原理都是一样的。 理论上讲,对于给定的属性集可以构造的决策树数目达到指数级,尽管某些决策树比其他决策树更加准备,但是由于搜索空间是指数规模的,找出最佳决策树在计算上是不可行的尽管如此,人们还是开发了一些有效的算法能够在合理的时间内构造出具有一定准确率的次最优决策树。 这些算法通常采用贪心策略,在选择划分数据的属性时,采取一系列局部最优决策来构造决策树,Hunt算法就是这样一种算法,它是包括ID3C4.5CART在内算法的基础

4.决策树的发展:Hunt-ID3-C4.5-CART

虽然基于多棵弱决策树的BaggingRandom ForestBoostingTree ensemble模型更加普遍且准确率更优,但是“完全生长”的决策树由于其简单直观的特性具有广泛的应用。除此之外,想要掌握Tree ensemble模型也绕不开组成其的弱分类树原理。 一般而言,一棵“完全生长”的决策树包括特征选择、决策树构建和剪枝三个过程。在Hunt算法的基础上,决策树算法发展出较为流行的ID3C4.5CART算法,同样这些算法都是基于启发式的贪心算法简历的,并不能保证建立全局最优的决策树。

image.png

我们这里简单介绍三种决策树算法

  • ID3决策树按照“最大信息增益”原则选择最优划分特征(特征一经划分在之后的过程中不再参与划分),然后按照该特征的所有取值划分数据集缺点是会优先选择属性值较多的特征(该特征信息增益较大);不能处理属性值是连续型变量的特征。
  • C4.5算法:在ID3算法基础上使用信息增益率gain ratio替代信息增益information gain缺点:信息增益率会优先选择可取值数目较少的属性,并且对于连续属性需要扫描排序,性能不佳。
  • CART算法:CART使用基尼系数Gini index来选择划分属性,并且采用二分递归分割技术生成结构简洁的二叉树,同时CART既能处理分类问题又能处理回归问题。

关于决策树的各种算法的细节会在决策树部分详细介绍,本文只介绍CART决策树。

CART决策树特点

CART树全称是Classification and Regression Tree。递归地将当前数据集分割为两个子数据集,形成一棵二叉树。CART既能处理连续型变量又能处理离散型变量,利用训练数据递归的划分特征空间进行决策树构造,用验证集进行剪枝

  • 二叉树:内部节点属性取值分为“是”(归到左分支)和“否”(归到右分支)。一般而言,二叉树的精度会高于多叉树。
  • 组成:特征选择、树生成和剪枝
  • 适用:既可用于分类也可用于回归
  • 特征选择标准:Gini系数。对于离散型属性选择该属性产生最小Gini 系数的子集作为分裂子集;对于连续型属性考虑所有可能的分裂点。

CART分类树(输出为离散型变量)

1.算法

输入:训练数据集

,停止计算的条件 输出CART决策树 算法:根据训练数据集

,从根节点开始,递归地对每个节点进行如下操作,构建二叉决策树

  • 设当前节点的训练数据集为

,计算每个现有属性

对该数据集

系数。同时,对每个属性

的每个可能取值

,根据样本对

的测试为“是”或“否”将

二分为

两个部分,计算

后加权得到

系数

  • 对于所有可能的属性

和他们所有可能的分割点

,选择

系数最小的属性和其对应的分割点作为最优属性和最优分割点,并以此从现节点生成两个子节点,将训练数据集

依属性测试条件

分配到两个子节点中

  • 对两个子节点递归进行上两步,直到满足停止条件。
2.相关公式

数据集

的不纯度用

系数度量:

:表示分类的类别个数

:数据集

中第

类样本所占的比例 纯度:直观来说,数据集

的不纯度

反映了从

中随机抽取两个样本,其类别标记不一致的概率,当

越小时,纯度越高

当数据集

根据属性

在某一取值

上进行二元分割后得到

,

两个子集。

增益

表示数据集

根据属性

分割后集合

的不纯度增益。

对于属性

,分别计算

每个取值对应的

增益,然后选取其中最小值作为属性

得到的最优二分方案。然后对于数据集

,计算所有属性的最优二分方案,选择其中的最小值作为数据集的最优分割属性。

CART回归树(输出为连续型变量)

用户数值预测的决策树可分为两类。第一类称为回归树,是在20世纪80年代作为CART算法的一部分引入的。尽管它被称为回归树,但是并没有使用线性回归方法,而是基于到达叶节点的输出平均值做预测的。第二类称为模型树,这是一种鲜为人知的算法,但功能要比回归树强大,模型树和回归树以大致相同的方式生长,但是在每个叶子节点处会根据到达该叶子节点的数据建立多元线性回归模型。

1.回归树算法原理

假设

分别是输入和输出变量(连续型变量),在训练集所在的输入空间中,递归地将每个区域划分为两个子区域,根据每个子区域上输出值的平均值作为预测结果,构建二叉树。 训练数据集:

选择最优划分属性j和划分属性值s:

:表示被二元划分的两个输入空间

:表示

空间对应的固定输出值 原理:遍历属性

和对应的划分属性值

,找到使该式最小的

选定

对后,划分区域并决定相应的输出值:

继续对两个子区域调用上述步骤,直到满足停止条件,最终将输入空间划分为

个区域

,生成决策树:

2.回归树的问题

下图是我对一个数据集应用回归树和模型树算法后真实值(横轴)与预测值(纵轴)的散点图。可以看到回归树只能预测有限个值(这取决于划分的输出空间个数

),本质上仍然是在做分类,然后对每个分类赋予到达该叶节点的类平均值。相比之下,模型树在回归方面的表现更加出色。

image.png

3.模型树:回归树的进阶版本

前面讲回归树的缺点时我们提到回归树的预测值是有限的,对于每一个叶节点赋予一个固定的值。模型树和回归树的生长方式一致,但是在每个叶子节点都建立的对应的多元线性回归模型,从而实现真正意义上的“回归”。

写在最后

我们简单梳理了一下决策树的原理和发展历程,并详细介绍了CART分类和回归树的算法,但还有一些关于决策树算法的其他内容我们还没有介绍。例如一棵完全生长的决策树存在过拟合的问题,我们会专门介绍决策树的剪枝;再比如基于简单决策树的Tree ensemble模型。

Reference

[1] https://blog.csdn.net/baimafujinji/article/details/53269040

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
机器学习--决策树算法(CART)
​ 我们知道,在ID3算法中我们使用了信息增益来选择特征,信息增益大的优先选择。在C4.5算法中,采用了信息增益比来选择特征,以减少信息增益容易选择特征值多的特征的问题。但是无论是ID3还是C4.5,都是基于信息论的熵模型的,这里面会涉及大量的对数运算。能不能简化模型同时也不至于完全丢失熵模型的优点呢?有!CART分类树算法使用基尼系数 来代替信息增益比,基尼系数代表了模型的不纯度,基尼系数越小,则不纯度越低,特征越好。这和信息增益(比)是相反的。
Kindear
2021/11/24
1.2K0
机器学习--决策树算法(CART)
机器学习 | 决策树模型(一)理论
决策树(Decision tree)是一种基本的分类与回归方法,是一种非参数的有监督学习方法。
数据STUDIO
2021/06/24
1.7K0
机器学习17:决策树模型
决策树分为两大类:分类树和回归树,分类树用于分类标签值,回归树用于预测连续值,常用算法有ID3、C4.5、CART等。
用户5473628
2019/08/08
1K0
机器学习17:决策树模型
最常见核心的决策树算法—ID3、C4.5、CART(非常详细)
决策树是一个非常常见并且优秀的机器学习算法,它易于理解、可解释性强,其可作为分类算法,也可用于回归模型。本文将分三篇介绍决策树,第一篇介绍基本树(包括 ID3、C4.5、CART),第二篇介绍 Random Forest、Adaboost、GBDT,第三篇介绍 Xgboost 和 LightGBM。
Datawhale
2019/11/05
6.4K0
最常见核心的决策树算法—ID3、C4.5、CART(非常详细)
《大话机器学习算法》决策树—看这一篇就够了
这是一个新的系列,主要讲机器学习的相关算法,希望想入门的你能耐心看完《写在前面的话》
小一不二三
2020/04/18
7550
决策树算法原理(下)
    在决策树算法原理(上)这篇里,我们讲到了决策树里ID3算法,和ID3算法的改进版C4.5算法。对于C4.5算法,我们也提到了它的不足,比如模型是用较为复杂的熵来度量,使用了相对较为复杂的多叉树,只能处理分类不能处理回归等。对于这些问题, CART算法大部分做了改进。CART算法也就是我们下面的重点了。由于CART算法可以做回归,也可以做分类,我们分别加以介绍,先从CART分类树算法开始,重点比较和C4.5算法的不同点。接着介绍CART回归树算法,重点介绍和CART分类树的不同点。然后我们讨论CART树的建树算法和剪枝算法,最后总结决策树算法的优缺点。
刘建平Pinard
2018/08/14
7790
决策树算法原理(下)
决策树学习笔记(三):CART算法,决策树总结
推荐导读:本篇为树模型系列第三篇,旨在从最简单的决策树开始学习,循序渐进,最后理解并掌握复杂模型GBDT,Xgboost,为要想要深入了解机器学习算法和参加数据挖掘竞赛的朋友提供帮助。
1480
2019/07/15
8770
决策树学习笔记(三):CART算法,决策树总结
【机器学习】决策树
本文介绍了 ID3,C4.5,CART三种基本的决策树模型。首先介绍了决策树的特征选择,包括信息增益,信息增益率、基尼指数、最小均方差分别对应分类树ID3、C4.5、CART、回归树CART。然后介绍了决策树建树的一般流程、对比分类树和回归树建树的区别。最后介绍了树模型中避免过拟合问题的剪枝方法,包括前剪枝和后剪枝。
yuquanle
2020/04/01
7520
【机器学习】决策树
C4.5决策树及CART决策树
信息增益比本质: 是在信息增益的基础之上乘上一个惩罚参数。特征个数较多时,惩罚参数较小;特征个数较少时,惩罚参数较大。惩罚参数:数据集D以特征A作为随机变量的熵的倒数。
用户10950404
2024/07/30
2390
C4.5决策树及CART决策树
决策树算法:ID3,C4.5,CART
对于基本树我将大致从以下四个方面介绍每一个算法:思想、划分标准、剪枝策略,优缺点。
zhangjiqun
2024/12/14
3720
决策树算法:ID3,C4.5,CART
西瓜书4-决策树
从西瓜书和统计学习方法中学习了决策树的相关知识,同时在网上查找了树的知识点,最重要的是二叉树和树3种的遍历方式
皮大大
2021/03/02
1.2K0
决策树与随机森林
首先,在了解树模型之前,自然想到树模型和线性模型有什么区别呢?其中最重要的是,树形模型是一个一个特征进行处理,之前线性模型是所有特征给予权重相加得到一个新的值。决策树与逻辑回归的分类区别也在于此,逻辑回归是将所有特征变换为概率后,通过大于某一概率阈值的划分为一类,小于某一概率阈值的为另一类;而决策树是对每一个特征做一个划分。另外逻辑回归只能找到线性分割(输入特征x与logit之间是线性的,除非对x进行多维映射),而决策树可以找到非线性分割。
西西木木
2020/06/02
1.5K0
决策树与随机森林
【白话机器学习】算法理论+实战之决策树
如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的, 常见的机器学习算法:
Datawhale
2020/03/04
7790
【白话机器学习】算法理论+实战之决策树
【一分钟知识】决策树-ID3,C4.5,CART
决策树是一种自上而下,对样本数据进行树形分类的过程,由节点和有向边组成。节点分为内部节点和叶子节点,其中每个内部节点表示一个特征或属性,叶子节点表示类别。决策树常用于分类问题于回归问题,完全生长的决策树模型具有简单直观、解释性强的特点。
zenRRan
2019/08/15
1.2K0
【一分钟知识】决策树-ID3,C4.5,CART
机器学习算法复习手册——决策树
本手册整理自机器学习各相关书籍、网络资料、个人的理解与实践。总体编写宗旨: ①一看就懂; ②用20%的文字,涵盖80%的内容。 至于剩下的20%,一般属于比较偏、难的部分,建议自行查询相关书籍资料学习。而只用20%的文字,则代表手册里面几乎没有废话,也只有极少数必要的例子。
beyondGuo
2019/10/29
4120
机器学习算法复习手册——决策树
机器学习(6)——决策树前言:
前言: 通过第前面的学习介绍了机器学习回归模型创建的流程,并且知道了机器学习要做的事情是找到目标函数,优化它,通过每次迭代都使目标函数值最小,最优解就是目标函数最小化时侯对应的模型参数。而这一章会介绍一种和回归模型流程相反的模型—决策树,它是通过建立树模型之后,才得到的损失函数,并且成为衡量决策树模型的指标。有时候数据特征众多且巨大,可以利用这种直观的树结构对数据特征进行切分,然后再构建模型。 本章主要涉及到的知识点有: 信息熵 决策树 决策树优化 树剪枝算法 决策树可视化 算法思想:从决策到决策树 本节首
DC童生
2018/04/27
1.4K0
机器学习(6)——决策树前言:
机器学习算法之决策树
"语言艺术是以善意为基础。变相的讽刺,拐弯抹角的谩骂,体现的不是机灵,而是素质问题,毕竟谁都不是傻瓜。
小闫同学啊
2020/02/26
6940
机器学习--决策树算法
在生活中,“树”这一模型有很广泛的应用,事实证明,它在机器学习分类和回归领域也有着深刻而广泛的影响。在决策分析中,决策树可以明确直观的展现出决策结果和决策过程。如名所示,它使用树状决策模型。它不仅仅是在数据挖掘中用户获取特定目标解的策略,同时也被广泛的应用于机器学习。
Kindear
2021/10/26
7180
机器学习(12)之决策树总结与python实践(~附源码链接~)
关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 前言 在(机器学习(9)之ID3算法详解及python实现)中讲到了ID3算法,在(机器学习(11)之C4.5详解与Python实现(从解决ID3不足的视角))中论述了ID3算法的改进版C4.5算法。对于C4.5算法,也提到了它的不足,比如模型是用较为复杂的熵来度量,使用了相对较为复杂的多叉树,只能处理分类不能处理回归等。对于这些问题, CART算法大部分做了改进。由于CART算法可以
昱良
2018/04/04
4.3K0
机器学习(12)之决策树总结与python实践(~附源码链接~)
决策树算法:ID3,C4.5,CART
其实用一下图片能更好的理解LR模型和决策树模型算法的根本区别,我们可以思考一下一个决策问题:是否去相亲,一个女孩的母亲要给这个女海介绍对象。
大数据技术与机器学习
2019/11/20
1.4K0
决策树算法:ID3,C4.5,CART
相关推荐
机器学习--决策树算法(CART)
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档