题目要求简单线性回归,也就是给一组二维坐标,比如[0,1],[2,2],[5,4]...等等,然后求出对应在直角坐标系里的回归的直线的斜率和截距即可。
上网查了查,资料说有啥最小二乘法,牛顿法,梯度下降法等等,说实话公式一个也没看懂。初中数学给的那个线性回归公式倒是看懂了,算起来也挺简单的。从计算效率角度讲,具体算的时候用哪种方法比较快?

题目要求简单线性回归,也就是给一组二维坐标,比如[0,1],[2,2],[5,4]...等等,然后求出对应在直角坐标系里的回归的直线的斜率和截距即可。
上网查了查,资料说有啥最小二乘法,牛顿法,梯度下降法等等,说实话公式一个也没看懂。初中数学给的那个线性回归公式倒是看懂了,算起来也挺简单的。从计算效率角度讲,具体算的时候用哪种方法比较快?
1 billlee Nov 12, 2023 你这个一维模型应该是最小二乘法快吧,不过一维模型真的需要考虑效率问题吗?不是随便算都行 |
2 ranaanna Nov 12, 2023 这么简单的线性回归问题,当然是最小二乘法罗。以前做实验的时候数据少都是手工或者用计算器算的。用电脑算实在是完全不在话下,现在流行机器学习人工智能什么的,海量的线性回归都没有问题,更不要说这么简单的。那些高斯牛顿法梯度下降法什么的是用来求函数最小值问题的,当然就不限于线性问题了,用来处理非线性最小二乘问题比较合适。这么简单的问题就先不要考虑那种方法比较快了 |
3 iorilu Nov 12, 2023 线性回归, 直接调公式就出来啊, 不用迭代 公式任何一个线性代数库都 |
4 dayeye2006199 Nov 12, 2023 (X^T X)^-1 X^T Y 矩阵乘法直接撸就行 |
5 LykorisR Nov 12, 2023 最小二乘法,Ax=b, x=(A^TA)^-1*A^Tb |
6 iOCZS Nov 12, 2023 数学计算的话,用最小二乘法就行了。 写代码的话,梯度下降这种迭代思想容易写成代码。 |
7 gpt5 Nov 12, 2023 一般来说,自己手写的,都不如调包快。 特别是久经优化和考验的包。 |
8 lithiumii Nov 12, 2023 via Android div class="sep5"> 只要结果的话矩阵运算最快,需要各种参数(什么 t 啊 p 啊 f 啊之类的)调包快 |
9 ruxuan1306 Nov 12, 2023 Excel-数据分析-回归 |
10 ruxuan1306 Nov 12, 2023 哦不好意思没注意,原来是在对比计算机运行的效率,不是人算出结果的效率 |
11 jc89898 Nov 12, 2023 @dayeye2006199 你这个有很大的问题,一般都是近似法,直接计算 inverse 对大 matrix 根本不行 |
12 t133 Nov 12, 2023 via iPhone @jc89898 解线性方程可以用 CG 需要 vector matrix multiplication. 也可以用 cholesky decomposition |
13 YsHaNg Nov 13, 2023 svd 有 c 接口用 eigen 直接调用 |
14 dun2 Nov 13, 2023 python 走起.. ``` import numpy as np from sklearn.linear_model import LinearRegression x = np.array([0, 2, 5]).reshape(-1, 1) y = np.array([1, 2, 4]) model = LinearRegression() model.fit(x, y) print(f"斜率:", model.coef_[0]) print(f"截距:", model.intercept_) ``` |
15 sakura6264 Nov 13, 2023 最小二乘比较快吧。 真特别追求效率可以把演算挪到 GPU 上 |
16 vvhy Nov 13, 2023 单变量线性回归,“初中方法”就好了啊,反正都是 O(n),区别不大,用最简单的就行了 |
17 rogerer Nov 14, 2023 via iPhone 最小二乘法因为涉及到矩阵运算 在高维的时候效率比较低 |