基于回归曲线拟合模型的ALS(最小二乘法)推导过程以及Python实现

来源:互联网 发布:女程序员 编辑:程序博客网 时间:2024/04/28 20:28

概念

最小二乘法(Alternative -Least-Squares)是一种迭代算法。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法可用于曲线拟合。
二乘法曲线拟合:根据给定的n个点,并不要求这条曲线精确地经过这些点,而是曲线y=f(x)的近似曲线y= φ(x)。

原理

给定数n个数据点p(xi,yi),其中i=1,2,…,n。求近似曲线y= φ(x)。并且使得近似曲线与y=f(x)的偏差最小。近似曲线在点p处的偏差δi= φ(xi)-yi,i=1,2,…,n。

常见的拟合方法有:

  • 使偏差绝对值之和最小
    这里写图片描述
  • 使偏差绝对值最大的最小
    这里写图片描述
  • 使偏差平方和最小
    这里写图片描述

按偏差平方和最小的原则选取拟合曲线,并且采取二项式方程为拟合曲线的方法,称为最小二乘法

推导过程

  1. 设拟合多项式为:
    这里写图片描述
  2. 各点到这条曲线的距离之和,即偏差平方和如下:
    这里写图片描述
  3. 为了求得符合条件的a值,对等式右边求ai偏导数,因而我们得到了:
    这里写图片描述

  4. 将等式左边进行一下化简,然后应该可以得到下面的等式:


    1. 把这些等式表示成矩阵的形式,就可以得到下面的矩阵:
  5. 将这个范德蒙得矩阵化简后可得到:
  6. 也就是说X*A=Y,那么A = (X’*X)-1*X’*Y,便得到了系数矩阵A,同时,我们也就得到了拟合曲线。

实现

0 0