最小二乘法是一个既熟悉又陌生的东西。

在回归问题中我们经常使用最小二乘法来预测出一条直线或者曲线用于拟合真正的数据点。而拟合数据的方式就是使用最小二乘法——使我们的预测值与真实值之间的差的平方和最小

因为看起来十分基础和简单,甚至用上面这一段话就讲完了。

然而,为什么是平方和呢?而不是一次方或者三次方?因为一次方会有正负,无法表示实际距离?那么带上绝对值不就行了嘛……原来我对这个问题没有仔细想过,感觉最小二乘法反正就是最常用最经典的方式罢了,类似于求个欧氏距离嘛大家都很喜欢用的一种表示方法而已。

但实际上,可以从概率统计学的角度探索最小二乘法的由来,从而证明其合理性。

最小二乘法由来:

假设我们现在有很多样本点(x1,y1),(x2,y2),(x3,y3)……(xi,yi),我们希望预测出一条直线:

y=wx+b来拟合这些样本点。

一步一步来,首先这个b是截距,带着它后面会看起来很麻烦,机器学习中常用的方式其实是在x中添加一个常数项1,然后把b“添加”到w中,这样直线就可以写成:

这里的θ比原来的w多了一个b,x也比原来的x多了一个1,乘起来的话就会多出一个1*b就是原来的截距了。

那么对于每一个样本点,我们的预测值y(i)为:

已知xi对应的实际值为yi,假设误差yi-y(i)为εi,接下来我们就从这个误差项εi展开分析:

现在我们有:

首先得明确:每个数据点都有一个误差项εi,且这些误差项服从标准正态分布(均值为0标准差σ)。因此带入正态分布公式,我们有:

从条件概率的角度出发,我们希望在xi和θ组合的情况下yi发生的概率最大——是不是非常耳熟,这就是要开始用似然函数了。(关于似然函数原来整理过一篇)

我们把每一个样本点都考虑进来(让他们进行累乘),就可以得到似然函数为:

我们现在希望找到一个合适的θ值使得这个式子最大,解法很简单,用常用的取对数方法,就可以得到:

让这个式子最大,除去一个常数项,等价于让下面式子最小:

这样就得到了我们熟悉的最小二乘法了。

最小二乘法应用

还是对于在二维平面当中拟合直线这个例子,我们已经确定了使用最小二乘法,则目标函数为:

设直线格式为y=wx+b,展开得:

联立,可求解得到答案:

这样一来,我们几乎就可以得到在二维平面拟合直线的结论性答案了。

现在来一个简单的具体例子:

在二维平面中,有三个点,值分别如下:(1,1),(2,2),(3,4),现在要求预测出一条直线来拟合这些数据点。

(为什么是三个点呢?因为一个点没有任何意义,两个点确定一条直线,当三个点的时候,我们才需要用最小二乘法来拟合,所以至少选三个点。)

直接用算出来的结论,可知:

w = [3*(1*1+2*2+3*4)-(1+2+3)(1+2+4)]/[3*(1*1+2*2+3*3)-(1+2+3)*(1+2+3)]  = 3/2

b = (1+2+4)/3-3/2*(1+2+3)/3  = -2/3

所以可拟合出直线:y=3/2x-2/3,将x=1,2,3带入验算,可以发现拟合的效果真的还是不错的。

上面只是比较简单的应用场景,我们可以直接使用一个看似不是很复杂的结论。类似的,我们还可以通过最小二乘法去拟合二次曲线(此时我们不再设f(x)=wx+b,而是y=w*x的平方+b*x的一次方+c,然后分别对w,b,c求偏导再解方程即可)——也就是说,我们可以选择不同的f(x)类型,通过最小二乘法得到不一样的拟合曲线。(当然,但当情况复杂之后,我们就很难通过解方程来得到一个实际的答案了, 此时我们更多的是采用梯度下降的方式去直接地优化和逼近结果。)

小结一下,这篇文章主要梳理了一下最小二乘法的由来以及计算与应用,也用来方便以后温故而知新~

