全面整理!机器学习常用的回归预测模型

 Datawhale干货 

作者:曾浩龙,Datawhale意向成员

前言

回归预测建模的核心是学习输入 到输出 (其中 是连续值向量)的映射关系。条件期望 是 到 的回归函数。简单来说,就是将样本的特征矩阵映射到样本标签空间。

1aa1cba56d0ba1f0b1ed14304cdae86a.png

图片由 Midjourney 生成。A futuristic visualization of regression prediction in statistics and mathematics, incorporating machine learning and artificial intelligence. The artwork depicts a sophisticated algorithm at work, with a sleek and modern design showcasing its advanced sense. The scene is filled with cool and dazzling visualizations, representing the complex calculations and patterns being analyzed by the AI system.

本文全面整理了各种回归预测模型,旨在帮助读者更好地学习回归预测模型。


线性模型

线性回归是一种线性模型,通过特征的线性组合来预测连续值标签。线性回归通过拟合系数 (可选择是否设置截距)的线性模型,以最小化真实值和预测值之间的残差平方和。

scikit-learn linear_models:

https://scikit-learn.org/stable/modules/classes.html#module-sklearn.linear_model

  • 普通最小二乘线性回归。

  • 套索回归(Lasso)是一种使用 L1 先验作为正则化器进行训练的线性模型。

  • 岭回归。岭回归是一种结合了 L2 正则化项的最小二乘线性回归,适用于共线性数据的有偏估计回归。这是一种改良的最小二乘估计法,它放弃了最小二乘法的无偏性,以损失部分信息和降低精度为代价,使得回归系数更符合实际、更可靠。对于病态数据,其拟合能力强于最小二乘法。然而,它不具备特征选择的能力。

  • 随机梯度下降回归。通过随机梯度下降(SGD)来最小化正则化经验损失。在每次采样时,都会估算损失梯度,随着学习率的下降,模型会相应地更新。正则化器是一种添加到损失函数中的惩罚项,它使用欧几里得平方准则 L2 或绝对准则 L1 或两者的组合(弹性网)将模型参数向零向量收缩。如果参数更新因正则因子而越过 0.0 值,更新将被截断为 0.0,以便学习稀疏模型并实现在线特征选择。

  • 弹性网络回归(ElasticNet)是一种线性回归模型,它使用结合了 L1 和 L2 先验的正则化器。

  • 最小角回归模型(Least Angle Regression,简称 LAR)。最小角回归是一种适用于高维数据的回归算法。当预测变量(p)大于观察样本数(n)时,LAR 可以解决线性回归问题。其核心思想是将预测目标依次分解为特征向量的线性组合,最终使得残差向量与所有特征均线性无关,从而最小化。在每一步中,LAR 都会找到与目标最相关的特征。当多个特征具有相等的相关性时,LAR 不是沿着相同的特征继续进行,而是沿着特征之间角平分线的方向进行。LAR 是前向梯度算法与前向选择算法的折中,可以产生分段线性结果的完整路径,这在模型的交叉验证中极为有用。

  • 正交匹配追踪算法(Orthogonal Matching Pursuit,简称 OMP)。这是一种贪心的压缩感知恢复算法。OMP 用于近似拟合一个带约束的线性模型,其中约束影响模型的非零系数。OMP 是一种前向特征选择方法,可以近似一个固定非零元素的最优向量解,这与最小角回归类似。OMP 的每一步选择都高度依赖于当前的残差,这是其基于贪心算法的特性。OMP 与匹配追踪(MP)相似,但相对于 MP 更优,因为它可以在每次迭代中利用正交投影重新计算残差,从而对先前选择的字典元素进行重建。

  • 贝叶斯 ARD 回归。ARD(Automatic Relevance Determination)自动相关性确定。该方法使用 ARD 先验来拟合回归模型的权重,其中权重假设为高斯分布。同时,它会估计参数 lambda(权重分布的精度)和 alpha(噪声分布的精度),这个估计过程是通过迭代程序(即证据最大化)来完成的。

  • 贝叶斯岭回归。拟合一个贝叶斯岭模型。有关此实现的详细信息以及正则化参数 lambda(权重的精度)和 alpha(噪声的精度)的优化,请参阅备注部分。

  • 异常值鲁棒回归器 包括 Huber 回归、分位数回归、RANSAC 回归和 Theil-Sen 回归。

  • 广义线性模型(GLM)用于回归预测,包括泊松分布、Tweedie 分布和 Gamma 分布。这些模型不仅允许预测目标具有正态分布以外的误差分布,还可以处理非正态分布的因变量。此外,它们还可以通过链接函数将自变量和因变量联系在一起。值得一提的是,GLM 可以适用于多种类型的数据,如连续型数据、计数型数据和二分类数据等。


