决策树原理总结(ID3、C4.5、CART)+ 常见面试问题

article/2025/10/14 22:27:15

系统梳理树类型算法原理加常见面试问题
类容按照决策树AdaboostGBDTXGBoostLightGBM 顺序进行梳理
本次的重点类容是决策树的CART树
在这里插入图片描述

ID3、C4.5介绍请转移到:ID3、C4.5的原理与案例介绍

1. CART树

ID3与C4.5虽然可以通过多叉树尽可能的挖掘特征信息,但是随着数据量的增加,其决策树分支也会大量增多。CART算法的二分法简化了决策树的规模,提高了生成决策树的效率。

1.1 CART分类树实现过程

输入: 训练集D,基尼系数的阈值,切分的最少样本个数阈值
第一步: 决策树生成,基于训练数据集生成尽可能大的决策树;
1) 假设此时节点的数据集为D,总共有 n 个特征;
2) 对第 i (i <= n) 特征进行Gini系数的求解;首先,将 i 特征的数值进行排序(a1,a2,…am),CART取相邻两样本值的平均数做划分点,一共有m-1个,其中第 i 个划分点Ti表示为:Ti = (ai + ai+1)/2遍历所有的切分点小于切分点的数值分到左子树大于切分点的数值样本分到右子树,计算此时的Cini系数;
3) 遍历完所有特征的全部切分点之后,选择Gini系数最小的特征,将数据集D按照此特征的最佳切分点分到左子树和右子树中;
4)对两个子结点递归地调用步骤l~3,直至满足停止条件。
5)算法停止计算的条件是结点中的样本个数小于预定阈值,或样本集的Gini系数小于预定阈值(样本基本属于同一类),或者没有更多特征。
第二步: 决策树剪枝,用验证集对已生成的树进行剪枝并选择最优子树,此时损失函数值最小。

输出: 分类树T

预测:对生成的CART分类树做预测时,假如测试集里的样本落到了某个叶子节点,而该节点里有多个训练样本。则该测试样本的类别为这个叶子节点里概率最大的类别。

1.2 CART分类树案例

假设有K个类,样本点属于第k类的概率为Ck/D(Ck为k类情况下的样本数,D为总样本数),则概率分布的gini指数的定义为:
在这里插入图片描述
Gini(D)基尼指数反映了从数据集中随机抽取两个样本,其类别标记不一致的概率。因此基尼指数越小,则数据集纯度越高。

如果样本集合D根据某个特征A被切分点a分割为D1,D2两个部分,那么在特征A的条件下,集合D的gini指数的定义为:
在这里插入图片描述
案列:
**加粗样式**
特征:有房情况,婚姻状况和年收入
目标值:是否拖欠贷款

原数据的Gini系数为:

Gini(是否拖欠贷款) = 1−(3/10) ^ 2−(7/10) ^ 2 = 0.42

遍历所有特征,进行Gini系数的计算:
有无房子取值有2种:
在这里插入图片描述
Ginie增益 = 0.42 - 0.343 = 0.077

婚姻状况取值有3种:
在这里插入图片描述
最佳Gini增益 = 0.42 - 0.3 = 0.12

收入情况是连续值

在这里插入图片描述
最佳Gini增益 = 0.42 - 0.3 = 0.12

从上可知,婚姻状况与收入情况的最佳增益都为 0.12,此时取最先进行计算的特征(即婚姻状况)作为数据的划分点。

分裂后的数据同上原理进行分裂,最终可以得到以下决策树:
在这里插入图片描述

1.3 剪枝

当分类回归树划分的太细时,噪声数据产生过拟合情况,因此可以通过剪枝来解决。剪枝方法有很多,比如:代价复杂性剪枝、最下误差剪枝、悲观误差剪枝等等。但常用的是代价复杂性剪枝法
在这里插入图片描述
每个alpha对应一棵树T,alpha是一个动态值;

2. 面试题

