首页 > 其他分享 >【机器学习】简析决策树

【机器学习】简析决策树

时间:2024-08-16 21:22:28浏览次数:14  
标签:剪枝 水果 机器 增益 简析 数据 节点 决策树

决策树的直观理解

决策树是一种常用的机器学习算法,用于分类和回归任务。为了让你理解决策树的原理,我将用一个形象的类比来解释。

想象一下,你在参加一个问答游戏,目的是猜出某个人正在想的一种水果。这个人会依次回答你提出的各种问题,直到你猜到正确的水果。

比如,你可能会问:

  1. 这个水果的颜色是红色的吗?
  2. 它的大小比拳头大吗?
  3. 它的味道是甜的吗?

每个问题的答案都会把你引导到下一个问题,直到你缩小了可能的水果范围,最终得到了正确的答案。这个问答的过程就像在一棵树上移动,每个问题就是一棵树上的一个分叉点(节点),根据回答选择不同的分支,最终到达叶子节点(叶子节点就是最终的猜测结果)。

下面是一个假设回答上述问题的决策树示意:

这个水果的颜色是红色的吗 它的大小比拳头大吗 它的味道是甜的吗 西瓜 草莓 芒果 柠檬

决策树的基本思想

决策树的核心思想是通过递归地选择最优的特征来分割数据,以最大化每一步的“纯度”(即使得每个节点内的数据尽可能同质化)。常用的纯度衡量指标包括信息增益(Information Gain)、基尼指数(Gini Index)等。

决策树的数学定义

1. 数据集

我们假设有一个数据集 D = { ( x i , y i ) } i = 1 n D = \{(x_i, y_i)\}_{i=1}^n D={(xi​,yi​)}i=1n​,其中:

  • x i ∈ R d x_i \in \mathbb{R}^d xi​∈Rd 是第 i i i 个样本的特征向量, d d d 是特征的维数。
  • y i y_i yi​ 是与 x i x_i xi​ 对应的标签,对于分类问题 y i ∈ { 1 , 2 , … , C } y_i \in \{1, 2, \dots, C\} yi​∈{1,2,…,C} ,而对于回归问题 y i ∈ R y_i \in \mathbb{R} yi​∈R 。
2. 树的结构

决策树是一个递归的二叉树结构,每个节点 t t t 都与数据集的一个子集 D t ⊆ D D_t \subseteq D Dt​⊆D 相关联。树包含以下几种节点:

  • 根节点(Root Node):树的最顶层节点,包含整个数据集 D D D。
  • 内部节点(Internal Node):每个内部节点通过对一个特征的条件测试(如 x j ≤ θ x_j \leq \theta xj​≤θ)将数据集 D t D_t Dt​ 分为两个子集 D t L D_{t_L} DtL​​ 和 D t R D_{t_R} DtR​​,其中 t L t_L tL​ 和 t R t_R tR​ 是该节点的两个子节点。
  • 叶子节点(Leaf Node):不再继续分裂的节点,叶子节点与最终的预测输出 y ^ \hat{y} y^​ 相关联。
3. 总结

一个决策树模型可以表示为一个函数 f : R d → R f: \mathbb{R}^d \rightarrow \mathbb{R} f:Rd→R 或 f : R d → { 1 , 2 , … , C } f: \mathbb{R}^d \rightarrow \{1, 2, \dots, C\} f:Rd→{1,2,…,C}(分类问题),其中:

  • f ( x ) = ∑ t ∈ Leaves I ( x ∈ R t ) v t f(x) = \sum_{t \in \text{Leaves}} \mathbb{I}(x \in R_t) v_t f(x)=∑t∈Leaves​I(x∈Rt​)vt​
  • R t R_t Rt​ 是叶子节点 t t t 对应的区域, v t v_t vt​ 是叶子节点 t t t 的输出值(分类时是类别,回归时是均值)。

决策树的构建过程

