详解决策树算法

article/2025/11/11 1:45:43

决策树

1.1 决策树定义

何为决策树,顾名思义,就像树枝状的决策算法,通过各个节点的“决策”,实现对任务的精准分类或回归,决策树常用来处理分类问题,即使你以前没接触过决策树,你也可以通过下图来了解其基本原理:
在这里插入图片描述
上图就是决策树的决策过程,如果你在某个约会网站上想匹配你心中的那个ta,那你肯定不想在一大群人中很费时的寻找符合你的她,此时,你设想如果有一种算法,能自动的帮你识别哪个美女才是符合你的标准,那该多好啊!通过上图这样一套逻辑,那就能实现是否和美女约会的算法,类似的,这种决策的过程就是决策树的一般思路。

1.2 决策树的基本流程

一般的,一颗决策树包含一个根节点,若干个内部节点和若干个叶节点,叶节点对应决策结果,其他每个节点则对应属性测试,每个节点包含的样本集根据属性测试被划分到子节点中,根节点包含样本全集。决策树遵循的是一种“分而治之”的思维,其一般流程如下:
对于:
训练集D = {(x1,y1), (x2,y2), (x3,y3), …(xm,ym)}
标签集 A = {a1, a2, a3, … am}
过程

  • a. 生成节点node
  • b. if D 中样本全部属于某一类A, then
  • c. 将node标记为A类叶节点, return
  • d. end if
  • e. 从A中选择最优划分属性ax
  • f. for ax 的每一个值 do
  • g. 为node生成一个分支
  • h. 如果分支为空,则将分支节点标记为叶节点,否则从头开始继续划分
  • i. end if
  • j. end for

可以看出上面的伪代码显示出决策树的生成是一个递归过程,简单来说就是不停判断数据集中的每个子项是偶属于同一类,如果不属于,则寻找最好的划分方法,然后划分数据集,以此循环,知道所有数据集被划分完毕。

1.3 决策树的划分选择

从1.2得知,决策树的最重要的步骤就是选择最优划分属性!!!因此
最优划分属性有这么几个作用

    1. 可以大幅减少决策过程,提高决策的准确性
    1. 可以提高模型的泛化能力,这个可以这么理解,人类识别猫和老鼠的过程,也是决策的过程,人类从动物的叫声、外形、某些局部特征即可分辨,而不是从毛发、脚掌大小、气味、体重、颜色、粪便等等所有特征来决策的,因此,最佳划分属性就好比最容易分辨的特征,能够减少决策提升决策的准确性。

1.3.1 信息增益

信息熵市度量样本纯度最常用的一种指标,其中熵定义为信息的期望值。
信息的定义:如果待分类的事物可能划分在多个分类之中,则符号x的信息定义为:
l ( x i ) = − l o g 2 p ( x i ) l(x_i) = -log_2p(x_i) l(xi)=log2pxi)
其中 p ( x i ) p(x_i) p(xi)是选择该分类的概率
为了计算熵,我们需要计算所有类别所有可能包含的信息期望值,我们都知道概率相同时期望的公式为:
μ = ∑ x f ( x ) \mu = \sum xf(x) μ=xf(x)
考虑到每种分类的概率可能不同,则信息熵的公式就是把期望公式中的 f ( x ) f(x) f(x)换为信息的定义公式即可,如下:
H = − ∑ i = 1 n p ( x i ) l o g 2 p ( x i ) H = - \sum_{i=1}^n p(x_i)log_2p(x_i) H=i=1np(xi)log2p(xi)
我们知道,要想训练集D的纯度越高,即第i类样本在x中所占的比例越大,即 p ( x i ) p(x_i) p(xi)的值越大,即H越小,D越纯 。而
信 息 增 益 = e n t r o y ( 前 ) − e n t r o y ( 后 ) 信息增益 = entroy(前) - entroy(后) =entroy()entroy()
前面我们已经得知标签集A有m个可能的分类,若用A来对样本集D来进行划分,则会产生m个分支节点,其中第m个分支节点包含了m中所有在属性A上取值为 a m a^m am的样本,记为 D m D^m Dm,由于每个分支节点中包含的 D m D^m Dm不同,因此我们需要赋予其一定的权重,记作 ∣ D m ∣ ∣ D ∣ \frac{|D^m|}{|D|} DDm, 即为信息增益Gain:
G a i n ( D , a ) = H ( D ) − ∑ m = 1 m ∣ D m ∣ ∣ D ∣ H ( D m ) Gain(D, a) = H(D) - \sum_{m=1}^m \frac{|D^m|}{|D|}H(D^m) Gain(D,a)=H(D)m=1mDDmH(Dm)
因此,信息增益Gain越大,表明用标签集A来划分训练集D所获得的纯度提升越大,如著名的ID3决策树算法就是用信息增益来划分决策节点。