1.讲解完成决策树建树过程
答:自上而下,将样本数据依照树的生成分配到对应子树中;每个内部节点表示一个特征,叶子节点表示一个类别。一开始,所有样本积聚在根节点,选择当前最佳的特征,将样本分到不同的子节点,再根据子节点的特征进一步划分,直至所有样本被归到某一个类别中。
2.既然信息增益可以作为划分依据,为什么C4.5还使用信息增益比?
答:当以信息增益作为划分标准时,如果某个特征的取值很多,且根据其对特征进行划分,将会产生很多分支,数据被划分的很细,甚至可以细到一个节点只有一个,这样会导致过拟合。信息增益比,通过对信息增益除以每个特征的固有属性,该属性包括了特征的取值数量,取值越多,固有属性值越大,对其惩罚越大,这样改善了ID3所存在的问题。
3. CART为什么使用基尼系数?
答:基尼系数的意义是:从数据集中随机抽取两个样本,其类别不同的概率,其值越小,则数据集纯度越高。相对于信息增益和信息增益率作为决策指标,基尼指数的运算量比较小,也易于理解,这是cart算法使用基尼指数的主要目的。

4.ID3、ID4.5、CART的异同
在这里插入图片描述
5.CART做分类和回归的区别是什么?
答:主要两点不同:划分依据不同分类以基尼系数的大小来度量划分点的优劣情况;回归以方差的大小来度量划分点的优劣情况。预测方式不同分类取叶子节点概率最大的类别作为预测类别;回归取最终叶子节点的均值或者中位数作为输出值。
6.在分类情况下,CART如何处理离散型和连续性特征?
答:在处理离散型数据和连续性特征的时候,都是首先将按照特征的取值进行排序,再依据相连两个值的平均值将样本分到左子树和右子树中,遍历所有可能,寻找到特征的最佳划分点。
7. 在分类情况下,CART如何处理缺失值?
答:cart使用的是“代理分裂”的方式来对缺失值问题;首先,缺失特征的gini需要乘以非缺失值的比例,如果该缺失值恰好gini增益最大,那么再去遍历剩余的特征,寻找gini增益相近的特征作为代理特征,根据代理特征对样本进行划分。
8. 为什么信息增益偏向取值较多的特征?
答:主要通过公式计算,随着特征取值的增多,样本将会被分的很细,此时的信息熵增益也会随之增加,当样本取值与样本数量相等时,每个样本都被单独分到一个叶子节点中,此时的信息增益最大,但是也造成了过拟合;
9.决策树出现过拟合的原因及解决方法?
答:训练集少,特征多,构造出的决策时比较完美的分类成功,但是这样会把训练集中一些数据的特征当作成整体数据的特点,就是过分的拟合了这些特征,而这些特征并不能代表全部数据,即过拟合了。剪枝防止过拟合,使模型在测试数据上变现良好,更加鲁棒。
10.简单解释一下预剪枝和后剪枝?
答:预剪枝: 控制深度、当前节点数、分裂值对测试集的准确度提升大小来限制树是否继续生长下去;
后剪枝: 生成决策树、自下而上利用交叉验证是否进行剪枝。
11.剪枝过程可以参考哪些参数?
答:可以参考划分之后,c4.5看信息增益率有没有增加,cart看gini增益有没有增加,主要看剪枝前后,模型在验证集上的表现是否得到改善。
12.决策树在做分类的过程中,会对特征进行重复选取吗?
答:cart决策树中特征可以复用,由于cart树在生成树的时候,通过二叉法搜索特征分裂最佳的阈值,在不同的子树下,阈值可能不同,且带来的效益也不同,所以可以通过复用提高模型的预测能力。

参考

https://www.cnblogs.com/wqbin/p/11689709.html
https://blog.csdn.net/e15273/article/details/79648502
https://zhuanlan.zhihu.com/p/139523931
https://zhuanlan.zhihu.com/p/85731206
https://zhuanlan.zhihu.com/p/461032990
https://cloud.tencent.com/developer/article/1486711
https://blog.csdn.net/qq_42722197/article/details/122780760
https://zhuanlan.zhihu.com/p/90825660
https://www.xiaohongshu.com/discovery/item/62778690000000000102d883
http://www.360doc.com/content/22/0415/08/99071_1026582336.shtml


