机器学习之决策树算法

article/2025/10/14 22:29:43

1-1 基本流程
决策树是一个有监督分类与回归算法。
决策树的生成只考虑局部最优,相对的,决策树剪枝则考虑全局最优。

一、概念:
决策树:是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果,本质是一颗由多个判断节点组成的树。

二、划分依据:
①熵
物理学上,熵 Entropy 是“混乱” 程度的量度。
系统越有序,熵值越低;系统越混乱或者分散,熵值越高
信息理论:
1、当系统的有序状态一致时,数据越集中的地方熵值越小,数据越分散的地方熵值越大。这是从信息的完整性上进行的描述。
2、当数据量一致时,系统越有序,熵值越低;系统越混乱或者分散,熵值越高。这是从信息的有序性上进行的描述。

假如事件A的分类划分是(A1,A2,…,An),每部分发生的概率是(p1,p2,…,pn),那信息熵定义为公式如下:

二分法:
如果有32个球队,准确的信息量应该是:
H = -(p1 * logp1 + p2 * logp2 + … + p32 * logp32),其中 p1, …, p32 分
别是这 32 支球队夺冠的概率。当每支球队夺冠概率相等都是 1/32 的时:H = -(32 * 1/32 * log1/32) = 5 每个事件概率相同时,熵最大,这件事越不确定。

②特征选择–信息增益及增益率
信息增益:以某特征划分数据集前后的熵的差值。熵可以表示样本集合的不确定性,熵越大,样本的不确定性就越大。因此可以使用划分前后集合熵的差值来衡量使用当前特征对于样本集合D划分效果的好坏。
信息增益 = entroy(前) - entroy(后)
信息增益公式如下:
D:为样本集
Ent(D):整体熵
a:离散型属性
v: 是a属性里可能的取值节点
D^v:第v个分支节点包含了D中所有在属性a上取值为a^v的样本

信息增益越大,熵被消除,不确定性越小,应作为最优特征

增益率:增益比率度量是用前面的增益度量Gain(S,A)和所分离信息度量SplitInformation(如上例的性别,活跃度等)的比值来共同定义的。

公式如下:

例子:
如下图,第一列为论坛号码,第二列为性别,第三列为活跃度,最后一列用户是否流失

中Positive为正样本( 已流失) , Negative为负样本
( 未流失) , 下面的数值为不同划分下对应的人数。可得到三个熵:
整体熵:

 

性别熵:

 性别信息增益:

活跃度熵:
E(a1) = 0
E(a2) = 0.7219
E(a3) = 0

活跃度信息增益:

活跃度的信息增益比性别的信息增益大,也就是说,活跃度对用户流失的影响比性别大。
在做特征选择或者数据分析的时候, 我们应该重点考察活跃度这个指标。

③基尼值和基尼指数
基尼值Gini(D):从数据集D中随机抽取两个样本,起类别标记不一致的概率,故,Gini
(D)值越小,数据集D的纯度越高。
基尼系数公式如下:


基尼指数Gini_index(D):一般,选择使划分后基尼系数最小的属性作为最优化分属性
基尼指数公式如下:

基尼增益:

例题:

总结如下:

1,对数据集非类标号属性{是否有房,婚姻状况,年收入}分别计算它们的Gini系数增益,取Gini系数增益值最大的属性作为决策树的根节点属性。

2、根节点的Gini系数为:
Gini(是否拖欠贷款)

3, 当根据是否有房来进行划分时, Gini系数增益计算过程为 :
Gini(左子节点)=

Gini(右子节点)=

{ 是否有房}=

4, 若按婚姻状况属性来划分, 属性婚姻状况有三个可能的取值{married,
single, divorced}, 分别计算划分后的Gini系数增益。
分组为{married} | {single,divorced}时

 

{ 婚姻状况}=

当分组为{single} | {married,divorced}时

{ 婚姻状况}=

当分组为{divorced} | {single,married}时

{ 婚姻状况}=