三、非线性模型

非线性回归是一种非线性模型,通过特征的非线性组合交互来预测连续值标签。在回归预测实践中,集成树模型是最常用的,因为它们具有适应异构数据、计算高效、泛化性能好和简单易用等优势

数据竞赛三巨头:XGBoost、LightGBM、CatBoost(极端梯度提升机及其变体)

  • XGBoost 官方文档 https://xgboost.readthedocs.io/en/stable/

  • LightGBM 官方文档

https://lightgbm.readthedocs.io/en/stable/

  • CatBoost 官方文档:https://catboost.ai/

其他:

选择普通非线性回归的期望函数通常取决于我们对系统响应曲线的形状以及物理和化学属性行为的了解。可能的非线性函数包括但不限于多项式、指数、对数、S 形和渐近曲线。您需要指定一个既符合您已有的知识,又满足非线性回归假设的函数。尽管可以灵活地指定各种期望函数,但确定最适合数据的函数可能需要大量的精力。这通常需要进行额外的研究、利用专业领域知识以及进行试错分析。此外,非线性方程在确定每个预测变量对响应的影响时可能不如线性方程直观。

决策树回归。CART 决策树可以应用于回归预测。当进行预测时,新样本从根节点开始,根据其特征值在每个节点被分配到左子节点或右子节点,直至到达叶节点。这个叶节点中所有训练样本标签的平均值就是新样本的预测值。

支持向量机回归。支持向量机能够应用于回归预测任务,主要得益于其ε-不敏感损失函数和核函数技巧。这两个特性使得 SVR 能够处理线性和非线性问题,并防止过拟合,因此它是一种有效的回归预测模型。

KNN 回归。KNN 是一种基于实例的学习方法,也可以称为懒惰学习。其工作原理是:当有一个新的数据点需要预测时,KNN 会在已知的数据集中找出与这个新数据点最接近的 K 个点,然后根据这些邻居的属性来预测新数据点的属性。在分类任务中,KNN 通常会选择这些邻居中最常见的类别作为新数据点的类别。而在回归任务中,KNN 通常计算这些邻居的平均值或者中位数,并将这个值作为新数据点的预测值。

普通神经网络回归。多层感知器 MLP,将样本的特征矩阵映射到样本标签空间。开发流程:网络初始化后,进行前向计算,反向传播和优化(损失函数通常为均方误差 MSE),然后进行迭代训练。这种方法可以用于回归预测。

随机森林回归。随机森林是一种基于 Bagging 范式的集成学习算法,其关注降低方差。随机森林算法首先创建多个决策树,每棵树都在数据集的一个随机子集上进行训练。这种过程被称为自助采样(bootstrap sampling)。特征选择:在构建决策树的过程中,随机森林会在每个节点处从特征的随机子集中选择最优特征进行分割。这种方法增强了模型的多样性,从而降低了过拟合的风险。对于回归问题,最终的预测结果是所有决策树预测结果的平均值。

深度森林(DeepForest)回归 。周志华老师团队的一项工作 DeepForest,它是一种新颖的基于决策树的集成学习方法。深度森林主要由多粒度扫描和级联森林两个部分构成。其中,多粒度扫描通过滑动窗口技术获取多个特征子集,以增强级联森林的差异性。而级联森林则是通过级联方式将决策树组成的森林实现表征学习。深度森林继承了深度学习对样本特征属性的逐层处理机制,同时克服了深度学习参数依赖性强、训练开销大以及仅适用于大数据等缺点。