http://chatgpt.dhexx.cn/article/frHLs5aS.shtml

相关文章

机器学习之决策树算法

1-1 基本流程 决策树是一个有监督分类与回归算法。 决策树的生成只考虑局部最优&#xff0c;相对的&#xff0c;决策树剪枝则考虑全局最优。 一、概念&#xff1a; 决策树&#xff1a;是一种树形结构&#xff0c;其中每个内部节点表示一个属性上的判断&#xff0c;每个分支代表…

决策树挑出好西瓜

一、决策树 1、基本介绍 决策树&#xff08;decision tree&#xff09;是一种基本的分类与回归方法。其主要算法有&#xff1a;ID3、C4.5、CART。以及进化后的C4.5算法C5.0、分类有极大提升的Tsallis等算法。这些算法的区别就在于选择最优特征的方式。但C5.0的核心原理与C4.5…

1.决策树C4.5算法

文章目录 一、概述二、改进表现三、优缺点四、决策树1.特征选择2.决策树的生成3.决策树的剪枝 一、概述 C4.5是一系列用在机器学习和数据挖掘的分类问题中的算法。它的目标是监督学习&#xff1a;给定一个数据集&#xff0c;其中的每一个元组都能用一组属性值来描述&#xff0c…

python实现三种经典决策树算法

