回归模型——树回归(理论方面的知识)

2023-05-16

一:模型介绍

1.线性回归的薄弱处:

1.1. 需要拟合所有的样本点(局部加权线性回归除外)但是当数据拥有众多特征并且特征之间关系十分复杂时,构建全局模型的想法就显得太难了,也略显笨拙。

1.2. 生活中很多问题都是非线性的,不可能使用全局线性模型来拟合任何数据

2.解决方案:

树回归:将数据集切分成很多份易建模的数据,然后利用我们的线性回归技术来建模。如果首次切分后仍然难以拟合线性模型就继续切分。

3.回归树与分类决策树的区别:

3.1. 回顾一下分类决策树的算法

3.1.1. 基于ID3(信息增益):

原理: 每次选取当前最佳的特征来分割数据,并按照该特征的所有可能取值来切分。也就是说,如果一个特征有 4 种取值,那么数据将被切分成 4 份。一旦按照某特征切分后,该特征在之后的算法执行过程中将不会再起作用

缺点:

1. 切分方式过于迅速

2. 不能直接处理连续型特征。只有事先将连续型特征转换成离散型,才能在 ID3 算法中使用。但这种转换过程会破坏连续型变量的内在性质

3.1.2. 基于 C4.5(信息增益比)

(1)只能分类 (2)子节点可以多分

3. 基于基尼系数的CART决策树

(1)CART算法既可以分类,也可以回归 (2)由无数个二叉子节点构成

3.2. 下面谈谈基于基尼系数的CART分类决策树的构建特点

1. 创建分类树递归过程中,CART每次都选择当前数据集中具有最小Gini信息增益的特征作为结点划分决策树。

2. CART算法的二分法可以简化决策树的规模,提高生成决策树的效率。

3. 不能直接处理连续型特征。只有事先将连续型特征转换成离散型

3. CART分类与CART回归的区别

1. 结果不同: 分类得到类别标签, 回归得到数值

2. 划分子节点方法不同:  分类采用gini系数,回归采用最小均方差来决定回归树的最优划分,该划分准则是期望划分之后的子树误差方差最小。

4.CART算法最重要的基础

4.1. 二分(Binary Split):在每次判断过程中,都是对观察变量进行二分。

问题一:  对离散分布、且取值数目>=3的特征的处理:

通过组合人为的创建取值序列并取GiniGain最小者作为树分叉决策点

问题二: 对连续特征的处理

CART算法中要以GiniGain最小作为分界点选取标准

过程如下:

1.  对特征的取值进行升序排序 

2. 两个特征取值之间的中点作为可能的分裂点,将数据集分成两部分,计算每个可能的分裂点的GiniGain。优化算法就是只计算分类属性发生改变的那些特征取值

