线性回归 - 使用啥算法来解决最小二乘法 - 逆或 LU 或......?

     2023-02-22     62

关键词:

【中文标题】线性回归 - 使用啥算法来解决最小二乘法 - 逆或 LU 或......?【英文标题】:Linear Regression - What algorithm to use to solve least squares method - inverse or LU or ...?线性回归 - 使用什么算法来解决最小二乘法 - 逆或 LU 或......? 【发布时间】:2013-10-21 17:05:01 【问题描述】:

我正在研究对一个或多个自变量执行线性回归的算法。

即:(如果我有m 真实世界的值并且在两个独立变量ab 的情况下)

C + D*a1 + E* b1 = y1

C + D*a2 + E* b2 = y2

...

C + D*am + E* bm = ym

我想使用最小二乘法找到最合适的直线。

我将使用矩阵表示法 所以

其中 Beta 是向量 [C, D, E],其中这些值将是最佳拟合线。

问题 解决这个公式的最佳方法是什么?我应该计算的倒数吗?

或者我应该使用矩阵的 LU 分解/分解。每个在大量数据上的性能是什么(即 m 的大值,可能是 10^8 ...)

编辑

如果答案是使用 Cholesky 分解或 QR 分解,是否有任何实现提示/简单的库可供使用。 我正在用 C/C++ 编写代码。

【问题讨论】:

【参考方案1】:

想到解决密集超定系统 Ax=b 的两种直接方法:

    形成 A^T A x = A b,然后 Cholesky 因式分解 A^T A = L L^T,然后进行两次反解。这通常会让你得到一个精确到 sqrt(machine epsilon) 的答案。

    计算 QR 分解 A = Q*R,其中 Q 的列是正交的,R 是正方形和上三角形,使用类似 Householder 消除的方法。然后通过反向替换为 x 求解 Rx = Q^T b。这通常可以让您得到精确到机器 epsilon 的答案——精度是 Cholesky 方法的两倍,但所需时间大约是两倍。

对于稀疏系统,我通常更喜欢 Cholesky 方法,因为它可以更好地利用稀疏性。

【讨论】:

【参考方案2】:

您的 X^TX 矩阵应该具有 Cholesky 分解。我会在 LU 之前研究这种分解。更快:http://en.wikipedia.org/wiki/Cholesky_decomposition

【讨论】:

如何计算逆?我应该避免这种情况吗? -- 谢谢 一般首选避免矩阵求逆。您可能会遇到数值稳定性问题,并且存储倒数可能会导致内存效率低下。坚持使用分解方法(它们的存在是有原因的)。 Cholesky 方法可以在许多包中找到(gsl 等...) 谢谢。感谢您的回复 您使用哪种语言? 由于您的矩阵大小,@Saher 您可能也会阅读这篇文章:***.com/questions/13148052/…

线性回归——最小二乘法

上篇文章中介绍了单变量线性回归,为什么说时单变量呢,因为它只有单个特征,其实在很多场景中只有单各特征时远远不够的,当存在多个特征时,我们再使用之前的方法来求特征系数时是非常麻烦的,需要一个特征系数一个... 查看详情

最小二乘法求解线性回归模型

✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。 查看详情

线性回归——最小二乘法

相信学过数理统计的都学过线性回归(linearregression),本篇文章详细将讲解单变量线性回归并写出使用最小二乘法(leastsquaresmethod)来求线性回归损失函数最优解的完整过程,首先推导出最小二乘法,后用最小二乘法对一个简... 查看详情

最小二乘法的多元线性回归(代码片段)