1.3.2 增益率

再次考虑最优划分属性,假如我们给每个样本赋予一个编号,且把编号也假如到决策中,则编号的信息增益最大,若有m个样本,则划分为m类,每个节点仅仅包含一个样本,这样当然其纯度最大,但其没有实际应用价值,因此,C4.5决策树算法不再使用信息增益来划分,而实使用增益率。信息增益如同求最大利润,样本属性越多,其利润自然越大,所以信息增益对取值数数目较多的属性比价友好;而增益率如同求最大利润增长方向,样本属性越少,计算二者的比率就越容易,因此能够在一定程度上克服信息增益的缺陷,对可取值数目较少的属性较友好。其公式为:
G a i n _ r a t i o ( D , a ) = G a i n ( D , a ) S p l i t I n f o r m a t i o n ( D , a ) Gain\_ratio(D, a) = \frac {Gain(D, a)}{SplitInformation(D, a)} Gain_ratio(D,a)=SplitInformation(D,a)Gain(D,a)
其中SplitInformation 等于:
S p l i t I n f o r m a t i o n ( D , a ) = − ∑ m = 1 m ∣ D m ∣ ∣ D ∣ l o g 2 ∣ D m ∣ ∣ D ∣ SplitInformation(D, a) = -\sum_{m=1}^m\frac{|D^m|}{|D|}log_2\frac{|D^m|}{|D|} SplitInformation(D,a)=m=1mDDmlog2DDm

1.3.3 基尼指数

另外一种著名的决策树算法CART使用基尼指数来选择划分属性,基尼指数是指从样本集D中随机抽取两个样本,其类别不一致的概率,其概率越小,纯度越高。其公式为:
G i n i _ i n d e x ( D , a ) = ∑ m = 1 m ∣ D m ∣ ∣ D ∣ G i n i ( D m ) Gini\_index(D,a) = \sum_{m=1}^{m}\frac{|D^m|}{|D|}Gini(D^m) Gini_index(D,a)=m=1mDDmGini(Dm)
其中
G i n i ( D ) = ∑ k = 1 ∣ y ∣ ∑ k ≠ k ‘ p k p k ’ Gini(D) = \sum_{k=1}^{|y|}\sum_{k \ne {k^‘}}{}p_kp_{k^’} GiniD=k=1yk=kpkpk
需要注意的是CART算法永远只生成二叉树,其非叶节点只能为二分类变量,一般为yes or no,其他算法如ID3可以有两个及以上的子节点。

1.4 决策树的优化

1.4.1 剪枝处理

如同现实世界中的树木一样需要定期修剪,以确保其生长方向,美观等,决策树也需要进行“剪枝”来对抗过拟合(Overfitting),我们通过决策树的划分选择得知,决策树有时为了尽可能的正确区分样本,有时会造成分支过多,此时如同把训练集中自身的一些特点都融入一般性质,就如同黑猫是猫,而白猫不是猫一样,十分荒诞。为此决策树需要进行剪枝,一般来说,剪枝的策略有:

    1. 预剪枝
    1. 后剪枝

预剪枝

. 预剪枝是指在决策树生成过程中,对每个节点在划分前先进行评估,如果当前节点的划分不能带来决策树泛化性能的提升,则停止划分并将此节点标记为叶节点。

后剪枝
后剪枝是指先训练一颗决策树,然后自底向上的对非叶节点进行考察,如果将该节点对应的子树替换为叶节点能提升模型的泛化能力,则将该子树替换为叶节点。

1.5 决策树的应用范围

决策树既可以用于分类任务也可以用于回归任务,一般来说,用于分类任务的较多,且不适应环型数据,或圆形数据,对数据的旋转很敏感,具体体现在数据中就是对数据的微小变化敏感,因此在训练过程中尤为要注意,避免过拟合。

