第一层 两点定一线
给出两个点的坐标和,求通过这两点的直线.
把直线方程和两个点的坐标代入后,可以得到一个方程组:
把 a,b,c 看作未知数,齐次方程组有非平凡解的条件是行列式等于 0:
可得直线方程为:.
第二层 多点拟合
有多个数据点时,拟合一条直线。记 n 个点的坐标为,.
设直线方程为,最小化,列出矩阵方程:
应用最小二乘法可得:
解出:
其中,为 x 和 y 坐标的平均值.
最小二乘法的缺陷是最小化的是点到直线的竖直距离的平方和,且不能拟合竖直的直线.
第三层 多点最优拟合
最优拟合是最小化点到直线的垂直距离的平方和.
设直线方向为单位向量,法向为单位向量,取直线上的一个点为坐标原点,得到平移后的坐标值:
到直线的距离为,投影到直线上的长度为,因为,有
记,
为点到直线的垂直距离的平方和,为点到直线投影长度的平方和.
是一个固定的数值,所以目标是选取合适的和,使最小且最大.
S 为二阶对称的正定矩阵,有一大一小两个正的本征值,对应两个正交的本征向量.
对于任意的向量 有:
因为,
所以,且仅当 与本征向量重合时取等号.
所以当为较小的本征值对应的本征向量时,最小且,同时为较大的本征值对应的本征向量,最大且.
这种方法叫做主成分分析法,如果取为协方差矩阵,那么为点到直线垂直距离的均方差.
如果已知直线确切地通过某个点,则可以把这个点作为坐标原点;否则由于
可见,当,时,的值最小,也就是说可以把坐标原点放到 n 个坐标点的中心点上。
记,
则, .
直线方程为:.
第四层 加权拟合
每个点除了有坐标值,还有权重. 下图中点的颜色越深,权重越大.
取,.
取,
其余计算方法同上。
第五层 排除异常数据的干扰
数据在测量过程可能会受到干扰,或者录入错误等,下图左边是正常的拟合,右边是排除外点的拟合.
有两种思路:
1、随机抽样一致算法:随机选取 k 个点进行拟合,剩余的点到直线距离平方大于方差的记作外点(outliers),重复 N 次,返回外点个数最小的一组数据点所拟合的直线.
2、加权迭代算法:先设初始权重都为 1,拟合一条直线,取每个点到直线的距离,当小于平均距离时取距离的平均值,然后把的倒数作为权重再次拟合,迭代进行,直到最近两次拟合的方差没有明显改善时停止.