Extra trees 回归(Extra trees 是 Extremely randomized trees 的简称)。这是一种使用决策树的集成学习方法,它与随机森林类似,但速度更快。Extra trees 会创建许多决策树,但每棵树的采样都是随机的,可以设置是否有放回采样。每棵树还会从全部特征集中随机选择特定数量的特征。Extra trees 最重要也是最独特的特点是随机选择特征的分割值。该算法不是使用基尼值或熵值计算局部最优值来分割数据,而是随机选择一个分割值。这就使得树具有多样性和非相关性,能够有效抑制过拟合。

AdaBoost 回归。AdaBoost 是一种关注降低偏差的基于 Boosting 范式的集成学习算法。AdaBoost 回归的基本步骤包括:(1)初始化训练样本的权重。每个样本的初始权重都是相等的;(2)对于每一轮迭代:使用当前的样本权重来训练一个弱学习器(例如决策树),计算这个弱学习器的预测误差,根据预测误差来计算这个弱学习器的权重,更新样本的权重;(3)将所有弱学习器的预测结果进行加权求和,得到最终的预测结果。

基于直方图的梯度提升回归(HistGradientBoostingRegressor)。通过 scikit-learn 改进的基于直方图的梯度提升回归,在大型数据集(n_samples >= 10,000)上,该估计器比 GradientBoostingRegressor 快得多。该估计器本身支持缺失值(NaNs)。在训练过程中,树生长器在每个分裂点学习,并根据潜在增益决定缺失值的样本应该进入左子节点还是右子节点。在预测时,具有缺失值的样本将被相应地分配到左子节点或右子节点。如果在训练过程中对某个特征没有遇到缺失值,那么具有缺失值的样本将被映射到具有最多样本的子节点。这个算法的灵感来自于 LightGBM。

TabNet。TabNet是由 Google 发布的一种针对于表格数据(Tabular data)设计的深度神经网络,它通过类似加性模型的序列注意力机制实现了 instance-wise 的特征选择,并且通过 encoder-decoder 框架实现了自监督学习,可用于下游学习任务如回归预测。

交互网络上下文嵌入(Interaction Network Contextual Embedding,INCE)。INCE 是一种用于表格数据的深度学习模型,采用图神经网络(GNNs),更具体地说,使用交互网络进行上下文嵌入。编码器模型首先将每个表格数据集特征映射到潜在向量或嵌入中,然后解码器模型获取这些嵌入并用于解决监督学习任务。编码器模型由 Columnar 嵌入和 Contextual 嵌入两部分组成;解码器模型由一个针对解决回归任务调整过的多层感知机(MLP)组成。

Local Cascade Ensemble:在 Python 中增强了 Bagging 和 Boosting 的组合。该工具包实现了本地级联集成(LCE),这是一种新颖的机器学习方法,可进一步提高目前最先进的方法 Random Forest 和 XGBoost 的预测性能。LCE 结合了它们各自的优势,并采用了一种互补的多样化方法,以获得更好的泛化预测模型。LCE 与 scikit-learn兼容,因此可以与 scikit-learn pipeline 和模型选择工具进行交互。

门控加性树集成(Gated Additive Tree Ensemble, GATE)。GATE 是一种新颖的、高性能、参数效率和计算效率高的深度学习架构,适用于表格数据,即门控增加树集成(GATE)。GATE使用了灵感来自于 GRU 的 gating 机制作为内置特征选择机制的特征表示学习单元,并将其与一组可微分、非线性决策树集成在一起,通过简单的自注意力重新加权,从而实现对期望输出值的预测。

深度自动特征学习的门控自适应网络(Gated Adaptive Network for Deep Automated Learning of Features)是 GATE 的简化版本,并且比 GATE 更高效。GANDALF将GFLU作为主要学习单元,并在过程中引入了一些加速机制。由于超参数调整非常少,使其成为一个易于使用和调整的模型。