1.6 参考资料

    1. 周志华《机器学习》
    1. 王静源,贾玮,边蕤 邱俊涛《机器学习实战》
    1. 李锐,李鹏,曲亚东,王斌《机器学习实战》

下一篇将利用sklearn中的决策树进行实战练习,欢迎查看我的其他博客,点击这查看


http://chatgpt.dhexx.cn/article/9PmGdPwj.shtml

相关文章

决策树算法及其实现

决策树算法及其实现 1 什么是决策树 决策树(Decision Tree)是一种基本的分类与回归方法,本文主要讨论分类决策树。决策树模型呈树形结构,在分类问题中,表示基于特征对数据进行分类的过程。它可以认为是if-then规则的…

决策树算法 (CART分类树)

决策树算法 (ID3,C4.5) CART回归树 决策树的后剪枝 在决策树算法原理(ID3,C4.5)中,提到C4.5的不足,比如模型是用较为复杂的熵来度量,使用了相对较为复杂的多叉树,只能处理分类不能处理回归。对这些问题&a…

决策树算法总结

决策树算法常用于解决分类问题,该方法的优势在于其数据形式非常容易理解。 概述 决策树(decision tree)是一类常见的机器学习方法.以二分类任务为例,我们希望从给定训练数据集学得一个模型用以对新示例进行分类&…

决策树算法原理简介

1,决策树概念简介 不同的算法模型适合于不同类型的数据。 首先,在了解树模型之前,自然想到树模型和线性模型有什么区别呢?其中最重要的是,树形模型是一个一个特征进行处理,之前线性模型是所有特征给予权重相加得到一个…

机器学习——决策树算法

文章目录 一、决策树介绍二、利用信息增益选择最优划分属性三、ID3代码实现1.jupyter下python实现2. 使用sklearn实现ID3 四、C4.5算法实现五、CART算法实现六、总结参考文献 一、决策树介绍 决策树是一种基于树结构来进行决策的分类算法,我们希望从给定的训练数据集…

机器学习算法:决策树算法

1.基本定义 决策树(Decision Tree)是一种基本的分类和回归算法。该算法模型呈树形结构,主要由结点和有向边组成。结点又分为两种类型:内部结点和叶子结点。内部结点表示在一个属性或特征上的测试,每一个结点分枝代表一个测试输出,…

决策树算法应用及结果解读

作者:林骥 来源:林骥 引言 本文是我写的人工智能系列的第 8 篇文章,文末有前面 7 篇文章的链接,推荐你阅读、分享和交流。 1. 决策树算法简介 决策树是一种应用非常广泛的算法,比如语音识别、人脸识别、医疗诊断、模式…

机器学习算法(3)之决策树算法

前言:首先,在了解树模型之前,自然想到树模型和线性模型有什么区别呢?其中最重要的是,树形模型是一个一个特征进行处理,之前线性模型是所有特征给予权重相加得到一个新的值。决策树与逻辑回归的分类区别也在…

机器学习基础 决策树算法

文章目录 一、决策树算法简介二、决策树分类原理1. 熵1.1 概念1.2 案例 2. 决策树的划分依据一----信息增益2.1 概念2.2 案例 3. 决策树的划分依据二----信息增益率3.1 概念3.2 案例3.2.1 案例一3.2.2 案例二 3.3 为什么使用C4.5要好 4. 决策树的划分依据三 ----基尼值和基尼指…

【机器学习常见算法】决策树算法(含示例代码)

决策树(Decision Tree)是一种非参数的有监督学习方法,它能够从一系列有特征和标签的数据中总结出决策规 则,并用树状图的结构来呈现这些规则,以解决分类和回归问题。决策树算法容易理解,适用各种数据,在解决各 种问题时…

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

本文收录于《深入浅出讲解自然语言处理》专栏,此专栏聚焦于自然语言处理领域的各大经典算法,将持续更新,欢迎大家订阅!​个人主页:有梦想的程序星空​个人介绍:小编是人工智能领域硕士,全栈工程…

协方差矩阵推导

协方差定义:,其中分别为向量的均值。 设已知矩阵 则 样本自由度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个样本的集合,下面给出这些概念的公式描述: 均值: 标准差: 方差: 均值描述…

协方差矩阵用途

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