【决策树】深入浅出讲解决策树算法(原理、构建)

article/2025/11/11 1:54:05
  • 本文收录于《深入浅出讲解自然语言处理》专栏,此专栏聚焦于自然语言处理领域的各大经典算法,将持续更新,欢迎大家订阅!
  • ​个人主页:有梦想的程序星空
  • ​个人介绍:小编是人工智能领域硕士,全栈工程师,深耕Flask后端开发、数据挖掘、NLP、Android开发、自动化等领域,有较丰富的软件系统、人工智能算法服务的研究和开发经验。
  • ​如果文章对你有帮助,欢迎关注点赞收藏订阅。

1、决策树的背景

最早的决策树算法是由Hunt等人于1966年提出,Hunt算法是许多决策树算法的基础,包括ID3、C4.5和CART等。

决策树算法是一种有监督学习算法,利用分类的思想,根据数据的特征构建数学模型,从而达到数据的筛选,决策的目标。

2、决策树的原理

决策树( Decision Tree) 又称为判定树,是数据挖掘技术中的一种重要的分类与回归方法,它是一种以树结构(包括二叉树和多叉树)形式来表达的预测分析模型。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。

一般,一棵决策树包含一个根节点,若干个内部结点和若干个叶结点

叶结点对应于决策结果,其他每个结点对应于一个属性测试。每个结点包含的样本集合根据属性测试的结果划分到子结点中,根结点包含样本全集,从根结点到每个叶结点的路径对应了一个判定的测试序列。决策树学习的目的是产生一棵泛化能力强,即处理未见示例强的决策树。

使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。

3、决策树的构建

  1. 特征选择:选取有较强分类能力的特征。
  2. 决策树生成:典型的算法有 ID3 和 C4.5, 它们生成决策树过程相似, ID3 是采用信息增益作为特征选择度量, 而 C4.5 采用信息增益比率。
  3. 决策树剪枝:剪枝原因是决策树生成算法生成的树对训练数据的预测很准确, 但是对于未知数据分类很差, 这就产生了过拟合的现象。涉及算法有CART算法。

4、决策树的划分选择

:物理意义是体系混乱程度的度量。

信息熵:表示事物不确定性的度量标准,可以根据数学中的概率计算,出现的概率就大,出现的机会就多,不确定性就小(信息熵小)。

(1)信息增益(ID3使用的划分方式)

假设训练数据集D和特征A,根据如下步骤计算信息增益:

第一步:计算数据集D的经验熵:

H(D) = - \sum\limits_{k = 1}^K {\frac{​{|{C_k}|}}{​{|D|}}{​{\log }_2}\frac{​{|{C_k}|}}{​{|D|}}}

其中,|{C_k}|为第k类样本的数目,|D|为数据集D的数目。

第二步:计算特征A对数据集D的经验条件熵H(D|A)

H(D|A) = \sum\limits_{i = 1}^n {\frac{​{|{D_i}|}}{​{|D|}}H({D_i})} = - \sum\limits_{i = 1}^n {\frac{​{|{D_i}|}}{​{|D|}}} \sum\limits_{k = 1}^K {\frac{​{|{D_{ik}}|}}{​{|{D_i}|}}{​{\log }_2}} \frac{​{|{D_{ik}}|}}{​{|{D_i}|}}

第三步:计算信息增益:

g(D,A) = H(D) - H(D|A)

一般而言,信息增益越大,则意味着使用属性A来进行划分所获得的“纯度提升” 越大。因此,我们可使用信息增益来进行决策树的划分属性选择。ID3决策树学习算法就是以信息增益为准则来选择划分属性的。

(2)信息增益率(C4.5所用划分准则)

特征A对于数据集D的信息增益比定义为:

{g_R}(D,A) = \frac{​{g(D,A)}}{​{​{H_A}(D)}}

其中,{H_A}(D) = - \sum\limits_{i = 1}^n {\frac{​{|{D_i}|}}{​{|D|}}{​{\log }_2}\frac{​{|{D_i}|}}{​{|D|}}}称为数据集D关于A的取值熵。

增益率准则就可取值数目较少的属性有所偏好,因此,C4.5算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。

(3)基尼指数

分类问题中,假设有K个类,样本点属于k的概率{p_k},则概率分布的基尼指数:

{\mathop{\rm Gini}\nolimits} (p) = \sum\limits_{k = 1}^K {​{p_k}(1 - {p_k})} = 1 - \sum\limits_{k = 1}^K {p_k^2}

