拟合
拟合中可能会遇到的问题以及解决办法
- 噪声:不是真正意义上的点
- 外点:和噪声意义不一样,噪声可能是偏离线上的点,外点是指除目标线以外的点
- 数据丢失:数据采集时可能面临各种问题,其将导致图中我们想要的线不连续,在拟合时我们也要考虑将其起来
面临上述问题,有以下经典算法可以解决相应问题:
- 如果我们知道所有属于某条线上的所有点,可以使用最小二乘的方法。
- 如果不属于该线上的点(噪声点)比较多,可以使用RANSAC方法。
- 如果有很多线,影响到我们提取某条线,可以用RANSAC或者Hough transform
- 线都不确定或者说我们不好去描述形状,可以使用snake(蛇形模型)
最小二乘拟合
解决拟合问题的经典算法一个是最小二乘拟合。其代价函数定义为使得拟合出来的点与实际点之间的误差最小的一条线,为了使代价函数最小化,我们对其进行求导,并把代数化的表达式转换为向量化的表达式,这将更有便于我们进行计算。运用线性代数相关基础知识,我们能够最终图中最后一个公式、
但是当采集数据点在坐标空间中进行变换时,最小二乘的拟合能力就没那么好使了。特别是当直线垂直于x轴时,最小二乘就不能够拟合了。
全最小二乘
此时,就可以使用全最小二乘来解决问题。
全最小二乘中度量的是点到直线的距离,并不像最小二乘中度量的是点沿着Y轴到直线上点的距离
同样,我们对其代数化过程转换为向量化过程。
这里有一个点要注意的是最终我们要求解的
(
a
b
)
(a \;b)
(ab)其实是
N
N
N向量,当目标函数对
N
N
N进行求导时,我们将能够得到
A
N
=
0
AN=0
AN=0这个表达式。这是其实可以使用特征值和特征向量相关的概念去求解式子。由特征值的定义可知,当特征值为0时,
A
N
=
0
AN=0
AN=0成立,所以我们只要找到特征值为0时所对应的特征向量就能够得到问题的解了。
全最小二乘法的几何解释
实际上其几何解释可以理解为:所有点到目标直线的法向量在直线上的点 的连线,这条连线在法向量上的投影最小,当所有投影都最小时,这条线就是我们要找的线。
用极大似然估计去理解全最小二乘法
对一个问题的理解有多种理解,我们可以用几何的思想去建模也可以用概率的思想去建模。将偏离点都看成噪声,并且噪声会符合正态分布,这就变成了概率的问题,后面也可以用朴素贝叶斯的方法去做了。这是用概率的思想去建模,同样如果我们用几何的思想去建模,随后就可以使用支持向量机等算法,这就是同一个问题,可以从不同角度出发去解决。