值得注意的是,有一个用于对表格数据建模的深度学习模型的标准框架 - pytorch_tabularhttps://github.com/manujosephv/pytorch_tabular


402259af5c4f6347c6b42a3f5dfbfb8a.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/708088.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024.02.28作业

模拟面试 1. 什么是回调函数 将函数作为另一函数的参数 实现:通过函数指针,如线程的创建函数 2. 结构体和共用体的区别 结构体的每个成员都会分配内存,大小为各个成员所占内存之和,内存对齐 共用体的内存以最大成员为主 3. 赋…

2024年 前端JavaScript Web APIs 第一天 笔记

1.1 -声明变量const优先 1.2 -DOM树和DOM对象 1.3 -获取DOIM元素 1.4 -DOM修改元素内容以及年会抽奖 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content&quo…

学习Sora技术报告Video generation models as world simulators

原文链接&#xff1a; Video generation models as world simulators (openai.com) 摘要&#xff1a; 我们探索了在视频数据上大规模训练生成模型。具体来说&#xff0c;我们在可变片长、分辨率和纵横比的视频和图像上联合训练文本条件扩散模型text-conditional diffusion mo…

【Java多线程】面试常考——锁策略、synchronized的锁升级优化过程以及CAS(Compare and swap)

目录 1、锁的策略 1.1、乐观锁和悲观锁 1.2、轻量级锁和重量级锁 1.3、自旋锁和挂起等待锁 1.4、普通互斥锁和读写锁 1.5、公平锁和非公平锁 1.6、可重入锁和不可重入锁 2、synchronized 内部的升级与优化过程 2.1、锁的升级/膨胀 2.1.1、偏向锁阶段 2.1.2、轻量级锁…

2024年阿里云2核4G云服务器性能如何?价格便宜有点担心

阿里云2核4G服务器多少钱一年&#xff1f;2核4G服务器1个月费用多少&#xff1f;2核4G服务器30元3个月、85元一年&#xff0c;轻量应用服务器2核4G4M带宽165元一年&#xff0c;企业用户2核4G5M带宽199元一年。本文阿里云服务器网整理的2核4G参加活动的主机是ECS经济型e实例和u1…

Groovy(第五节) Groovy 之集合

Groovy 可以直接在语言内使用集合。在 Groovy 中,不需要导入专门的类,也不需要初始化对象。集合是语言本身的本地成员。Groovy 也使集合(或者列表)的操作变得非常容易,为增加和删除项提供了直观的帮助。 可以将范围当作集合 在前一节学习了如何用 Groovy 的范围将循环变得…

OpenHarmony 项目实战:智能体重秤

一、简介 本 demo 基于 OpenHarmony3.1Beta 版本开发&#xff0c;该样例能够接入数字管家应用&#xff0c;通过数字管家应用监测体重秤上报数据&#xff0c;获得当前测量到的体重&#xff0c;身高&#xff0c;并在应用端形成一段时间内记录的体重值&#xff0c;以折线图的形式…

皇冠测评:网络电视盒子哪个品牌好?电视盒子排行榜

欢迎各位来到我们的测评频道&#xff0c;本期我们要分享的产品是电视盒子&#xff0c;因很多网友留言不知道网络电视盒子哪个品牌好&#xff0c;我们通过为期一个月的测评后整理了电视盒子排行榜&#xff0c;想买电视盒子的可以看看下面这五款产品&#xff0c;它们各方面表现非…

【JGit 】一个完整的使用案例

需求 生成一系列结构相同的项目代码&#xff0c;将这些项目的代码推送至一个指定的 Git 仓库&#xff0c;每个项目独占一个分支。 推送时若仓库不存在&#xff0c;则自动创建仓库。 分析 生成代码使用 Java 程序模拟&#xff0c;每个项目中模拟三个文件。Project.cpp 、Pro…

更改elementui的箭头图片以及位置

