首页 > 其他分享 >【决策树回归的原理】

【决策树回归的原理】

时间:2024-07-02 14:28:41浏览次数:14  
标签:回归 节点 切分 划分 计算 原理 预测值 决策树

决策树之回归树模型

何为回归树?

解决回归问题的决策树模型即为回归树。
特点:必须是二叉树。

回归树?

回归树(Regression Tree)是一种使用树模型来解决回归问题的算法。

其基本原理是将特征空间划分为多个子区域,每个子区域输出一个预测值,通常是该区域内所有训练样本标签的均值。

以下是回归树原理的详细介绍:

  • 基本概念
    回归树:使用树形结构进行回归预测,每个叶子节点输出一个预测值,该值通常是该叶子节点所含训练集元素输出的均值
    预测值:叶子节点的预测值可以通过计算该区域内所有样本标签的均值来得到,也可以使用其他方法,如线性回归。
  • 回归树的构建过程
    回归树的构建过程主要包括以下几个步骤:
    • 选择最优划分特征和划分点:
      遍历所有特征及其所有可能的划分点。
      对于每个特征和划分点,将数据集划分为两个子集,并计算这两个子集的平方误差和。
      选择使得平方误差和最小的特征和划分点作为最优划分。
    • 递归构建子树:
      对每个子集重复上述划分过程,直到满足停止条件(如达到预设的叶子节点数、节点内样本数少于某个阈值等)。
    • 生成回归树:
      构建完成后,每个叶子节点对应一个预测值,即该区域内所有样本标签的均值。
  1. 回归树的划分标准
    平方误差最小化:回归树在划分时采用平方误差最小化准则,即选择使得划分后两个子集的平方误差和最小的特征和划分点

  2. 回归树的实现算法
    CART算法:CART(Classification And Regression Tree)算法是构建回归树的一种常用算法。CART假设决策树是二叉树,内部节点特征的取值只有“是”和“否”,左分支是取值为“是”的分支,右分支是取值为“否”的分支。

    具体步骤:

    1. 选择最优的划分特征和划分点,将数据集划分为两个子集。
    2. 对每个子集递归地执行上述划分过程,直到满足停止条件。
    3. 生成回归树,每个叶子节点输出该区域内所有样本标签的均值作为预测值。
  3. 回归树的优缺点

  • 优点:
    模型具有可读性,分类速度快,易于理解。
    能够处理非线性关系,适用于复杂数据的回归问题。
  • 缺点:
    单一的回归树模型可能容易过拟合,特别是当树的结构过于复杂时。
    预测结果可能不够平滑,因为预测值是基于划分的子区域来确定的。
  1. 实际应用
    回归树在实际应用中非常广泛,如房价预测、股票价格预测、销量预测等。此外,回归树还可以作为集成学习方法(如随机森林、梯度提升树等)的基学习器,通过组合多个回归树来提高预测性能。

综上所述,回归树是一种有效的回归预测方法,通过递归地划分特征空间并计算每个子区域的预测值来构建模型。其构建过程基于平方误差最小化准则,并采用CART算法等具体实现方法。在实际应用中,回归树具有广泛的适用性和良好的预测性能。

回归树计算

  1. 计算最优切分点
    在这里插入图片描述
    因为只有一个变量,所以切分变量必然是x,可以考虑如下9个切分点:
    [1.5 2.5 3.5 4.5 5.5 65 7.5.8.5 9.5]。