二分类问题:{\mathop{\rm Gini}\nolimits} (p) = 2p(1 - p)

对给定的样本集合D,基尼指数:

CART决策树使用“基尼指数”来选择划分属性。数据集D的纯度可用基尼值来度量,Gini(D)越小,则数据集的纯度越高。CART生成的是二叉树,计算量相对来说不是很大,可以处理连续和离散变量,能够对缺失值进行处理。

5、决策树的剪枝

剪枝:顾名思义就是给决策树 "去掉" 一些判断分支,同时在剩下的树结构下仍然能得到不错的结果。之所以进行剪枝,是为了防止或减少 "过拟合现象" 的发生,是决策树具有更好的泛化能力。

具体做法:去掉过于细分的叶节点,使其回退到父节点,甚至更高的节点,然后将父节点或更高的叶节点改为新的叶节点。

剪枝的两种方法

预剪枝:在决策树构造时就进行剪枝。在决策树构造过程中,对节点进行评估,如果对其划分并不能再验证集中提高准确性,那么该节点就不要继续王下划分。这时就会把当前节点作为叶节点。

后剪枝:在生成决策树之后再剪枝。通常会从决策树的叶节点开始,逐层向上对每个节点进行评估。如果剪掉该节点,带来的验证集中准确性差别不大或有明显提升,则可以对它进行剪枝,用叶子节点来代填该节点。

注意:决策树的生成只考虑局部最优,相对地,决策树的剪枝则考虑全局最优。

6、决策树的优缺点

优点:

速度快:计算量相对较小,且容易转化成分类规则。只要沿着树根向下一直走到叶,沿途的分裂条件就能够唯一确定一条分类的谓词。
准确性高:挖掘出的分类规则准确性高,便于理解,决策树可以清晰的显示哪些字段比较重要。
非参数学习,不需要设置参数。

缺点:

决策树很容易过拟合,很多时候即使进行后剪枝也无法避免过拟合的问题,因此可以通过设置树深或者叶节点中的样本个数来进行预剪枝控制;
决策树属于样本敏感型,即使样本发生一点点改动,也会导致整个树结构的变化,可以通过集成算法来解决;

关注微信公众号【有梦想的程序星空】,了解软件系统和人工智能算法领域的前沿知识,让我们一起学习、一起进步吧!


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

相关文章

协方差矩阵推导

协方差定义:,其中分别为向量的均值。 设已知矩阵 则 样本自由度m-1,设,,则

协方差矩阵到底有什么用?

我们知道,线性代数,可以完成空间上的线性变换——旋转,缩放。对于协方差,我们隐约可以想到,它能解释一个随机变量,它在各个维度的变化程度。但是,这种认识其实还是处于比较浅层次的。数学嘛&…

22协方差矩阵 matlab,协方差协方差矩阵【matlab实例】

