介绍
最小二乘法是一种在误差估计、不确定度、系统辨识及预测、预报等数据处理诸多学科领域得到广泛应用的数学工具 。最小二乘法是一种机器学习算法。
关于其原理的介绍以及公式推导有很多优质资料,比如我学习最小二乘法时的两个视频课程。本文不再介绍原理,而是介绍最小二乘法的工程应用。
数学建模之数据拟合(3):最小二乘法_哔哩哔哩_bilibili
[知识梳理-04] Recursive Least Squares 递归最小二乘法 RLS_哔哩哔哩_bilibili
工程实践
本文介绍函数拟合与信号预测方面的应用,学会基本的使用之后,读者可以根据自身需求应用到误差估计、参数辨识等领域,具体使用方法可以参考相关文献资料。使用Matlab作为演示,为了展示最小二乘法的向量表示,不使用Matlab的库函数。读者自己使用时也可以使用matlab的函数,比如polyfit、lsqcurvefit等,他们都是基于最小二乘法,根据需求选择函数,查看Matlab帮助文档即可。
用最小二乘求解非线性曲线拟合(数据拟合)问题 - MATLAB lsqcurvefit- MathWorks 中国
多项式曲线拟合 - MATLAB polyfit- MathWorks 中国
计算公式
向量计算
普通的最小二乘法只有两个公式,其中:
inv(A):求A得逆矩阵
X.' :求X得转置矩阵
function [ w ] = LS_Fitting( X, Y)
%输入: X 自变量矩阵
% Y 因变量矩阵
%输出: w 系数矩阵
%作者:飞鸟
P = inv(X.'*X );
w = P * X.' * Y;
end
转换优化问题求解
最小二乘法可以转化为优化问题,我们假设目标方程为一阶线性方程,即:y = ax + b ,我们的目的是求解一个合适的a和b,使得目标函数的值最小。通过极值的方法进行求解,会涉及高数中的求偏导。当然不懂偏导也没有关系,我们直接看求解结果,会使用就行。
求解结果:
在c语言中,不方便进行矩阵、向量运算,可以直接使用a、b的求解结果。实际使用时,x与y均为已知量。计算为最基本的加减乘除运算,我们很容易写出运算的代码。
a、b为一阶线性方程的解,一般一阶线性方程就可以了,如果需要其他目标方程,可以去查阅相关资料,查找的资料也是直接查找对应的系数值(a、b、...)就行,不用关注推导过程。
函数拟合
我们已经介绍了2种最小二乘法的计算方法,可以根据数据求解出我们需要的目标方程,以下是算法实践。
线性方程
目标方程:y = ax + b
系数矩阵:w = [a;b];
- 以奥运会历年男子百米成绩作为数据,历年年份写为自变量矩阵。历年成绩写为因变量矩阵。注意X自变量矩阵的写法,之后看到非线性方程会更加清晰。
X = [ 1980 1
1984 1
1988 1
1992 1
1996 1
2000 1
2004 1
2008 1
2012 1
2016 1
2020 1 ];
Y = [ 10.25
9.99
9.92
9.96
9.84
9.87
9.85
9.69
9.63
9.81
9.80];
w= LS_Fitting( X, Y);
- 将数据输入函数LS_Fitting计算得到系数矩阵。 获得系数矩阵w,就拟合出了线性方程y = ax + b
- 数据对比如下图,拟合数据基本复合实际数据的趋势。
非线性方程
目标方程:y = ax^2 + bx + c
系数矩阵:w = [a;b;c];
- 以奥运会历年男子百米成绩作为数据,历年年份写为自变量矩阵。历年成绩写为因变量矩阵。注意X自变量矩阵的写法,自变量矩阵的写法包含了目标方程的信息。
X = [ 1980*1980 1980 1
1984*1984 1984 1
1988*1988 1988 1
1992*1992 1992 1
1996*1996 1996 1
2000*2000 2000 1
2004*2004 2004 1
2008*2008 2008 1
2012*2012 2012 1
2016*2016 2016 1
2020*2020 2020 1];
Y = [ 10.25
9.99
9.92
9.96
9.84
9.87
9.85
9.69
9.63
9.81
9.80];
w= LS_Fitting( X, Y);
- 将数据输入函数LS_Fitting计算得到系数矩阵。 获得系数矩阵w,就拟合出了线性方程y = ax^2 + bx + c
- 数据对比如下图,拟合数据基本复合实际数据的趋势,并且相比线性方程,一元二次非线性方程的拟合效果更好。
信号预测
以非线性方程拟合结果预测2024年百米冠军成绩为例,拟合方程为:
Fun =(1039712176776813*x^2)/2305843009213693952 - (8167480322080091*x)/4503599627370496 + 4031421507106269/2199023255552
带入年份x=2024,输出预测成绩:9.8228
总结
最小二乘法应用广泛,拟合方程后的用法也不只是信号预测方面,例如还可以做智能控制,可以结合本文的拟合方法带入自己的应用场景。实际使用中,灵活选择目标方程,可以获得更好的拟合结果。
以上介绍的最小二乘法对离线数据进行拟合,而递归最小二乘法可以应用于时变系统,可以进行实时的参数估计、自适应控制等,并且占用内存资源更小,下一篇文章中介绍递归最小二乘法。
参考资料:文章来源:https://www.toymoban.com/news/detail-769108.html
曹连江著,电子信息测量及其误差分析校正的研究,东北师范大学出版社,2017.09,第260页文章来源地址https://www.toymoban.com/news/detail-769108.html
到了这里,关于最小二乘法工程实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!