`
kavy
  • 浏览: 890683 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

最小二乘法

 
阅读更多

https://endlesslethe.com/easy-to-learn-ols.html
有更多总结分享,最新更新也只会发布在我的个人网站上。排版也可能会更好看一点=v=

前言
最小二乘法在统计学的地位不必多言。本文的目的是全面地讲解最小二乘法,打好机器学习的基础,后面的系列文章会继续讲解最小二乘的正则化。
至于非线性最小二乘和广义线性模型,如果以后有时间会进行整理。
1
2
不熟悉极大似然法的读者可以阅读我的另一篇文章《十分钟学习极大似然估计》

核心思想
最小二乘法是勒让德( A. M. Legendre)于1805年在其著作《计算慧星轨道的新方法》中提出的。它的主要思想就是求解未知参数,使得理论值与观测值之差(即误差,或者说残差)的平方和达到最小:
E=∑i=1ne2i=∑i=1n(yi−y^)2
E=∑i=1n⁡ei2=∑i=1n⁡(yi−y^)2

观测值yiyi就是我们的多组样本,理论值y^y^就是我们的假设拟合函数。目标函数也就是在机器学习中常说的损失函数EE,我们的目标是得到使目标函数最小化时候的参数。
所谓最小二乘,其实也可以叫做最小-平方和,其目的就是通过最小化误差的平方和,使得拟合对象无限接近目标对象。换句话说,最小二乘法可以用于对函数的拟合。
1
直观理解
均方误差有非常好的几何意义,它对应了常用的欧几里德距离。在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线的欧氏距离之和最小。

假设有一条直线y=ax+by=ax+b,要在这条直线上找到一点,距离(x0,y0)(x0,y0)这个点的距离最短。如果用绝对值的方法寻找,也就是取min(|y−y0|+|x−x0|)min(|y−y0|+|x−x0|),由于绝对值最小为0,所以最小的情况就是x=x0x=x0或者y=y0y=y0处,如下图1所示。


如果用平方和的方法寻找,就是取min(y−y0)2+(x−x0)2min(y−y0)2+(x−x0)2,可以看出该式是两点间距离公式,也就是距离的概念。那么最短的距离,就是点到直线的垂线,如下图2所示。


事实上,最小二乘法的解θ=(XTX)−1XTYθ=(XTX)−1XTY正符合投影矩阵的公式:将Y向量投影到X构成的平面上。

Note:最小二乘法用途很广,不仅限于线性回归。

通用解法
列出损失函数EE,样本值用来xi表示
对参数求导,解得最小值
此时的参数即为所求
对真值的估计
可以说整部数理统计学的历史,就是对算术平均不断深入研究的历史。而最小二乘法可以解释为什么多次测量取算术平均的结果就是真值,比如估计身高可以测三次后取平均。

当我们对于某个未知量θθ观测mm次,记每次的结果为xixi
E=∑i=1me2i=∑i=1m(xi−nn)2

求导得
∑i=1n−(xi−a)=0

所以θ=x¯=∑ximθ=x¯=∑xim
直线拟合/多元线性回归
求导计算最小值是通用解法,但矩阵法比代数法要简洁,且矩阵运算可以取代循环,所以现在很多书和机器学习库都是用的矩阵法来做最小二乘法。

对于函数hθ(x1,x2,…xn)=θ0+θ1x1+…+θnxnhθ(x1,x2,…xn)=θ0+θ1x1+…+θnxn,我们将其的矩阵形式记作:


故损失函数定义为:(系数1/2是为了简化计算添加的,求迹前和求迹后值不变)


应用矩阵迹的计算公式:


令上式为0,解得θ=(XTX)−1XTYθ=(XTX)−1XTY
Note:矩阵求导坑多,使用迹来计算比较方便。

线性回归的t检验
记n为回归方程的特征个数,m为样本数
S回=∑i=1m(y^−y¯¯¯)

S剩=∑i=1m(yi−y^)
总平方和(SST)可分解为回归平方和(SSR)与残差平方和(SSE)两部
MSR=SSR/k

MSE=SSE/(n−k−1)

F=MSRMSE=S回/kS剩/(n−k−1)
F=MSRMSE=S回/kS剩/(n−k−1)
若用样本计算的F>F0.05(k,n−k−1),则拒绝H0H0,则回归方程在显著性水平α=0.05α=0.05下是显著的

最小二乘法的适用场景
当样本量mm很少,小于特征数nn的时候,这时拟合方程是欠定的,需要使用LASSO。当m=nm=n时,用方程组求解。当m>nm>n时,拟合方程是超定的,我们可以使用最小二乘法。

局限性
首先,最小二乘法需要计算(XTX)−1(XTX)−1逆矩阵,有可能逆矩阵不存在,这样就没有办法直接用最小二乘法。
第二,当样本特征n非常的大的时候,计算逆矩阵是一个非常耗时的工作,甚至不可行。建议不超过10000个特征。
第三,如果拟合函数不是线性的,这时无法使用最小二乘法,需要通过一些技巧转化为线性才能使用。
最小二乘法和M估计
在统计数据时,难免会遇到异常值,即人为误差。而这种误差对结果的影响远比系统误差大,比如将1记录成10。所以我们使用稳健性来评价一个方法对异常值的敏感程度。

最小二乘法是一种稳健性较差的方法,原因在于其目标函数是误差的平方,是一个增长很快的函数。
所以不难想到,对于E=∑f(xi)E=∑f⁡(xi),我们可以取f(x)=|x|f(x)=|x|
来减小函数的增长速度。
统计学家休伯将这一想法用于对一个未知量θθ参数估计的情况,即:
xi=θ+eixi=θ+ei,取定函数ρρ,找出使函数M(θ)=∑i=1mρ(xi−θ)M(θ)=∑i=1m⁡ρ(xi−θ)达到最小的θ^θ^,将其作为θθ的估计值。θ^θ^称为θθ的M估计。

M估计是一类估计,主要包括ρ(u)=u2ρ(u)=u2的最小二乘法和ρ(u)=|x|ρ(u)=|x|的最小一乘法。M估计也可以和最小二乘法一样,推广到多元线性回归,称为稳健回归,但是因为难于计算等局限,应用并不广泛。

Note:最小一乘法对未知参数θ的估计值θ^=xi的中位数θ^=xi的中位数
最小二乘法和正则化
当(XTX)−1(XTX)−1不存在,即XTXXTX不满秩时,θθ无唯一解。

故考虑在原先的A的最小二乘估计中加一个小扰动λIλI,使原先无法求广义逆的情况变成可以求出其广义逆,使得问题稳定并得以求解。有:
θ^=(XTX+λI)−1XTYθ^=(XTX+λI)−1XTY
而此时对应的损失函数为
J(θ)=∑i=1m(yi−θTxi)2+λ||θ||22

上式称为岭回归(ridge regression),通过引入L2范数正则化。
当然也可以将L2范数替换为L1范数。对应有
J(θ)=∑i=1m(yi−θTxi)2+λ||θ||1

上式称为LASSO。
对于L2范数,本质上其实是对误差的高斯先验。
而L1范数则对应于误差的Laplace先验。

最小二乘法的理论证明
拉普拉斯指出随机误差应满足正态分布,而高斯创造性地发明并使用极大似然法证明了最小二乘法。
故测量误差服从高斯分布的情况下, 最小二乘法等价于极大似然估计。

对于任何拟合方程都有:y=y^+ey=y^+e
因为e∼N(0,σ2)e∼N(0,σ2),故y∼N(y^,σ2)y∼N(y^,σ2)
由极大似然估计,L(θ)=∏if(yi)L(θ)=∏i⁡f(yi)
L=1(2π−−√σ)nexp{−12σ2∑i=1n(yi−y^)2}=1(2π−−√σ)nexp−12σ2∑i=1ne2i
Note:数学的发展史很多时候是不符合逻辑顺序的。事实上,高斯当时是循环论证最小二乘法的,推理有缺陷。而后拉普拉斯才弥补了这一点。其中故事可以见《数理统计学简史》。

参考文献
I. 《数理统计学简史》 陈希孺著
II. 《机器学习》 周志华著
III. 正态分布的前世今生(二)
IV. 最小二乘法的本质是什么?
V. 最小二乘法小结
VI. 到底什么是最小二乘法?
VII. 最小二乘法和线性回归及很好的总结
VIII. 最小二乘法与岭回归的介绍与对比
IX. 最小二乘法
X. 最优化理论·非线性最小二乘
XI. Linear least squares, Lasso,ridge regression有何本质区别?
XII. 为什么最小二乘法对误差的估计要用平方?
---------------------

原文:https://blog.csdn.net/u011893609/article/details/80016915

 

分享到:
评论

相关推荐

    最小二乘法线性拟合工具

    最小二乘法线性拟合是一种在统计学和数据分析中广泛应用的方法,用于寻找一组数据的最佳直线近似。这个工具提供了一个便捷的方式,让用户能够手动输入数据,并自动进行最小二乘法计算,从而得到数据的线性拟合模型。...

    各种最小二乘法汇总

    最小二乘法是一种数学优化技术,通过最小化误差的平方和寻找数据的最佳函数匹配。该方法广泛应用于曲线拟合、系统辨识、数据分析等领域。在系统辨识和自动化领域,最小二乘法为模型参数的估计提供了基础方法。 1. ...

    平面度误差的最小二乘法分析

    平面度误差的评定方法有简便法、最小二乘法和最小包容区域法等。本文主要探讨了最小二乘法在平面度误差分析中的应用。 最小二乘法是一种数学优化技术,它通过最小化误差的平方和来寻找数据的最佳函数匹配。在平面度...

    python最小二乘法三维坐标拟合平面-最小二乘法拟合平面

    Python 最小二乘法三维坐标拟合平面 本资源主要讲述了使用 Python 实现最小二乘法三维坐标拟合平面的方法。该方法使用 OpenCV 库来实现平面拟合,通过对点云数据的处理和_singular value decomposition(SVD)来...

    代码 最小二乘法基本程序代码

    代码 最小二乘法基本程序代码代码 最小二乘法基本程序代码代码 最小二乘法基本程序代码代码 最小二乘法基本程序代码代码 最小二乘法基本程序代码代码 最小二乘法基本程序代码代码 最小二乘法基本程序代码代码 最小...

    最小二乘法系统辨识matlab代码.zip

    在这个压缩包中,包含了几种基于最小二乘法的系统辨识方法的MATLAB代码实现,如递推最小二乘法、遗忘因子最小二乘法、增广最小二乘法和辅助变量法。 1. **最小二乘法**:最小二乘法的基本思想是找到一组参数,使得...

Global site tag (gtag.js) - Google Analytics