最小二乘法拟合直线(平面直线)
最小二乘法(英文:least square method)是一种常用的数学优化方法,所谓二乘就是平方的意思。这平方一词指的是在拟合一个函数的时候,通过最小化误差的平方来确定最佳的匹配函数,所以最小二乘、最小平方指的就是拟合的误差平方达到最小。如下所示:
f = ∑ i = 1 n ( a x i + b − y i ) 2 f=\sum\limits_{i=1}^{n}(ax_i+b-y_i)^2 f=i=1∑n(axi+b−yi)2
求多元函数的极值点,我们可以令其各个偏导数等于0,然后解方程即可。
假设我们最小二乘的误差函数为
S
e
2
S_e^2
Se2,则有如下方程:
通过解方程进一步得到y=ax+b的参数a和b。
通过上面的式子不难发现,实际计算时,我们只需要计算出t1, t2, t3, t4即可进一步计算a,b。
判断拟合函数为y还是x
PCA法拟合直线(空间直线)
# Python代码验证(可选)
import numpy as np
points = np.array([[2,1,0], [3,2,1], [4,3,2]])
centroid = np.mean(points, axis=0)
X = points - centroid
C = np.cov(X, rowvar=False)
eigenvalues, eigenvectors = np.linalg.eigh(C)
direction = eigenvectors[:, np.argmax(eigenvalues)]
print("拟合直线方向向量:", direction) # 输出 [0.577, 0.577, 0.577](即1/√3)
当数据点严格共线时,PCA能完美还原直线;若存在噪声,拟合直线则为最小二乘最优解。
SVD法拟合直线(空间直线)
参考文献
[1] 最小二乘法拟合直线
[2] https://www.cnblogs.com/ghj1976/p/zui-xiao-er-cheng-zhi-xian-ni-he.html