决策树实现ID3、C4.5、CART算法 Author: 浅若清风cyfDate: 2020/12/15 一、创建数据集 手动 def createDataSet():"""创建测试的数据集:return:"""dataSet [# 1[青绿, 蜷缩, 浊响, 清晰, 凹陷, 硬滑, 好瓜],# 2[乌黑, 蜷缩, 沉闷, 清晰, 凹…

数据挖掘--决策树C4.5算法(例题)

C4.5算法与ID3算法的不同点&#xff1a; &#xff08;1&#xff09;分支指标采用增益比例 &#xff08;2&#xff09;数值属性的处理 &#xff08;3&#xff09;处理缺少属性值的训练样本 &#xff08;4&#xff09;使用K次迭代交叉验证&#xff0c;评估模型的优劣程度&#xf…

决策树算法总结(上:ID3,C4.5决策树)

文章目录 一、决策树原理1.1 决策树简介1.2 基本概念 二、数学知识2.1 信息熵2.2 条件熵:2.3 信息增益 三、ID3决策树3.1 特征选择3.2 算法思路3.3 算法不足 四、C4.5决策树算法4.1 处理连续特征4.2 C4.5决策树特征选取4.3 处理缺失值4.4 过拟合问题 五、决策树C4.5算法的不足 …

决策树分类算法的案例(代码实现及运行测试)

1 案例需求 我们的任务就是训练一个决策树分类器&#xff0c;输入身高和体重&#xff0c;分类器能给出这个人是胖子还是瘦子。 所用的训练数据如下&#xff0c;这个数据一共有10个样本&#xff0c;每个样本有2个属性&#xff0c;分别为身高和体重&#xff0c;第三列为类别标签…

决策树cart算法实战

1、使用决策树预测隐形眼镜类型&#xff0c;隐形眼镜数据集(lenses.csv)是非常著名的数据集&#xff0c;它包含很多患者眼部状况的观察 条件以及医生推荐的隐形眼镜类型。隐形眼镜类型包括硬材质、软材质以及不适合佩戴隐形眼镜。 要求&#xff1a;读取lenses.csv中的隐形眼镜数…

人工智能决策树大作业

人工智能技术: 机器学习之决策树大作业 以西瓜集 2.0 为建模数据&#xff0c;采用交叉验证方法进行数据训练集和验证集的划分&#xff0c;实现决策树 “预剪枝”算法&#xff0c;要求:尽可能充分利用有限的西瓜集 2.0 数据所提供信息&#xff0c;建立泛化能力强的 决策树模型。…

决策树算法:原理与python实现案例

文章目录 决策树算法浅析决策树的介绍决策树最佳划分的度量问题决策树python案例 决策树算法浅析 决策树的介绍 决策树的定义&#xff1a; 决策树是一种逼近离散值目标函数的方法&#xff0c;学习到的函数使用树结构进行表示&#xff0c;完成决策任务。这里决策树可以是分类树…

决策树实例-ID3

决策树-ID3实例 参考书籍&#xff1a; 《机器学习》周志华&#xff0c;第1版 《统计学习方法》李航&#xff0c;第2版 用来记录自己对书中知识的理解&#xff0c;加强自己的理解和记忆&#xff0c;同时提出自己迷惑不解的地方&#xff0c;提高自己编辑的表达能力。 代码参考博…

决策树算法及Python 代码示例

决策树是一种基于树形结构的算法&#xff0c;用于在一系列决策和结果之间建立模型。它通过对特征和目标变量之间的关系进行划分&#xff0c;来预测目标变量的值。 决策树算法示例: 假设我们有一组数据&#xff0c;其中包含天气&#xff0c;温度&#xff0c;湿度和是否出门的特…

决策树一CART算法(第四部分)

决策树一CART算法(第四部分) CART树的剪枝&#xff1a;算法步骤 输入&#xff1a;CART算法生成的决策树。 输出&#xff1a;最优决策树T 设 K 0 &#xff0c; T T 0 K0&#xff0c;TT_0 K0&#xff0c;TT0​ &#xff0c;从完整的决策树出发 ​ k代表迭代次数&#xff0c;先…

决策树算法

决策树 决策树(Decision Tree)首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析,本质上是通过一系列规则对数据进行分类的过程 决策树是一种典型的分类方法。其中: 每个内部结点表示一个属性上的判断每个分支代表一个判断结果的输出每…

决策树ID3、C4.5和CART算法例子详解

决策树 决策树是附加概率结果的一个树状的决策图&#xff0c;是直观的运用统计概率分析的图法。机器学习中决策树是一个预测模型&#xff0c;它表示对象属性和对象值之间的一种映射&#xff0c;树中的每一个节点表示对象属性的判断条件&#xff0c;其分支表示符合节点条件的对…

决策树算法原理及案例

机器学习在各个领域都有广泛的应用&#xff0c;特别在数据分析领域有着深远的影响。决策树是机器学习中最基础且应用最广泛的算法模型。本文介绍了机器学习的相关概念、常见的算法分类和决策树模型及应用。通过一个决策树案例&#xff0c;着重从特征选择、剪枝等方面描述决策树…

通过实例理解决策树算法(ID3,C4.5,Cart算法)

&#xff08;一&#xff09;实例&#xff1a;使用ID3算法给出“好苹果”的决策树 &#xff08;二&#xff09;决策树的工作原理 我们在做决策树的时候&#xff0c;会经历两个阶段&#xff1a;构造和剪枝。 构造原理——构造的过程就是选择什么属性作为节点的过程&#xff0c;…

数据挖掘之C4.5决策树算法

1.决策树算法实现的三个过程&#xff1a; 特征选择&#xff1a;选择哪些特征作为分类的标准是决策树算法的关键&#xff0c;因此需要一种衡量标准来进行特征的确定&#xff0c;不同的决策树衡量标准不同。例如C4.5决策树就是以信息增益率来作为衡量标准。决策树的生成&#xf…

决策树ID3例题

表格里统计了14天的气象数据&#xff0c;特征属性包括outlook,temperature,humidity,windy&#xff0c;类别属性为是否打球(play),用ID3算法生成决策树。 解答过程&#xff1a;

决策树算法与案例

决策树算法介绍 树模型 决策树&#xff1a;从根节点开始一步步走到叶子节点&#xff08;决策&#xff09;。所有的数据最终都会落到叶子节点&#xff0c;既可以做分类也可以做回归 树的组成 根节点&#xff1a;第一个选择点&#xff1b;非叶子节点与分支&#xff1a;中间过程…