最小二乘法 订阅
最小二乘法是一种在误差估计、不确定度、系统辨识及预测、预报等数据处理诸多学科领域得到广泛应用的数学工具 [1]  。 展开全文
最小二乘法是一种在误差估计、不确定度、系统辨识及预测、预报等数据处理诸多学科领域得到广泛应用的数学工具 [1]  。
信息
提出者
马里·勒让德 [2]
别    名
最小平方法 [1]
适用领域
曲线拟合 [3]
中文名
最小二乘法 [2]
外文名
ordinary least squares [2]
提出时间
1806年 [2]
最小二乘法历史
1801年,意大利天文学家朱赛普·皮亚齐发现了第一颗小行星谷神星。经过40天的跟踪观测后,由于谷神星运行至太阳背后,使得皮亚齐失去了谷神星的位置。随后全世界的科学家利用皮亚齐的观测数据开始寻找谷神星,但是根据大多数人计算的结果来寻找谷神星都没有结果。只有时年24岁的高斯所计算的谷神星的轨道,被奥地利天文学家海因里希·奥尔伯斯的观测所证实,使天文界从此可以预测到谷神星的精确位置。同样的方法也产生了哈雷彗星等很多天文学成果。高斯使用的方法就是最小二乘法,该方法发表于1809年他的著作《天体运动论》中 [2]  [4]  。其实法国科学家勒让德于1806年独立发明“最小二乘法”,但因不为世人所知而默默无闻 [2]  。1829年,高斯提供了最小二乘法的优化效果强于其他方法的证明 [5]  。
收起全文
精华内容
下载资源
问答
  • 最小二乘法

    万次阅读 多人点赞 2018-01-07 15:20:04
    最小二乘法的思想 最小二乘法则是一种统计学习优化技术,它的目标是最小化误差平方之和来作为目标,从而找到最优模型,这个模型可以拟合(fit)观察数据。 回归学习最常用的损失函数是平方损失函数,在此情况下,...

    最小二乘法的思想

    最小二乘法则是一种统计学习优化技术,它的目标是最小化误差平方之和来作为目标,从而找到最优模型,这个模型可以拟合(fit)观察数据。
    回归学习最常用的损失函数是平方损失函数,在此情况下,回归问题可以用著名的最小二乘法来解决。最小二乘法就是曲线拟合的一种解决方法。
    最小二乘法的问题分为两类:

    • 线性最小二乘法
    • 非线性最小二乘法

    如果是线性的则有闭式解(closed-form solution),唯一解。理解为所有点都在某条线上,全拟合好了。
    非线性的经常需要数值方法来求解。比如:随机梯度下降或者牛顿法等。当然,随机梯度下降也可以解决线性问题。

    目标公式

    J(θ)=∑i=1m(fθ(xi)−yi)2(1)J(\theta)= \sum_{i=1}^{m} (f_\theta(x_{i})-y_{i})^2 \tag{1}J(θ)=i=1m(fθ(xi)yi)2(1)
    最小二乘法的目标就是最小化公式1。f则是模型(取自假设空间),y则是观察值。
    通俗来讲,就是观察值和拟合值(模型给出)之间的距离平方和最小化作为目标来优化。

    求解方法

    矩阵求导方法

    思想就是把目标函数划归为矩阵运算问题,然后求导后等于0,从而得到极值。以线性回归问题为例:
    求解最小二乘的问题推导为如下:求解变量θ\thetaθ,满足
    (XTX)θ=XTy(2) (X^T X)\theta = X^Ty {\tag2} (XTX)θ=XTy(2)
    如果可逆,将得到:
    θ=(XTX)−1XTy \theta = (X^T X)^{-1}X^Ty θ=(XTX)1XTy
    这是利用矩阵得到的最小二乘法的一种解法。
    注意这是线性回归的最小二乘法的求解结果,不是其他问题的,其他问题的假设函数有时候很复杂。比如下面的博文对线性回归的推算挺好,但没有说明求导的大前提条件:线性回归,这容易把最小二乘法和最小二乘法的求解混在一起。
    http://blog.csdn.net/ACdreamers/article/details/44662633
    ##数值方法随机梯度下降
    思路:对参数向量求导,使其梯度为0,然后得到参数变量的迭代更新公式。
    θj:=θj−α∗∂J(θ)∂(θj)(3)\theta_j:=\theta_j - \alpha* \frac{\partial J(\theta)}{\partial(\theta_j)} \tag{3}θj:=θjα(θj)J(θ)(3)
    请参考:http://blog.csdn.net/iterate7/article/details/76709492
    ##数值方法牛顿法
    利用泰勒公式展开,利用梯度和海塞矩阵进行迭代下降。速度很快。
    xk+1=xk−Hk−1gk(4)x^{k+1}=x^{k}-H^{-1}_kg_{k} \tag{4}xk+1=xkHk1gk(4)
    变量以牛顿方法来下降。
    牛顿方向定义为:
    −Hk−1gk -H^{-1}_kg_{k} Hk1gk
    请参考:

    http://blog.csdn.net/iterate7/article/details/78387326

    最小二乘和梯度下降区别

    最小二乘看做是优化问题的话,那么梯度下降是求解方法的一种。梯度下降是一种解决最优化问题的数值方法。最小二乘法则是一个最优化问题。

    简单总结

    数值方法的基本含义则是对一个函数求极值,在无法直接求得解析解的情况下,通过求导为0的方法,找到迭代方向保证可以下降目标值,梯度方向或者牛顿方向等等。 逐步下降直到满足一些工程要求则结束迭代。

    后记

    1. 最小二乘法是一种对于偏差程度的评估准则思想,由公式1给出。个人认为,应该称之为:最小二乘准则。
    2. 公式1里没有给出f的值,也就是说假设空间。如果是线性回归,也就是wx+b的形式,那么公式2就是最小二乘法的解。所以大部分的博文都在此范畴讨论。为何都用这个线性回归直接说呢,其实最小二乘准则更适合线性回归。应该称之为狭义的最小二乘方法,是线性假设下的一种有闭式解的参数求解方法,最终结果为全局最优。
    3. 梯度下降只是数值求解的具体操作,和最小二乘准则下面的最优化问题都可以用随机梯度下降求解。

    线性回归python

    import numpy as np
    import matplotlib.pyplot as plt
    data = np.array([
        [1, 6],
        [2, 5],
        [3, 7],
        [4, 10]
    ])
    m = len(data)
    X = np.array([np.ones(m), data[:, 0]]).T
    print("X:", X)
    y = np.array(data[:, 1]).reshape(-1, 1)
    print("y:",y)
    W = np.linalg.solve(X.T.dot(X), X.T.dot(y)) ## 求解XW=y的值,W
    print("W:",W)
    
    ##show
    plt.figure(1)
    xx = np.linspace(0, 5, 2)
    yy = np.array(W[0] + W[1] * xx)
    plt.plot(xx, yy.T, color='b')
    plt.scatter(data[:, 0], data[:, 1], color='r')
    plt.show()
    

    这里写图片描述

    参考

    机器学习 周志华 线性模型和最小二乘法
    https://en.wikipedia.org/wiki/Least_squares
    https://en.wikipedia.org/wiki/Linear_least_squares_(mathematics)
    https://en.wikipedia.org/wiki/Newton’s_method_in_optimization

    展开全文
  • 最小二乘法和增广最小二乘法的MATLAB源码,文件主要包括:产生白噪声和有色噪声的代码,递推最小二乘法,增广最小二乘法,绘图plot

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,732
精华内容 3,492
关键字:

最小二乘法