[今天看论文的时候又看到了协方差矩阵这个破东西,以前看模式分类的时候就特困扰,没想到现在还是搞不清楚,索性开始查协方差矩阵的资料,恶补之后决定马上记录下来,嘿嘿~ 协方差矩阵 协方差也只能处理二维问题,那维数多了自然就需要计算多个协方差,比如n维的数据集就需要计…

透彻理解协方差矩阵

2018-12-30 11:27:05 协方差及协方差矩阵有着特别广泛的应用,在多元高斯分布、高斯过程、卡尔曼滤波等算法中多有用到,本文从协方差、协方差矩阵讲起,并重点讲解协方差矩阵在高斯分布中的用法及意义,也是讲解高斯过程、贝叶斯优化…

使用matlab编写协方差矩阵计算矩阵

Dr.Can在他的教学视频(【卡尔曼滤波器】2_数学基础_数据融合_协方差矩阵_状态空间方程_观测器问题)中使用了足球运动员的数据介绍了协方差矩阵的概念和计算方法,原始数据如下图,那么协方差矩阵到底是什么?他有什么用&a…

PCA与协方差矩阵

一、协方差矩阵 一个维度上方差的定义: 协方差的定义: (a) 协方差就是计算了两个维度之间的相关性,即这个样本的这两个维度之间有没有关系。 协方差为0,证明这两个维度之间没有关系,协方差为正&…

浅谈协方差矩阵2

在之前的博客中介绍过一次协方差矩阵: 浅谈协方差矩阵_Yunlong_Luo的博客-CSDN博客 这次希望在之前的基础上,把协方差矩阵介绍的更清楚一些,本文的很多素材来自于: A geometric interpretation of the covariance matrix 期望和…

浅析协方差矩阵

统计学的基本概念 概率论里面有几个基本的概念,分别是:样本的均值、方差、标准差。首先,我们给定一个含有n个样本的集合,下面给出这些概念的公式描述: 均值: 标准差: 方差: 均值描述…

协方差矩阵用途

协方差两个用途: 各有缺陷 第二个用途:马氏距离(曼哈顿距离) 例如 欧式距离定义 马氏距离: 马氏距离意义: 案例: 鸢尾花案例 随机向量的变换 实际案例: 随机变量的线性组合

协方差矩阵-Covariance Matrix

首先我们要明白,协方差实际是在概率论和统计学中用于衡量两个变量的总体误差,当然方差是协方差的一种特殊情况,即当两个变量是相同情况。它表示的是两个变量的总体的误差,这与只表示一个变量误差的方差不同。如果两个变量的变化趋势一致&…

协方差矩阵(Covariance Matrix)

群体均值和协方差矩阵定义 (Population Mean and Covariance Matrix) 1、学术定义 2、常规定义 协方差矩阵中每个元素的求法 用中文来描述,就是: 协方差(i,j)(第i列的所有元素-第i列的均值)*&#xff…

超全面的协方差矩阵介绍

阅读本文需要具备一定的线性代数基础,通过本文,你将对协方差矩阵有全面的理解。 定义 一组随机变量,共n个: X ( X 1 , X 2 , . . . , X n ) T \mathbf{X}(X_1,X_2,...,X_n)^T X(X1​,X2​,...,Xn​)T 两个随机变量的协方差&am…

统计篇(四)-- 协方差矩阵的理解

本文将针对协方差矩阵做一个详细的介绍,其中包括协方差矩阵的定义、数学背景与意义、计算公式的推导、几何解释,主要整理自下面两篇博客: peghoty-关于协方差矩阵的理解:http://blog.csdn.net/itplus/article/details/11452743协…

欧拉函数的两种求法

引入:互质的概念:如果 正整数 a 与b 之间只有一个公约数1 则称a与 b 互为质数。 欧拉函数的定义: 1-N 中 与N 互质的数的个数 记作 Phi(N) 在算数基本定理中任意自然数能进行质因数拆分,那么由容斥原理&a…

求欧拉函数的方法

求欧拉函数的一般方法: 1.我们知道一个素数p的欧拉函数f(p)p-1;那么p的k次幂,即np^k,则容易证明:f(n)p^k-p^(k-1); 证明:已知少于p^k的数有p^k-1,其中与p^k不互质的数有p^(k-1)-1个&…

欧拉函数的求法(三种)

欧拉函数定义 求欧拉函数的方法 1.公式法 2.线性筛法 根据三条性质来解题的: //1、当p为质数的时候:phi(p)p-1 //2、当p与i互质时有: phi(p*i)phi(p)*phi(i) //3、当i%p0时有:phi(p*i)p*phi(i) 具体实现参考链接: 1.求欧拉函数…

欧拉函数算法

一、欧拉函数值 欧拉函数又称为Phi函数 欧拉函数的定义为:对于正整数n,他的欧拉函数值是不大于n的正整数中与n互质的正整数的个数(互质:除1外没有其他最大公约数)。 据此,可以得到求某个数欧拉值的代码&am…

数学知识:欧拉函数

文章目录 前言一、欧拉函数,欧拉定理二、例题,代码AcWing 873. 欧拉函数AC代码 AcWing 874. 筛法求欧拉函数本题解析AC代码 三、时间复杂度 前言 复习acwing算法基础课的内容,本篇为讲解数学知识:欧拉函数,关于时间复…

欧拉函数相关概念

一、欧拉函数 给定正整数n,欧拉函数φ(n)不大于n且和n互质的正整数的个数(包括1)。φ(1)1 φ ( n ) Σ i 1 n [ g c d ( i , n ) 1 ] \varphi \left( n \right) \varSigma_{i1}^{n}\left[ gcd\left( i,n \right) 1 \right] φ(n)Σi1n​[gcd(i,n)1] 完全余数集…

欧拉函数与欧拉定理

转载请说明出处:http://blog.csdn.net/leader_one/article/details/77619762 说在前面 按照惯例,出于尊重,还是简单介绍一下这位多产的学术伟人 莱昂哈德欧拉(Leonhard Euler ,1707年4月15日~1783年9月1…