最小二乘法-程序员宅基地

技术标签: 机器学习算法  

1、概述

最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差(真实目标对象与拟合目标对象的差)的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。

  • 最小二乘法还可用于曲线拟合。对于平面中的这n个点,可以使用无数条曲线来拟合。要求样本回归函数尽可能好地拟合这组值。综合起来看,这条直线处于样本数据的中心位置最合理。
    选择最佳拟合曲线的标准可以确定为:使总的拟合误差(即总残差)达到最小
  • 最小二乘法也是一种优化方法,求得目标函数的最优值。并且也可以用于曲线拟合,来解决回归问题。回归学习最常用的损失函数是平方损失函数,在此情况下,回归问题可以著名的最小二乘法来解决。

简而言之,最小二乘法同梯度下降类似,都是一种求解无约束最优化问题的常用方法,并且也可以用于曲线拟合,来解决回归问题。

监督学习中,如果预测的变量是离散的,我们称其为分类(如决策树,支持向量机等),如果预测的变量是连续的,我们称其为回归。

最小二乘法处理的一般模型表达式如下:
在这里插入图片描述
视问题复杂度而定x取几次方。这里可能有人有疑问,最小二乘不是处理线性问题吗?怎么 x^n都出来了?

注意,我们的目的是求取一个非线性方程,但当我们用最小二乘求解时,我们针对的是θ变量,而不是x ,也就是说,机器学习中,这里的x 是输入,是已知量,y 是输出,是预测量, θ 才是我们要学习的变量,所以这还是一个线性问题

2、定义误差

当然是真实值与拟合值的差
在这里插入图片描述
但为啥要平方(2范数)呢?绝对值(1范数)不可以吗?

因为误差是长度,还要取绝对值,计算起来麻烦,就干脆用平方来代表误差。而且平方要比绝对值更能得到最短距离,即使得误差最小化,也就是更能使得拟合函数逼近真实函数。

2.1怎样最小化误差

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 什么情况下能用这矩阵形式求解

从上面的最后一个式子可以看出,只有当矩阵 X T X X^T X XTX可逆时,该式才成立,最小二乘法则可用,也就是说无法用直接求一阶导数方式,计算出最优解,这时就需要用梯度下降法来迭代逼近最优解。

2.3直线拟合最小二乘法

在这里插入图片描述
在这里,最小二乘法就是求解Q 的最小值,因为误差Q 最小,对应θ 值最优;所有我们将上式看成一个Q 关于θ 变量的函数,问题转成一个求极小值问题:
在这里插入图片描述
在这里插入图片描述

3、和梯度下降法比较

最小二乘法跟梯度下降法都是通过求导来求损失函数的最小值, 首先它们都是机器学习中,计算问题最优解的优化方法,但它们采用的方式不同,前者采用暴力的解方程组方式,直接,简单,粗暴,在条件允许下,求得最优解;而后者采用步进迭代的方式,一步一步的逼近最优解。实际应用中,大多问题是不能直接解方程求得最优解的,所以梯度下降法应用广泛。

最小二乘法和梯度下降法在线性回归问题中的目标函数是一样的(或者说本质相同),都是通过最小化均方误差来构建拟合曲线。

二者的不同点可见下图(正规方程就是最小二乘法):
在这里插入图片描述
需要注意的一点是最小二乘法只适用于线性模型(这里一般指线性回归);而梯度下降适用性极强,一般而言,只要是凸函数,都可以通过梯度下降法得到全局最优值(对于非凸函数,能够得到局部最优解)。

梯度下降法只要保证目标函数存在一阶连续偏导,就可以使用。

4、最小二乘法与正态分布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/W1995S/article/details/118153146

智能推荐

树莓派4B连不上wifi的一个意想不到的原因_trying to associate with-程序员宅基地

文章浏览阅读1w次,点赞6次,收藏12次。wpa_supplicant 无法配置wifi输出结果如下: ➜ sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicatn/wpa_supplicant.confSuccessfully initialized wpa_supplicantwlan0: Trying to associate with SSID 'xxxxxxx'wlan0: CTRL-EVENT-ASSOC-REJECT bssid=00:00:00:00:00:00 statu_trying to associate with

FastDFS配置详解之Tracker配置_fastdfs-tracker:2.0-程序员宅基地

文章浏览阅读2.7k次。1 基本配置disable#func:配置是否生效#valu:true、falsedisable=falsebind_addr#func:绑定IP#valu:IP地址bind_addr=192.168.6.102port#func:服务端口#valu:端口整数值port=22122connect_timeout#func:连接超时_fastdfs-tracker:2.0

若依微服务框架ruoyi-cloud使用手册(持续更新中)-程序员宅基地