对比计算结果,根据婚姻状况属性来划分根节点时取Gini系数增益最大的分组作为划分结果即
{married} | {single,divorced}

小结:
决策树的生成:通常使用信息增益最大,信息增益比最大和基尼指数最小作为最优特征,从根节点开始,递归的产生决策树。相当于用信息增益或其他准则不断地选取局部最优的特征,或将训练集分割为能够基本正确分了的子集

一,决策树构建的基本步骤如下:

开始讲所有记录看作一个节点
遍历每个变量的每一种分割方式,找到最好的分割点
分割成两个节点N1和N2
对N1和N2分别继续执行2-3步,直到每个节点足够“纯”为止。
[Source]https://www.cnblogs.com/bourneli/archive/2013/03/15/2961568.html
二,决策树的变量可以有两种:
1) 数字型(Numeric):变量类型是整数或浮点数,如前面例子中的“年收入”。用“>=”,
“>”,“<”或“<=”作为分割条件(排序后,利用已有的分割情况,可以优化分割算法的时间复杂度)。
2) 名称型(Nominal):类似编程语言中的枚举类型,变量只能重有限的选项中选取,比如前面例子中的“婚姻情况”,只能是“单身”,“已婚”或“离婚”,使用“=”来分割。

三,如何评估分割点的好坏?
如果一个分割点可以将当前的所有节点分为两类,使得每一类都很“纯”,也就是同一类的记录较多,那么就是一个好分割点。
比如上面的例子,“拥有房产”,可以将记录分成了两类,“是”的节点全部都可以偿还债务,非常
“纯”;“否”的节点,可以偿还贷款和无法偿还贷款的人都有,不是很“纯”,但是两个节点加起来的纯度之和与原始节点的纯度之差最大,所以按照这种方法分割。构建决策树采用贪心算法,只考虑当前纯度差最大的情况作为分割点。

常见的决策树类型:

1-2 常见决策树类型及剪枝
1为什么要剪枝
随着树的增长, 在训练样集上的精度是单调上升的,然而在独立的测试样例上测出的精度先上升后下降。
原因1: 噪声、 样本冲突, 即错误的样本数据。
原因2: 特征即属性不能完全作为分类标准。
原因3: 巧合的规律性, 数据量不够大。
2常用的剪枝方法
1.1 预剪枝:
(1)每一个结点所包含的最小样本数目,例如10,则该结点总样本数小于10时,则不
再分;
(2)指定树的高度或者深度,例如树的最大深度为4;
(3)指定结点的熵小于某个值,不再划分。随着树的增长, 在训练样集上的精度是调上升的, 然而在独立的测试样例上测出的精度先上升后下降。

1.2 后剪枝:
后剪枝,在已生成过拟合决策树上进行剪枝,可以得到简化版的剪枝决策树。
主要有四种:
(1)REP-错误率降低剪枝
(2)PEP-悲观剪枝
(3)CCP-代价复杂度剪枝
(4)MEP-最小错误剪枝

结论:
决策树的剪枝,由于生成的决策树存在过拟合问题,需要对它进行剪枝,以简化学到的决策树。决策树的剪枝,往往从已生成的树上剪掉一些叶节点或叶节点以上的子树,并将其父节点或根节点作为新的叶节点,从而简化生成的决策树模型。

ID3不能剪枝
C4.5和CRAT都可以剪枝
 


http://chatgpt.dhexx.cn/article/1IVpUd9L.shtml

相关文章

决策树挑出好西瓜

一、决策树 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;中间过程…

数据挖掘--决策树ID3算法(例题)

决策树分类算法 决策树分类算法通常分为两个步骤&#xff1a;决策树生成和决策树修剪。 决策树生成算法的输入参数是一组带有类别标记的样本&#xff0c;输出是构造一颗决策树&#xff0c;该树可以是一棵二叉树或多叉树。二叉树的内部结点&#xff08;非叶子结点&#xff09;…