//更改箭头位置 .el-tree-node__content > .el-tree-node__expand-icon {position: absolute;right: 12px; }//更改箭头图片 .el-tree-node__expand-icon {transform: rotate(-90deg); } .el-tree-node__expand-icon.expanded {transform: rotate(0deg); } // 有子节点 且已…

QEMU之内存虚拟化

内存虚拟化方案 最直观的方案&#xff0c;将QEMU进程的虚拟地址空间的一部分作为虚拟机的物理地址。但该方案有一个问题&#xff1a; 在物理机上&#xff0c;CPU对内存的访问在保护模式下是通过分段分页实现的&#xff0c;在该模式下&#xff0c;CPU访问时使用的是虚拟地址&am…

Unity绘制六边形体

现在steam上面有很多下棋类/经营类的游戏都是用六边形的地形&#xff0c;比较美观而且实用&#xff0c;去年在版本末期我也自己尝试做了一个绘制六边体的demo&#xff0c;一年没接触unity竟然都要忘光了&#xff0c;赶紧在这边记录一下。 想cv代码可以直接拉到代码章节 功能 …

音频转换器哪个好?3款电脑软件+3款手机应用

在当今的数字时代&#xff0c;音频转换已成为许多用户日常的需求。为了帮助您找到最佳的音频转换工具&#xff0c;我们将介绍3款电脑软件和3款手机应用。这些工具都各有特点&#xff0c;能够满足不同用户的需求。 1.电脑软件篇 1.1金舟音频大师 金舟音频大师是一款多功能的音…

【LabVIEW 】串口如何读取长度不一致的字符串

工程经验 1、在循环中&#xff0c;加入定时器&#xff0c;这样可以一段时间读取一次。 2、只要获取完整的一帧数据&#xff0c;就可以进行过滤筛选。

力扣128. 最长连续序列(哈希表)

Problem: 128. 最长连续序列 文章目录 题目描述思路复杂度Code 题目描述 思路 1.先将数组中的元素存入到一个set集合中&#xff08;去除重复的元素&#xff09; 2.欲找出最长连续序列&#xff08;先定义两个int变量longestSequence和currentSequence用于记录最长连续序列和当前…

Adobe Acrobat DC中如何合并pdf并生成目录

一、利用 Acrobat 合成pdf目录 &#xff08;一&#xff09;新建标签&#xff08;更改标签等级等&#xff09; 1&#xff0c;用Adobe acrobat 软件打开待添加书签的pdf文档。 2&#xff0c;打开之后点击软件左边栏的书签&#xff08;有时被隐藏了&#xff0c;点击一下界面左边…

第一节 数据操作+数据处理

本系列文章为李沐老师《动手学深度学习》Pytorch版实践学习笔记&#xff0c;相关课程教学、书籍、代码均为开源&#xff0c;可通过以下链接参考学习&#xff1a; 跟李沐学AI的个人空间-跟李沐学AI个人主页-哔哩哔哩视频 (bilibili.com) 前言 — 动手学深度学习 2.0.0 documenta…

高校物品捐赠管理系统|基于springboot高校物品捐赠管理系统设计与实现(源码+数据库+文档)

高校物品捐赠管理系统目录 目录 基于springboot高校物品捐赠管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户信息管理 2、捐赠信息管理 3、论坛信息管理 4、公告信息管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算…

RabbitMQ讲解与整合

RabbitMq安装 类型概念 租户 RabbitMQ 中有一个概念叫做多租户&#xff0c;每一个 RabbitMQ 服务器都能创建出许多虚拟的消息服务器&#xff0c;这些虚拟的消息服务器就是我们所说的虚拟主机&#xff08;virtual host&#xff09;&#xff0c;一般简称为 vhost。 每一个 vhos…

NLP-词向量、Word2vec

Word2vec Skip-gram算法的核心部分 我们做什么来计算一个词在中心词的上下文中出现的概率&#xff1f; 似然函数 词已知&#xff0c;它的上下文单词的概率 相乘。 然后所有中心词的这个相乘数 再全部相乘&#xff0c;希望得到最大。 目标函数&#xff08;代价函数&#xff0…