文章浏览阅读4.9w次,点赞49次,收藏299次。主要对使用ruoyi-cloud过程中遇到的坑进行记录和解决,包括以下:一、项目启动事项二、新建模块案例三、一些坑~一、项目启动事项1.首先进行项目相关工具及环境准备,官方文档也有,不过还是贴一下。JDK >= 1.8 (推荐1.8版本)Mysql >= 5.5.0 (推荐5.7版本)Redis >= 3.0Maven >= 3.0Node >= 10Nacos >= 1.1.0sentinel >= 1.6.0(启动项目非必要)这里需要注_ruoyi-cloud

react-router笔记2:实践使用-程序员宅基地

文章浏览阅读58次。为什么80%的码农都做不了架构师?>>> ...

虚拟化原理之xen-io虚拟化_xen io request server-程序员宅基地

文章浏览阅读2.4k次。第4章 io设备虚拟化Io设备的虚拟化,不可避免要涉及到设备的概念和隐藏在设备背后的总线。理解了这两个概念,就比较容易理解io设备的虚拟化。4.1 设备,总线和驱动设备是计算机系统中一个重要概念。通常的显卡网卡声卡等设备,都是先插入计算机系统的PCI总线插槽(早期还有ISA,MCA总线等。现在PC领域基本PCI总线统一了),然后安装驱动,之后应用程序可以通过文件系统打开和读写设备文_xen io request server

MediaCodec 编码时间戳问题_android mediacodec 时间跳变-程序员宅基地

文章浏览阅读6.1k次,点赞2次,收藏6次。在MediaCodec 的编码时候,需要调用queueInputBuffer( int index, int offset, int size, long presentationTimeUs, int flags) 函数,将装有待编码的帧字节数组传给编码器,第四个参数 代表的编码时间戳,这个编码时间戳非常重要,单位是 微秒,不传或者传错,都会导致解码错误甚至播放不了。 1、不要赋值0,网上好多..._android mediacodec 时间跳变

随便推点

tsc244标签编辑软件_在得力条码打印机中怎么设置双排标签纸-程序员宅基地

文章浏览阅读5.2k次。据我了解,得力好像是一款常见的打印机品牌,在打印机中设置双排标签的话需要一个专业的标签设计软件,然后在标签设计软件中进行排版及添加内容。具体设置双排标签纸的操作方法如下:1.打开标签设计软件,点击”新建”,在文档设置-打印机及纸张类型中,选择你需要的打印机,然后根据你的纸张类型,在纸张中自定义设置一下纸张的尺寸。2.点击”下一步”,在行列中,设置标签的行列为1行2列(或者1行3列)。3.点击”下一...

Java课程设计——五子棋_eclipse java五子棋-程序员宅基地

文章浏览阅读2k次。java课程设计——五子棋_eclipse java五子棋

华为路由器、交换机配置命令-程序员宅基地

文章浏览阅读4.1w次,点赞156次,收藏953次。华为路由器交换机配置命令是大家使用时经常遇到的,顾名思义关于交换机的计算机命令,路由器命令,交换机命令和动静态命令都将在文中提到。史上最全华为路由器交换机配置命令大合集,熟练掌握下面的华为路由器交换机配置知识点,你只需花几分钟的时间就能明白华为路由器交换机配置。交换机的配置命令等等。华为路由器交换机配置命令:计算机命令 PCAlogin:root;使用root用户 password:linux...

Android布局设置阴影_android 加载中全屏阴影效果-程序员宅基地

文章浏览阅读2.8k次。在开发中,经常需要给布局设置阴影效果,采用layer-list和CardView都不太理想,这里推荐一种新的自定义方式。首先看下效果图(这里和CardView进行对比):第一步:在drawable下新建bg_shadow.xml<?xml version="1.0" encoding="utf-8"?><shape ="http://schemas.android.com/apk/res/android" xmlns:tools="h._android 加载中全屏阴影效果

好资源推荐-经典技术文章集锦!!!-程序员宅基地

文章浏览阅读65次。分享一些不错的技术文章给大家哦!希望对大家有些帮助!1.使用多线程的利弊http://g.csdn.net/52462632.HTML5时代的Web应用开发http://g.csdn.net/52462763.[VisualC++]游戏开发笔记四十五浅墨DirectX教程十三深度测试和Z缓存专场http://g.csdn.net/52466264.游戏后台的快速开发http://g..._通俗易懂的优秀技术文章推荐

关于出现WARNING: unable to write jarlist cache file ...\appcompat_v7\bin\jarlist.cache 问题详解_warning: unable to write jarlist cache file d:\dem-程序员宅基地

文章浏览阅读5.5k次。今天在创建项目的时候,突然发现了这个问题:WARNING: unable to write jarlist cache file E:\AndroidProject\appcompat_v7\bin\jarlist.cache一开始觉得_warning: unable to write jarlist cache file d:\demo\appcompat_v7\bin\jarlist

推荐文章

热门文章

相关标签