最小二乘法理解与应用相关推荐

  1. python最小二乘法求a b_python_numpy实用的最小二乘法理解

    最小二乘法解决的问题:Ax=C 无解下的最优解 例子1: 一条过原点的直线OA,C是直线外一点,求C在OA上的投影点P 例子1 例子2: 已知三个不在一条直线上的点A,B,C,求一条直线,使A,B,C ...

  2. 递推最小二乘法的推导和理解

    递推最小二乘法的推导和理解 最小二乘法 快速回顾最小二乘法的推导 建立误差平方 将其最小化 一种对最小二乘法理解的视角 递推最小二乘法 在线实时预测问题 推导思路与详细过程 将k时刻的表达式写成k-1 ...

  3. python最小二乘法拟合三维曲线_python_numpy最小二乘法的曲线拟合

    在了解了最小二乘法的基本原理之后python_numpy实用的最小二乘法理解,就可以用最小二乘法做曲线拟合了 1.直线拟合 直线拟合 已知图中拟合数据的坐标,对图中的拟合数据进行直线拟合. 依旧使用最 ...

  4. gls开发_广义最小二乘gls数学推导直觉

    gls开发 背景与动机(Background and Motivation) For anyone pursuing study in Statistics or Machine Learning, ...

  5. 深度学习基础----线性模型

    线性回归 目的 试图学得一个线性模型以尽可能地预测实值输出标记(即学w,b) 形式/ 向量形式 均方差MSE的推导 梯度下降法: 理解: 需要选择学习率, 是迭代求解, 特征数m很大时不影响 最小二乘 ...

  6. 【IM】关于最小二乘法及约束的理解

    最小二乘法是对以实向量x为输入.实数y为输出的函数y=f(x)的学习问题.对于机器学习来说,关键就是构建一个f模型,然后设定求解目标,通过训练样本来求解.一个机器学习算法,关系模型.求解目标.求解方法 ...

  7. 梯度下降 最小二乘法 matlab,最小二乘法和梯度下降法的理解

    最小二乘法 在线性回归中,听的最多的应该算是最小二乘法了.最小二乘法在具体实现过程中保留核心思想的同时,会在算法上进行不同程度的改进,因此,最小二乘法有很多演变体,例如:递推最小二乘法,加权最小二乘法 ...

  8. 加权最小二乘法的理解

    文章目录 那什么什么是加权最小二乘法? 异方差的修正 在需要人为地改变观测量的权重的应用场合中,都会涉及到加权最小二乘法的应用. 那什么什么是加权最小二乘法? 加权最小二乘法的概念: 加权最小二乘是对 ...

  9. 线性最小二乘法的通俗理解

    线性最小二乘法的通俗理解 1. 最小二乘法 2. 通俗理解 2.1. 举例 2.2. 线性方程组 2.3. 最优猜测 2.4. 求偏导 1. 最小二乘法 最小二乘法(又称最小平方法)是一种数学优化技术 ...

最新文章

  1. mysql 5.7 的组复制
  2. C语言实现臭皮匠排序stooge sort 算法(附完整源码)
  3. 成为进阶Linux大佬的第一步
  4. html5怎样实现信息抓取,HTML5获取定位简单方案
  5. 【转】在WPF中自定义控件
  6. php显示当前访问人数,PHP与jquery实时显示网站在线人数实例详解
  7. 查看linux目录剩余空间大小
  8. 概率论速成-基于mooc
  9. web项目使用的前后端技术
  10. 微信公众平台接口测试账号申请
  11. Python中字母大小写转换
  12. The MVGC Multivariate Granger Causality Matlab初上手记录
  13. PowerMILL 2018四五轴编程后处理宏制作视频教程
  14. jsp+java中小学排课系统
  15. kaggle TMDB Box Office Prediction
  16. Python编辑基础课后习题(持续更新)
  17. win10如何切换计算机用户,windows10如何切换电脑微软账户
  18. 详细说明VScode设置中文,主题更改,文件图标及字体设置
  19. 基于Qt/C++的音频转换程序,pcm互转wav,位数转换
  20. pythonturtle八卦_使用turtle绘制太极八卦图

热门文章

  1. java实现天气预报
  2. 亚马逊 Alexa skill开发
  3. android 蓝牙打印和网络打印
  4. 一套牛逼哄哄的开源的监控系统(附源码)
  5. MATLAB中自带的Classification Learner的学习资料
  6. Mac剪切快捷键使用技巧
  7. 2020 所思、所遇、所学、所悟
  8. 阿里国际站全球直播,短周期变现渠道受追捧
  9. 【工具-代码】OSS阿里云存储服务-代码实现
  10. 七夕表白之Python画玫瑰花