最小二乘法(least squares)
2016-12-06 14:28
351 查看
都忘了,再回顾一下:
参考知乎 https://www.zhihu.com/question/20447622 该问题下面的部分回答:
建议有时间的把问题下面的所有答案都过一遍,这样可以通过不同的切入点来更好的理解。
最小二乘法,也叫最小平方法,在古汉语中“平方”称为“二乘”,“最小”指的是参数的估计值要保证各个观测点与估计点的距离的平方和达到最小。(记得赟哥解释过,这个方法起源于日本,就直接拿过来用了,其实最小平方法更好理解一点)
最小二乘作为一种损失函数,也用做曲线拟合(曲线拟合求参数也是利用最小化平方的方法,其实也是作为一种损失函数,两个作用可以认为是一致的)
在直线的 y = ax + b中,通过给定的几个点(x1, y1), (x2, y2), (x3, y3)然后求出参数 (a, b), 根据给出的点列出方程组,然后令:
S(a,b)=(y1−(ax1+b))2+(y2−(ax2+b))2+(y3−(ax3+b))2
然后使 S(a,b) 最小化, 对a 和 b 分别求偏导,令其等于0, 求得a 和 b 的估计值。
上面这个过程是不是跟极大似然估计(MLE)的过程有点像,下面我们再回顾一下MLE做一下对比:
首先MLE使在已知分布的条件下根据一些样本来估计参数的方法:
将 y = ax + b 扩展到多维的情况,
f(x)=∑dj=1xjwj+ϵ=xw⊺+ϵ
其中xj∈ℝ1×d, w∈ℝ1×n, y∈ℝ1×n, X =(x1, x2, …, xn), 假设ϵi∼(0,σ2), 则 yi∼(xw,σ2), 现在要估计w的值:
argmaxwL(w)=ln∏i=1n1σ2π‾‾‾√exp(−12(yi−xiw⊺σ)2)=−12σ2∑i=1n(yi−xiw⊺)2−nlnσ2π‾‾‾√
argminwf(w)=∑ni=1(yi−xiw⊺)2=∥∥y−Xw⊺∥∥22
这不就是最小二乘么(公式来源于: https://www.zhihu.com/question/20447622/answer/25186207)
其实最小二乘就是欧式距离的损失函数的主体部分, 就是最小平方误差的方法来估计参数的方法。
对于多维的曲线拟合线性求解方法(https://en.wikipedia.org/wiki/Linear_least_squares_(mathematics)):
∑nj=1Xijβj=yi, (i=1,2,…,m)
写成向量形式就是:
Xβ=y
则损失函数:
S(β)=∥∥y−Xβ∥∥2
估计值 β̂
β̂ =argminβS(β),
对β求微分得:
β̂ =(XTX)−1XTy.
python代码;
参考知乎 https://www.zhihu.com/question/20447622 该问题下面的部分回答:
建议有时间的把问题下面的所有答案都过一遍,这样可以通过不同的切入点来更好的理解。
最小二乘法,也叫最小平方法,在古汉语中“平方”称为“二乘”,“最小”指的是参数的估计值要保证各个观测点与估计点的距离的平方和达到最小。(记得赟哥解释过,这个方法起源于日本,就直接拿过来用了,其实最小平方法更好理解一点)
最小二乘作为一种损失函数,也用做曲线拟合(曲线拟合求参数也是利用最小化平方的方法,其实也是作为一种损失函数,两个作用可以认为是一致的)
在直线的 y = ax + b中,通过给定的几个点(x1, y1), (x2, y2), (x3, y3)然后求出参数 (a, b), 根据给出的点列出方程组,然后令:
S(a,b)=(y1−(ax1+b))2+(y2−(ax2+b))2+(y3−(ax3+b))2
然后使 S(a,b) 最小化, 对a 和 b 分别求偏导,令其等于0, 求得a 和 b 的估计值。
上面这个过程是不是跟极大似然估计(MLE)的过程有点像,下面我们再回顾一下MLE做一下对比:
首先MLE使在已知分布的条件下根据一些样本来估计参数的方法:
将 y = ax + b 扩展到多维的情况,
f(x)=∑dj=1xjwj+ϵ=xw⊺+ϵ
其中xj∈ℝ1×d, w∈ℝ1×n, y∈ℝ1×n, X =(x1, x2, …, xn), 假设ϵi∼(0,σ2), 则 yi∼(xw,σ2), 现在要估计w的值:
argmaxwL(w)=ln∏i=1n1σ2π‾‾‾√exp(−12(yi−xiw⊺σ)2)=−12σ2∑i=1n(yi−xiw⊺)2−nlnσ2π‾‾‾√
argminwf(w)=∑ni=1(yi−xiw⊺)2=∥∥y−Xw⊺∥∥22
这不就是最小二乘么(公式来源于: https://www.zhihu.com/question/20447622/answer/25186207)
其实最小二乘就是欧式距离的损失函数的主体部分, 就是最小平方误差的方法来估计参数的方法。
对于多维的曲线拟合线性求解方法(https://en.wikipedia.org/wiki/Linear_least_squares_(mathematics)):
∑nj=1Xijβj=yi, (i=1,2,…,m)
写成向量形式就是:
Xβ=y
则损失函数:
S(β)=∥∥y−Xβ∥∥2
估计值 β̂
β̂ =argminβS(β),
对β求微分得:
β̂ =(XTX)−1XTy.
python代码;
import numpy as np import matplotlib.pyplot as plt input = np.array([ [1, 6], [2, 5], [3, 7], [4, 10] ]) m = np.shape(input)[0] X = np.matrix([np.ones(m), input[:,0]]).T y = np.matrix(input[:,1]).T #直接代入公式 betaHat = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y) print(betaHat) plt.figure(1) xx = np.linspace(0, 5, 2) yy = np.array(betaHat[0] + betaHat[1] * xx) plt.plot(xx, yy.T, color='b') plt.scatter(input[:,0], input[:,1], color='r') plt.show()
相关文章推荐
- 最小二乘法的证明以及最优化系数的求解 Least squares
- 回归分析中的参数估计为何是最小二乘法(least squares),不是最小一乘法(least absolute deviations)
- 最小二乘法(Least Squares Fitting)
- 最小二乘法(高斯)
- 矩阵链乘法求两矩阵相乘所需的最小次数(算法3.6&3.7)
- NYOJ 46最小乘法次数
- 普通最小二乘法的推导证明
- 最小二乘法python实现
- LDA与最小二乘法的关系及其变种详解
- 使用scipy实现最小二乘法,以及通过曲线对数据进行拟合(Python)
- MIT18.06课程笔记16:最小二乘法,线性回归
- 最小二乘法与曲线拟合
- 最小二乘法的概率模型解释与局部加权回归
- 最小二乘法(高斯)
- 最小二乘法
- 关于最大似然估计和最小二乘法的理解和公式推导
- 最小二乘法(least squares method)
- 机器学习之最小二乘法
- 最小二乘法似合直线