3. 选择GiniGain最小的分裂点作为该特征的最佳分裂点(注意,若修正则此处需对最佳分裂点的Gini Gain减去log2(N-1)/|D|(N是连续特征的取值个数,D是训练数据数目) 

4.2. 单变量分割:每次最优划分都是针对单个变量。

4.3. 剪枝策略

1.预剪枝(Pre-Pruning):根据一些原则及早的停止树增长,如树的深度达到用户所要的深度、节点中样本个数少于用户指定个数、不纯度指标下降的最大幅度小于用户指定的幅度等

2.后剪枝(Post-Pruning):通过在完全生长的树上剪去分枝实现的,通过删除节点的分支来剪去树节点,

5.CART算法类别

5.1CART算法用于回归时根据叶子是具体值还是另外的机器学习模型,分为两种

回归树:回归树返回的是“一团”数据的均值,而不是具体的、连续的预测值

模型树:模型树的叶子是一个个机器学习模型,如线性回归模型,所以更称的上是“回归”算法

 

回归树在选择不同特征作为分裂节点的策略上,与分类决策树思路类似,不同之处在于,回归树叶节点的数据类型不是离散型,而是连续型。决策树每个叶节点依照训练数据表现的概率倾向决定了其最终的预测类别;而回归树的叶节点却是一个个具体的值,从预测值连续这个意义上严格来讲,回归树不能称为回归算法。因为回归树的叶节点返回的是一团训练数据的均值,而不是具体的连续的值。

6.性能评测 

6.1我们希望衡量预测值与真实值之间的差距。因此可以通过多种测评函数进行评价。

1.平均绝对误差  Mean Absolute Error, MAE

2.均方误差  Mean Squared Error, MSE

3.R-squared:拟合度检验是对已制作好的预测模型进行检验,比较它们的预测结果与实际发生情况的吻合程度。通常是对数个预测模型同时进行检验,选其拟合度较好的进行试用。常用的拟合度检验方法有:剩余平方和检验、卡方(c2)检验和线性回归检验等。拟合度,也就是“R-squared”。

7.总结

树模型的优点:

1.  树模型可以解决非线性特征问题

2. 树模型不要求对特征标准化和统一量化,即数值型和类别型特征都可以直接被应用在树模型的构建和预测过程中

3. 树模型也可以直观地输出决策过程,使得预测结果具有可解释性

树模型的缺点:

1. 因为它可以解决复杂的非线性拟合问题,所以更容易因为模型搭建过于复杂而失去对新数据预测的精度

2. 树模型从上至下的预测流程会因为数据细微的更改而发生较大的结构变化,因此预测稳定性差

3. 依托训练数据构建最佳的树模型是NP难问题,即在有限时间内无法找到最优解的问题。因此我们使用类似贪婪算法的解法只能找到一些次优解,所以我们经常借助集成模型,在多个次优解中找一个更高的模型性能。 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

回归模型——树回归(理论方面的知识) 的相关文章

  • 查看.Net源代码vs版本号

    方法 xff1a 用记事本打开vs项目的 sln文件 第2行就是这个源代码包的开发软件vs版本号了 Microsoft Visual Studio Solution File Format Version 9 00 Visual Studi
  • Docker: GUI 应用,Ubuntu 上如何运行呢?

    操作系统 Ubuntu 18 04运行镜像 continuumio anaconda3 based on debian Step 1 安装 Docker span class token comment update the apt pac
  • 网络爬虫详细设计方案

    目录 网络爬虫设计方案 1 网络爬虫简介 2 Java爬虫的开发和使用流程 2 1 下载 2 2 分析 3 单点登陆与Jsoup解析 3 1 单点登陆简介 3 1 1 登陆 3 1 2 注销 3 2 Jsoup网页解析 4 网络爬虫详细设计
  • 安装 python-dev 的时候,缺少依赖关系

    sudo aptitude install python dev报错 xff1a 下列软件包有未满足的依赖关系 xff1a python dev 依赖 libpython dev 61 2 7 5 5ubuntu3 但是它将不会被安装 依赖
  • maven-replacer-plugin 静态资源打包方案js css

    解决问题 xff1a 防止浏览器缓存 xff0c 修改js css后无效 xff0c 需要强刷 两种解决方案 xff1a 1 不依赖插件 xff0c 纯代码实现 1 1 实现拦截处理器 xff1a ModelAndViewIntercept
  • 简单FTP构建及访问

    使用2台RHEL6虚拟机 xff0c 其中一台作为vsftpd服务器 xff08 192 168 4 5 xff09 另外一台作为测试用的Linux客户机 xff08 192 168 4 205 xff09 在RHEL6系统中 xff0c
  • freertos程序死机原因

    一 开机死机原因 1 一般是某任务栈溢出所致 栈溢出一般有两个原因 xff1a 1 此任务函数的代码量太大 或调用了某个比较大的函数 2 此任务的函数内有比较大的局部变量的数组 调试方法 xff1a 1 先关闭所有任务再逐个打开 xff0c
  • 安装在win10环境下的Jenkins添加本地虚拟机centos7作为从机遇到的问题,报错:SSH Connection failed with IOException: "Key exchange

    首先声明我的Jenkins版本是 xff1a 2 31版 因为不同版本页面有所不一样 安装在win10环境下的Jenkins添加本地虚拟机centos7作为从机遇到的问题 xff0c 报错情况如下 xff1a Searching for 1
  • Linux du命令和df命令区别

    1 xff0c 两者区别 du xff0c disk usage 是通过搜索文件来计算每个文件的大小然后累加 xff0c du能看到的文件只是一些当前存在的 xff0c 没有被删除的 他计算的大小就是当前他认为存在的所有文件大小的累加和 d
  • ML大杂烩:**常见机器学习算法公式梳理

    机器学习方法有一个进阶的过程 xff0c 不同的方法族 xff0c 都有其基础和逐渐进化的模型 每一个更新的模型一般是对上一个简单模型的改进 xff0c 比如SVM就直接改进了近邻方法 xff0c 降低了保留的实例个数 本文有大量修改 xf
  • libuv笔记 (一)Threads

    Threads 线程在现代程序开发中会很常见 xff0c 当然Libuv也不能缺席这一块 xff0c 记得你在使用过程中要非常认真的处理 各种原始的同步问题 线程会在内部使用 xff0c 用来在执行系统调用时伪造异步的假象 libuv通过线
  • SLAM: SLAM基本流程—VSLAM扫盲之旅

    在很多机器人的论文和书籍里面 xff0c 劈头第一页即是 xff0c 经典的SLAM视觉框架是过去十几年前已经成熟的研究结果 xff0c 这个框架和算法本身已经没有太多理论可以操作的空间 封杀了很多人的SLAM科研之路 xff0c 把SLA
  • 三维重建:SLAM的尺度和方法论问题

    百度百科的定义 此文引用了其他博客的一些图像 xff0c 如有侵权 xff0c 邮件联系删除 作为算法的SLAM xff0c 被称为同步相机位姿确定和地图构建 作为一个工程的SLAM xff0c 有众多的算法 在计算机视觉中 三维重建是指根
  • 相机标定:PNP基于单应面解决多点透视问题

    利用二维视野内的图像 xff0c 求出三维图像在场景中的位姿 xff0c 这是一个三维透视投影的反向求解问题 常用方法是PNP方法 xff0c 需要已知三维点集的原始模型 本文做了大量修改 xff0c 如有不适 xff0c 请移步原文 xf
  • 三维重建7:Visual SLAM算法笔记

    VSLAM研究了几十年 xff0c 新的东西不是很多 xff0c 三维重建的VSLAM方法可以用一篇文章总结一下 此文是一个好的视觉SLAM综述 xff0c 对视觉SLAM总结比较全面 xff0c 是SLAM那本书的很好的补充 介绍了基于滤
  • 基于stm32c8t6的两轮平衡小车 第二篇——原理图及CubeMx配置

    目录 1 原理图 2 CubeMx配置 xff08 1 xff09 创建工程 xff08 2 xff09 配置时钟树 xff08 3 xff09 仿真模式选择 xff08 4 xff09 TIM2配置为PWM输出模式 xff08 5 xff
  • 解决Mac下安装Homebrew慢的问题

    一 方法一 国内安装Homebrew很慢 xff0c 可以使用下面的方法 xff1a span class token function curl span fsSL https gitee com xueweihan codes vfrg
  • 麻将和牌算法

    麻将牌有1 xff0d 9万 xff0c 1 xff0d 9条 xff0c 1 xff0d 9筒 xff0c 东南西北 xff0c 中发白各4张 xff0c 共34种136张牌 有些地方的麻将还有梅兰花竹 春夏秋冬各一张 一般将梅兰花竹 春
  • Springboot2中文件上传报java.io.FileNotFoundException: C:\Users\WIzarder\AppData\Local\Temp\tomcat.8080.589

    Springboot2文件上传中用MultipartFile接受文件 xff0c 上传报错java io FileNotFoundException C Users WIzarder AppData Local Temp tomcat 80
  • String为什么叫不可变字符序列,StringBuffer和StringBuild为什么是可变字符序列

    String为什么叫不可变字符序列 xff0c StringBuffer和StringBuild为什么是可变字符序列 xff1f 当我第一次学习JavaSE基础知识里 xff0c 学习String和StringBuffer和StringBu

随机推荐

  • Linux中xshell连接不上问题

    inux中Xshell连接失败 原因 xff1a 网络配置问题 xff0c 还有可能是防火墙问题 xff0c ssh未开启问题 xff0c 本人遇到的是网络配置问题 首先是配置Linux网络 cd etc sysconfig network
  • 项目迁移AndroidX

    什么是AndroidX 简单地说就是新的库可以在不同的Android版本上使用 比如之前我们如果使用support为27 1 1的相关依赖库时 可能需要所有相关的support 库都为27 1 1 如果其中有bug的话 xff0c 可能需要
  • Win11更新后电脑没有声音,声卡驱动失效,卸载重装依然无效

    win11更新后声卡驱动失效 xff0c 没有声音 原因 xff1a windows自动更新会更新你的声卡驱动 xff0c 声卡驱动冲突了 解决办法 xff1a 卸载重装声卡驱动依然无效走下面流程 右击电脑 gt 管理 gt 设备管理器 g
  • Docker Unbuntu容器里面运行apt-get update命令报错

    最近在尚硅谷学习docker命令 xff0c 学习到给ubuntu添加vim命令时候运行apt get update报错如下所示 搜索了半天发现很多人让配置dns啥的 xff0c 有一个博主推荐在运行容器的时候添加一个参数可以解决上述问题
  • 华为2288H服务器配置raid

    本次配置的服务器品牌型号为华为2288H 清除现有的raid重新设置就可以 xff0c 只有设备在uefi模式下才能看到配置raid xff0c 所以要先在bios下把传统模式改成uefi模式
  • MBR&/BOOT和GRUB三者关系总结

    做了一个大自然的搬运工 介绍的不错 备份下 MBR是硬盘上的一个扇区 包含三部分内容 xff08 引导程序 分区表及分隔标识 xff0c MBR总计512字节 xff1b 其中引导程序最多占446个字节 xff09 xff1b 为什么需要这
  • 寄存器映射与直接操作寄存器

    一 存储器映射 与重映射 存储器本身不具有地址信息 xff0c 它的地址是由芯片厂商或用户分配 xff0c 给 物理 存储器分配 逻辑 地址的过程就称为存储器映射 xff0c 通过这些逻辑地址就可以访问到相应的存储器的物理存储单元 如果给存
  • html+js翻页时钟

    html 43 js翻页时钟 index html lt doctype html gt lt html gt lt head gt lt meta charset 61 34 utf 8 34 gt lt title gt html5带翻
  • 云计算的主要部署模式

    云计算与大数据 云计算的最终目标是将计算 服务和应用作为一种公共设施提供给公众 xff0c 使人们能够像使用水 电 煤气和电话那样使用计算机资源 云计算技术都是基于3种特殊的云计算服务模式 xff0c 它们都具有流行 有效 灵活 用户友好等
  • TP5 + PHPWord导出word文档中文出现乱码的问题

    场景 xff1a 项目需要将html页面转word文档 1 下载安装phpword插件composer require phpoffice phpword 2 安装成功在tp目录下的vendor会出现phpoffice文件夹 xff0c 说
  • 基于 Matlab/simulink的锂电池建模与仿真——复现论文《基于二阶EKF的锂离子电池SOC估计的建模与仿真》的仿真部分

    运用simulink实现该论文的锂电池建模仿真 1 模型分解1 1 SOC计算模块1 2 RC参数计算模块1 3 电压计算模块1 4 电流生成器 由Singal Builder模块生成 2 建模细节详解2 1 SOC OCV xff1a L
  • Qt使用记录

    Q amp A 1 错误 qt network ssl QSslSocket cannot call 解决 Qt5 12 4 Tools mingw730 64 opt bin下的libeay32 dll和ssleay32 dll拷贝到Qt
  • Keras的自定义lambda层去reshape tensor张量时model保存出错的解决办法

    背景 分割网络在进行上采样的时候我用的是双线性插值上采样的 xff0c 而Keras里面并没有实现双线性插值的函数 xff0c 所以要自己调用tensorflow里面的tf image resize bilinear 函数来进行resize
  • c++ 中 class 和 struct 的区别是什么

    xfeff xfeff C 43 43 中的struct对C中的struct进行了扩充 xff0c 它已经不再只是一个包含不同数据类型的数据结构了 xff0c 它已经获取了太多的功能 struct能包含成员函数吗 xff1f 能 xff01
  • Linux top命令的了解以及使用

    以root权限运行 top 命令后 xff0c 会以全屏的方式显示 xff0c 并且会处在对话的模式 操作实例 root登录之后 xff0c 在命令行中输入 xff1a top xff0c 回车 xff0c 即会以全屏的显示模式显示所有内容
  • 一键激活office,激活windows

    github地址 xff1a https github com massgravel Microsoft Activation Scripts 正文 xff1a Microsoft Activation Scripts MAS A Wind
  • Jupyter not connection to kernel 的解决方案

    不知道什么原因 xff0c 今天启动Jupyter Notebook发现不对经 xff0c 各种警告如 xff1a 内核没有连接什么的 xff0c 然后我试了试用spyder编写Python xff0c 结果一进去也是告诉我 error x
  • svm核函数的理解和选择

    特征空间的隐式映射 xff1a 核函数 咱们首先给出核函数的来头 xff1a 在上文中 xff0c 我们已经了解到了SVM处理线性可分的情况 xff0c 而对于非线性的情况 xff0c SVM 的处理方法是选择一个核函数 xff0c 通过将
  • list indices must be integers or slices, not tuple 解决方案

    解决方案 xff1a 用numpy里的array转化下 xff0c 转成元组 xff1a dataSet 61 np array dataSet 或者也可以将dataSet转化为矩阵 xff1a mat dataSet 两者都可行
  • 回归模型——树回归(理论方面的知识)

    一 xff1a 模型介绍 1 线性回归的薄弱处 xff1a 1 1 需要拟合所有的样本点 xff08 局部加权线性回归除外 xff09 但是当数据拥有众多特征并且特征之间关系十分复杂时 xff0c 构建全局模型的想法就显得太难了 xff0c