决策树的构建是一个递归过程:

  1. 初始条件:从根节点开始,节点对应的数据集为 D D D。
    决策树从根节点开始,这是树的顶端。在问答游戏中,根节点是你问的第一个问题。这个问题需要最大限度地将数据集分成不同的部分。在技术上,这意味着选择一个属性(或特征),该属性能将数据最有效地分开。

    类比:如果你想最快缩小范围,你可能会首先问一个能大幅度排除选项的问题,比如“这个水果是黄色的吗?”。这就像是根节点的问题。

  2. 选择分裂:对于当前节点 t t t 上的数据集 D t D_t Dt​,选择特征 j j j 和阈值 θ \theta θ 使得分裂准则 Δ ϕ ( D t , j , θ ) \Delta \phi(D_t, j, \theta) Δϕ(Dt​,j,θ) 最大化。
    每当你在游戏中得到答案,你就把数据分成了两个或多个部分(比如红色的水果和非红色的水果)。在决策树中,这个过程叫做分裂。分裂的标准通常是根据某种度量方式,比如信息增益基尼系数,来决定的。这个度量衡量了每次分裂后数据的纯度或不确定性减少的程度。

    类比:你问的问题应该尽量减少不确定性,比如通过问颜色问题,你一下子就把一半的水果排除了。

  3. 数据划分:根据选定的 j j j 和 θ \theta θ,将数据集 D t D_t Dt​ 分为两个子集 D t L D_{t_L} DtL​​ 和 D t R D_{t_R} DtR​​。

  4. 递归构建:对两个子集 D t L D_{t_L} DtL​​ 和 D t R D_{t_R} DtR​​ 递归地重复上述过程,直到满足停止条件,如数据集不能再分或达到最大深度。
    这个过程会递归进行。对于每个子节点,算法会重复选择最好的分裂属性,并进一步分裂,直到数据集不能再分裂(所有数据都属于同一类)或达到某个预设的条件(比如树的深度达到一定程度)。

    类比:你继续问“这个水果的大小比拳头大吗?”等问题,逐渐缩小范围,直到确定是某种特定的水果。

  5. 叶子节点输出:在叶子节点 t t t,返回分类问题中最常见的类别或回归问题中目标值的均值。
    当数据不能再进一步分裂时,树的末端就是叶子节点。每个叶子节点代表一个决策或分类结果。比如在问答游戏中,这就是你最终猜测出的水果。

    类比:你得到了“苹果”或“香蕉”的答案。

  6. 剪枝:有时候,决策树可能会过度拟合数据,导致其在新数据上表现不佳。为了防止这种情况发生,可以对决策树进行剪枝,这意味着去掉一些不必要的分支,使模型更简单和泛化能力更强。

    类比:有时候你可能会意识到你问了一些不太相关的问题,决定忽略这些问题,以避免混淆。

决策树中的分裂原理

1.信息增益(Information Gain)

通俗来说,信息增益用来决定在哪个属性上进行分裂。信息增益计算的是在当前分裂下,不确定性(熵)的减少量。熵越小,数据越纯,信息增益越大。

类比:当你问了一个很有用的问题,比如“这个水果的颜色是红色的吗?”,你会发现你剩下的选项大大减少了,这就是高信息增益的效果。

定义为:
E ( S ) = − ∑ i = 1 c p i log ⁡ 2 ( p i ) \text{E}(S) = - \sum_{i=1}^{c} p_i \log_2(p_i) E(S)=−i=1∑c​pi​log2​(pi​)
其中, p i p_i pi​ 是集合中第 i i i 类样本的比例, c c c 是类别数目。熵越大,表示样本的纯度越低,系统的不确定性越高。

信息增益则定义为在某特征 A A A 上进行划分后,数据集纯度提升的度量:
IG ( S , A ) = E ( S ) − ∑ v ∈ Values ( A ) ∣ S v ∣ ∣ S ∣ E ( S v ) \text{IG}(S, A) = \text{E}(S) - \sum_{v \in \text{Values}(A)} \frac{|S_v|}{|S|} \text{E}(S_v) IG(S,A)=E(S)−v∈Values(A)∑​∣S∣∣Sv​∣​E(Sv​)
其中, S v S_v Sv​ 是按照特征 A A A 的某个取值 v v v 分割后的子集。信息增益越大,说明这个特征越能提升数据集的纯度,因此会优先选择信息增益最大的特征来进行分割。

2. 基尼系数(Gini Index)

基尼系数反映了从数据集中随机抽取两个样本,它们属于不同类别的概率。基尼系数越小,数据越纯。

类比:问“这个水果甜吗?”如果甜的水果明显少于其他种类,那这个问题就能很好地分裂数据。

基尼指数定义为:

G ( S ) = 1 − ∑ i = 1 c p i 2 \text{G}(S) = 1 - \sum_{i=1}^{c} p_i^2 G(S)=1−i=1∑c​pi2​

基尼指数越小,表示样本集合的纯度越高。在决策树构建过程中,选择基尼指数最小的特征进行分割。

决策树的剪枝

为了防止过拟合,通常需要对决策树进行剪枝。剪枝可以分为预剪枝(Pre-pruning)后剪枝(Post-pruning)

  • 预剪枝: 在树的生成过程中,通过设置一些条件提前停止分割,如达到最大深度、节点包含的样本数小于某阈值等。
  • 后剪枝: 先生成一棵完整的树,然后从底向上检查每个节点,判断是否应当移除子树,改为叶子节点。如果剪枝后模型的泛化能力提升,则进行剪枝。

决策树的优势与劣势

优势:

  • 直观易理解: 决策树的结构直观,可解释性强,尤其适合非专家理解和使用。
  • 无需大量数据预处理: 决策树对数据的分布和特征的处理较为宽松,无需像SVM那样需要特征标准化。
  • 处理非线性关系: 决策树能够很好地处理非线性数据。

劣势:

  • 易于过拟合: 决策树如果不进行剪枝,很容易拟合数据中的噪声,导致泛化能力较差。
  • 不稳定性: 决策树对数据中的小扰动较为敏感,容易导致树结构发生较大变化。
  • 倾向于特征数较多的变量: 在特征较多的数据集上,决策树容易偏向于选择取值较多的特征进行分割。