【原因:实际上考虑两个变量间任意一个位置为切分点均可】

  • 切分点1.5的计算
    当s=1.5时,将数据分为两个部分:
    第一部分:(1,5.56)
    第二部分:(2,5.7)、(3,5.91)、(4,6.4)…(10,9.05)
  • 计算损失
    在这里插入图片描述
  • 同理计算其他分割点的损失
    ![在这里插入图片描述](/i/ll/?i=direct/be2ca8d99fe94d60b2e1c268bb38f70f.p
    容易看出,当s=6.5时,loss=1.93最小,所以第一个划分点s=6.5.
  • 对于小于6.5部分
    在这里插入图片描述
    (1)切分点1.5的计算
    当s=1.5时,将数据分为两个部分:
    第一部分:(1,5.56)
    第二部分:(2,5.7)、(3,5.91)、(4,6.4)、(5,6.8)、(6,7.05)
    C1=5.56
    C2=1/5(5.7+5.91+6.4+6.8+7.05)=6.37
    Loss=0+(5.7-6.37)^2
    +(5.91-6.37)^2
    +…+(7.05-6.37)^2=0+1.3087=1.3087
  • 因此得到:
    在这里插入图片描述
    容易看出:
    <1> 当s=3.5时,loss=0.2771最小,所以第一个划分点s=3.5.
    <2> 当s=8.5时,loss=0.021最小,所以第二个划分点s=8.5。
  • 假设只分裂我们计算的这几次:
    在这里插入图片描述
    那么分段函数为:
    <1> 当x<=3.5时,1/3(5.56+5.7+5.91)=5.72
    <2> 当3.5<x<=6.5时,1/3(6.4+6.8+7.05)=6.75
    <3> 当6.5<x<=8.5时,1/2(8.9+8.7)=8.8
    <4> 当8.5<x时,1/2(9+9.05)=9.025
    最终得到分段函数!
  • 对于预测来说:
    特征x必然位于其中某个区间内,所以,即可得到回归的结果,比如说:如果x=11,那么对应的回归值为9.025。
    <1> 当x<=3.5时,1/3(5.56+5.7+5.91)=5.72
    <2> 当3.5<x<=6.5时,1/3(6.4+6.8+7.05)=6.75
    <3> 当6.5<x<=8.5时,1/2(8.9+8.7)=8.8
    <4> 当8.5<x时,1/2(9+9.05)=9.025
  • 决策树的构造
    在这里插入图片描述
    在这里插入图片描述

标签:回归,节点,切分,划分,计算,原理,预测值,决策树
From: https://blog.csdn.net/2301_77444219/article/details/140120519

相关文章

  • 机器学习入门(吃瓜第四章 决策树)
    目录一、决策树的算法原理决策树算法步骤决策树的基本思想二、划分选择1.ID3决策树——信息增益划分准则2.C4.5决策树——以信息增益率为划分准则3.CART决策树——以基尼指数为划分准则三、剪枝处理1.预剪枝(prepruning)2.后剪枝(post-pruning)参考文献一、决......
  • Java线程池的实现原理及其在业务中的最佳实践
    一、线程池简介1.什么是线程池?线程池是一种用于管理和复用线程的机制。线程池的核心思想是预先创建一定数量的线程,并把它们保存在线程池中,当有任务需要执行时,线程池会从空闲线程中取出一个线程来执行该任务。任务执行完毕后,线程不是被销毁,而是返还给线程池,可以立即或稍后被......
  • ros2 - slam - 编码器测速原理
    上节做完小车,遥控时小车前进时你应该会发现,小车很难走一条直线,但明明我们给到两个电机的PWM占空比都是相同的,原因在于每一个电机的硬件参数并不能完全的保证一致,所以当我们采用开环控制时,即使我们给到每个电机相同的电压,也不能让两个电机保持相同的转速。要解决这个问题我们就要......
  • PHP与js遍历的区别,PHP运行原理学习
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title><?phpecho'PHP的第一......
  • 计算机组成原理——中央处理器
    功能和结构计算机组成架构:中央处理器cpu即包含运算器和控制器。细分为:ALU,寄存器,中断系统,CU。cpu组成结构运算器用于对数据的加工,实现算术运算和逻辑运算。其中包含:ACC累加器,MQ乘商寄存器,X通用寄存器,ALU算数逻辑单元控制器主要协调并控制计算机各个部件执行程序指令的......
  • R语言数据分析案例38-高等教育学生成绩分析(多元线性回归)
    一、研究背景学生成绩是衡量教育质量的重要指标,同时也是教育工作者进行教学反思和改进的重要依据。随着现代教育的不断发展,各类学科课程的设置日益多样化,学生的学习表现也呈现出复杂多样的特征。为了深入了解学生在各门课程中的表现,找出影响学生成绩的关键因素,有必要对学生成......
  • ros slam microros之H电桥电机驱动原理介绍
    一、电机驱动原理介绍正式编写代码前,我们先了解下电机驱动的原理,以便于我们了解我们如何才能通过代码控制电机的转速和正反转。1.1H桥电路让电机动起来只需要通电就行,比如我们用的额定电压为12V130RPM的电机,当给到12V的电压时可以达到额定转速130转/分,但如果我们给8V的电压,此时......
  • 编译原理期末复习笔记
    本笔记关于编译器的阶段只包含了词法分析、语法分析、语义分析和中间代码生成,如果发现笔记有错误的地方欢迎大家给我指正。文章目录1.介绍1.1什么是编译器(Compiler)1.2编译器vs.解释器(Interpreter)1.3预处理器(Preprocessor)1.4符号表(SymbolTable)1.5其他2.......
  • xlua 原理浅析(Wrap文件形式)
    对xluaCSharpCallLua和LuaCallCSharp以Wrap文件注册形式的大致流程梳理。废话不多说,我们要提出两个问题C#是如何调用lua的lua是如何调用C#的前置知识资料lua参考手册https://cloudwu.github.io/lua53doc/manual.htmlxluahttps://github.com/Tencent/xLuaxlua源码......
  • 【简单介绍下线性回归模型】
    ......