...0c;通过最小化误差的平方和来寻找合适的数据拟合函数。线性模型的最小二乘可以有很多方法来实现,比如直接使用矩阵运算求解析解,sklearn包(参考:用scikit-learn和pandas学习线性回归、用scikit-learn求解多元线性... 查看详情

机器学习模型和算法(代码片段)

文章目录python简介python基本语法监督学习--回归模型线性回归模型一元线性回归线性回归最小二乘代码实现多元线性回归梯度下降法和最小二乘法相比线性回归梯度下降代码实现非线性回归python简介略python基本语法文件开头加上#... 查看详情

浅谈最小二乘法

...需的方法,而不是最小二乘法。最小二乘问题分为两类:线性或普通最小二乘和非线性最小二乘,这取决于残差在所有未知量中是否是线性的。线性最小二乘问题发生在统计回归分析中,它有解析解。非线性问题通常是通过迭代... 查看详情

01-线性回归算法

机器学习分类:回归,分类   回归:最终得到的是在一个区间上真正(实际)的值   分类:最终得到的是个逻辑值0/1,是与不是,能与不能之类的答案名词解释:      拟合:拟合就是把... 查看详情

线性回归方程是如何求得的?

参考技术A线性回归都可以通过最小二乘法求出其方程,可以计算出对于y=bx+a的直线。拟合是推求一个函数表达式y=f(x)来描述y和x之间的关系,一般用最小二乘法原理来计算。用直线来拟合时,可以叫一次曲线拟合,虽然有点别扭... 查看详情

01_有监督学习--简单线性回归模型(最小二乘法代码实现)(代码片段)

有监督学习--简单线性回归模型(最小二乘法代码实现)0.引入依赖1.导入数据(data.csv)2.定义损失函数3.定义模型拟合函数4.测试:运行最小二乘算法,计算w和b5.画出拟合曲线6.附录-测试数据有监督学习--简单线性回归模型(最... 查看详情

机器学习白板,最小二乘法,线性回归,矩阵表达

机器学习-白板推导系列(三)-线性回归(LinearRegression)_哔哩哔哩_bilibili目录最小二乘法,线性回归 几何意义讲解 查看详情

线性回归——最小二乘法_实例

...,这里使用程序代码的方式计算出矩阵形式的解,并给出线性拟合;Octave代码clearall;closeall;%拟合的数据集x=[1,2;1,6;1,9;1,13];y=[4;8;12;21];%根据公式w=(x‘*x)^-1*x‘*y%与上篇文章一样一步步分解如下,其实这里可以不用分解,上篇文章... 查看详情

机器学习算法概述第一章——线性回归

...算机做出一系列的行为。二、机器学习的主要算法  ①线性回归算法    衍生的:正则化   ②逻辑回归算法  ③KNN算法    衍生的KD-tree三、算法介绍  ①线性回归算法  运用线性模型y=ax+b,去拟合数据... 查看详情

机器学习线性回归——最小二乘法的几何意义

查看详情

机器学习线性回归——最小二乘法(理论+图解+公式推导)

查看详情

最小二乘法求线性回归方程的公式是啥?

参考技术A最小二乘法求线性回归方程为a=y(平均)-b*x(平均)。最小二乘法公式是一个数学的公式,在数学上称为曲线拟合,此处所讲最小二乘法,专指线性回归方程!最小二乘法公式为a=y(平均)-b*x(平均)。最小二乘法(又称... 查看详情

最小二乘法学习(分享自其他博主)

二.最小二乘法  我们以最简单的一元线性模型来解释最小二乘法。什么是一元线性模型呢? 监督学习中,如果预测的变量是离散的,我们称其为分类(如决策树,支持向量机等),如果预测的变量是连续的,我们称... 查看详情

spss数据分析—两阶段最小二乘法

传统线性模型的假设之一是因变量之间相互独立,并且如果自变量之间不独立,会产生共线性,对于模型的精度也是会有影响的。虽然完全独立的两个变量是不存在的,但是我们在分析中也可以使用一些手段尽量减小这些问题产... 查看详情

ml-1线性回归基础--用于预测

线性回归可以说是机器学习中最基本的问题类型了,这里就对线性回归的原理和算法做一个小结目录背景简述内容详解密度聚类层次聚类模型效果判断附件:手写推导过程练习一、线性回归函数定义 二、线性回归的模型函数... 查看详情