决策树的改进:随机森林与梯度提升树

为了克服单棵决策树的不足,集成学习方法如随机森林(Random Forest)梯度提升树(Gradient Boosting Trees) 被提出。

随机森林通过构建多棵决策树并对其结果进行投票来提高模型的鲁棒性和精度;梯度提升树则通过迭代地优化树模型来最小化损失函数,从而获得更好的预测效果。

标签:剪枝,水果,机器,增益,简析,数据,节点,决策树
From: https://blog.csdn.net/Lewiz_124/article/details/141269159

相关文章

  • legoEV3机器人场地赛如何按照规定路线运行(巡线)
    legoEV3机器人场地赛如何按照规定路线运行(巡线)在机器人场地赛中,巡线指让机器人按照固定线路(一般为白底黑线)运行的任务。而巡线也可以被称为“机器人场地赛的‘基本功’”,它既可以单独成为一类比赛项目也可以成为完成其他任务的“地基”。在这里我来给大家介绍两种颜色传感器巡线......
  • 《机器学习》 KNN算法、数据可视化 No.1
    一、了解机器学习1、什么是机器学习        机器学习是一种人工智能(AI)的分支,旨在让计算机通过数据自动学习和改进。机器学习算法被设计用于从数据中提取模式和规律,然后利用这些模式和规律来做出预测或做出决策,而无需明确的程序指令。        机器学习的基本......
  • AI 智能体 | 使用Coze搭建一个自己的机器人(一)
    本节将使用Coze搭建一个自己的机器人,第一阶段使用大模型+提示词。大模型+提示词进入扣子官网点击创建Bot,会出来一个弹窗在弹窗里面选择个人空间Bot名称的地方给你的bot起个名字Bot功能介绍,在这个地方输入你创建这个bot要实现什么功能图标的话你想替换的话可以通过本地上传图......
  • 奇异值分解在机器人学中的应用
    本文内容主要翻译自Maciejewski,A.A.andKlein,C.A.(1989)‘TheSingularValueDecomposition:ComputationandApplicationstoRobotics’,_TheInternationalJournalofRoboticsResearch_一文中的部分章节奇异值分解(SingularValueDecomposition,SVD)在机器人学......
  • 【机器学习算法】梯度提升决策树
    梯度提升决策树(GradientBoostingDecisionTrees,GBDT)是一种集成学习方法,它通过结合多个弱学习器(通常是决策树)来构建一个强大的预测模型。GBDT是目前最流行和最有效的机器学习算法之一,特别适用于回归和分类任务。它在许多实际应用中表现出色,包括金融风险控制、搜索排名、......
  • 电脑主板品牌型号序列号机器码错乱修改恢复方法
    维修主板BIOS,刷原厂BIOS文件没有序列号型号等等信息,或者各种原因消失如何恢复呢?1.重启电脑按del进入BIOS设置界面,查看主板详细型号。2.到主板官网下载对应型号的BIOS文件。3.amibcp打开bios文件,DMITables栏,里面有详细的主板品牌型号序列号版本信息,可以直接复制下来。4.电......
  • 返利机器人的智能推荐系统与实现技术
    返利机器人的智能推荐系统与实现技术大家好,我是阿可,微赚淘客系统及省赚客APP创始人,是个冬天不穿秋裤,天冷也要风度的程序猿!返利机器人作为电商领域的新兴力量,其智能推荐系统是提升用户体验和增加用户粘性的关键技术。本文将深入探讨返利机器人的智能推荐系统及其实现技术。......
  • 机器学习-卷积神经网络(CNN)
    机器学习-卷积神经网络(CNN)1.卷积神经网络的基本概念1.1卷积层(ConvolutionalLayer)1.1.1卷积操作1.1.2特征图(FeatureMap)1.2激活函数(ActivationFunction)1.2.1ReLU(RectifiedLinearUnit)1.2.2其他激活函数1.3池化层(PoolingLayer)1.3.1最大池化(MaxPooling)1.3.2......
  • Turtlebot 3 ROS 苹果采摘机器人
    原文链接:https://www.youtube.com/watch?v=y1PVdGYccYs 这是加州理工学院电子工程系2024年苹果采摘的毕业设计项目。                ROBOTISROS机器人小车Turtlebot3Wafflepi智能开源平台SLAM自动导航TurtleBot3-Waffle-p......
  • 四足机器人MPC+WBC方案
    四足机器人MPC+WBC方案一、MPC:系统方程:状态变量:\(x_r=(h_{com},q_b,q_j)\inR^{24}\),包含6维质心点动量,6维机身位姿,3*4个关节角度输入变量:\(u=(f_{c1},......,f_{c4},v_j)\inR^{3*4+12}\),包含4个腿末端的3维力,12个关节速度动力学:其中\(f_{ci}\)是4足末端......