最小二乘回归

article/2025/10/7 15:13:08
最小二乘法(Least squares又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。 ---来自百度百科

“最小二乘法”的核心就是保证所有数据偏差的平方和最小。

 根据测量数据来分析变量之间相互关系的方法称为回归分析法,即工程上所说的拟合问题,所得的关系式即为经验公式或拟合方程。根据变量个数及变量之间关系的不同,回归分析分为一元线性回归(直线拟合)、一元非线性回归(曲线拟合)、多元线性回归和多项式回归等。

最常见的拟合方法是最小二乘法。最小二乘法的出发点是使实际测量数据yi与拟合直线上对应的估计值的残差的平方和为最小。即 

 

对于最简单情况:一元线性拟合 y=a+bx,根据最小二乘法有


为使M最小只需要对其求a、b偏导,然后令偏导数等于0即可就出a、b值:

=0

=0

 其中a、b通过最小二乘法求得为: 

算法实现(python版):

    import matplotlib.pyplot as plt  x =[1,2,3,5,6,12,11,13]  y =[4,5,8,13,12,23,20,22]  average_x=float(sum(x))//len(x)  average_y=float(sum(y))/len(y)  x_sub=map((lambda x:x-average_x),x)  y_sub=map((lambda x:x-average_y),y)  x_sub_pow2=map((lambda x:x**2),x_sub)  y_sub_pow2=map((lambda x:x**2),y_sub)  x_y=map((lambda x,y:x*y),x_sub,y_sub)  a=float(sum(x_y))/sum(x_sub_pow2)  b=average_y-a*average_x  plt.xlabel('X')  plt.ylabel('Y')  plt.plot(x, y, '*')  plt.plot([0,15],[0*a+b,15*a+b])  plt.grid()  plt.show()  

   对于多元线性回归、多元非线性回归都可以转换成线性回归方式求解,而使用矩阵方式得到的结果更利于泛化。当时多元回归模型时,对应的系数矩阵(a,b1,b2,b3,.....bn)同样可使是用上面的求解表示。

                                                                                 

算法实现(python版):

from numpy import *  
from random import *  
import matplotlib.pyplot as plt  
def Data():  x = arange(-1,1,0.02)  y = ((x*x-1)**2+2)*(sin(x*3)+0.7*cos(x*1.2))  xr=[];yr=[];i = 0  for xx in x:  yy=y[i]  d=float(randint(80,120))/100  i+=1  xr.append(xx*d)  yr.append(yy*d)    return x,y,xr,yr  
def MAT(x,y,order):  X=[]  for i in range(order+1):  X.append(x**i)  X=mat(X).T  Y=array(y).reshape((len(y),1))  return X,Y  
def fig(x1,y1,x2,y2):  plt.xlabel('X')  plt.ylabel('Y')  plt.plot(x1,y1,color='g',linestyle='-',marker='')  plt.plot(x2,y2,color='m',linestyle='',marker='.')  plt.grid()  plt.show()  
def Solve():      x,y,xr,yr = Data()  X,Y = MAT(x,y,9)  XT=X.transpose()  B=dot(dot(linalg.inv(dot(XT,X)),XT),Y)  myY=dot(X,B)  fig(x,myY,xr,yr)  
Solve() 


数据拟合中,为什么要让模型的预测数据与实际数据之差的平方而不是绝对值和最小来优化模型参数?

这个问题已经有人回答了,见链接(http://blog.sciencenet.cn/blog-430956-621997.html

参考:

http://blog.csdn.net/chasdmeng/article/details/38869941

http://sbp810050504.blog.51cto.com/2799422/1269572




http://chatgpt.dhexx.cn/article/yj8ShxPY.shtml

相关文章

离线安装IE 11

转自:http://blog.sina.com.cn/s/blog_711ab1b10102wzq1.html 1、在D盘下,新建文件夹,取名为“ie”。 2、将官网下载的IE11离线包放到此文件夹中。 3、为了后续步骤方便,可以将离线包重命名为IE11.exe。 4、打开cmd窗口&#xff0…

Microsoft Edge离线安装包下载

#Microsoft Edge 现已准备就绪 下一版 Microsoft Edge 已准备好进行企业评估。 立即下载离线安装程序、查看管理策略并尝试 Internet Explorer 模式。 下载链接

安装IE11提示“Internet Explorer在安装前需要更新”

在Windows 7上安装IE11浏览器时,发现如下报错提示: 此问题一般会出现在未安装过更新的windows系统上,一般可以通过系统更新安装补丁的方式来解决,但是系统自带的更新会按照发布顺序将所有微软发布的补丁都安装上,耗费…

安装ie11提示计算机安装了更新的版本,离线安装IE11浏览器提示quot;获取更新quot;解决方法 - 191路由网...

原标题:"Win7系统离线安装IE11浏览器提示"获取更新"如何解决?"相关电脑问题教程分享。 - 来源:网络投稿。  Win7系统离线安装IE11时出现提示“获取更新”如何解决?IE11浏览器是目前IE浏览器已知最高的版本,…

electron离线安装

公司因为安全原因,导致连不上npm的镜像,查找了资料,终于找到一种离线安装 electron 全局开发环境的方法,分享并记录一下: ps: 如果能用淘宝镜像,直接设置npm config set ELECTRON_MIRROR https://npm.taobao.org/mirr…

chrome浏览器离线安装包下载地址

在谷歌官网下载的chrome浏览器,下载的是安装器,要通过联网安装,谷歌浏览器官网:https://www.google.com/intl/zh-CN/chrome/https://www.google.com/intl/zh-CN/chrome/ 最新版本的统一下载链接,通过以下链接下载的都是…

如何下载谷歌浏览器官方最新离线安装包

谷歌浏览器最新离线安装包下载 问题描述 由于工作需要,想在内网机中安装谷歌浏览器,但是内网机是没有网的,所以想着下载一个谷歌浏览器官方最新离线安装包,看似挺简单的工作,但实际上下载还是很麻烦,经过…

【已解决】在Win11上离线安装 .NET Framework 3.5的方法【含网盘离线文件】

随 Windows 11提供的是.NET Framework 4.8,该环境可以运行任何 .NET Framework 4.x 应用。 而.NET Framework 3.5 支持为 .NET Framework 2.0 到 3.5 生成的应用,需要自行安装。 当Win11的应用软件需要.net framework3.5的运行环境时,就会提…

win11电脑安装ie11浏览器

win11系统本身是自带ie11的,只是把这个浏览器屏蔽掉了 首先要替换这两个文件 C:\Windows\System32 和 C:\Windows\SysWOW64 替换之后找到这个目录 把ie右键发送到桌面快捷方式 文件下载链接(0积分):https:…

Windows7安装IE11步骤和中文安装包超简单

此安装包仅限Win7 SP1(Service Pack1)其他本版装不上。 亲测:安装VS2015 提示安装IE10,安装此浏览器可以解决。 链接:https://pan.baidu.com/s/1OhLIlHbkSqXRiwKDjG5fwg 提取码:izd4 示例为win7-64bit…

IE11的安装方法和更新补丁

windows 7操作系统自带IE 8 升级到IE 11的方法 1、查看当前操作系统的系统位数是64位还是32位,这里不在赘述怎么查看,是64位操作系统安装x64文件夹里面的程序,是32位操作系统安装X86文件夹里面的程序; 2、如下如图,依…

IE11离线安装总是提示“获取更新”的解决方法

微软下载的IE11离线包在安装前,必须要先安装必备更新。 首先,先检查操作系统,XP系统是无法安装IE11的,XP支持的最高版本为IE8,如果是XP系统,请先升级到WIN7,旗舰版和专业版均可。 最近在离线安…

ie11离线安装

之前尝试安装过一回,崩溃而卒。今天又遇到组件在ie浏览器中表现异常问题,就决定再来一次,竟然成功了,在这里贴一下成功经验。 由此可知:遇到难题可以先放放,时间会告诉你答案。 安装过程 1.安装补丁 安装…

离线安装.net4.032位_怎样在断网的情况下安装IE11

前言: 虽然美帝对我们各种压榨,虽然我们各种不满,但是被wintel驯化了几十年的国人,如果一下子想放弃这个平台,也是任重而道远的事。今天因为工作又不得不用IE,谨写此文给有需要的朋友。(PS:幸好我们没有被殖民,如果殖民太久,可能几代人过去,连自己的母语都要丢了) 不…

IE11离线安装包ie离线升级ie11离线安装ie11补丁

首先下载ie11离线安装包与补丁文件: 下载地址(我的资源里有):IE11离线安装包下载IE8升级IE11安装补丁离线升级资源-CSDN文库 (如不着急可私信直接要安装包补丁包,我若看到及时回复你) 1、 下载…

【转】模糊测试(fuzzing)是什么

一、说明 大学时两个涉及“模糊”的概念自己感觉很模糊。一个是学数据库出现的“模糊查询”,后来逐渐明白是指sql的like语句;另一个是学专业课时出现的“模糊测试”。 概念是懂的,不外乎是“模糊测试是一种软件测试技术,其核心思想是自动或半…

模糊测试(fuzzing) 概念

看到一个不错的,转来压压惊。 模糊测试(fuzzing)是什么 一、说明 大学时两个涉及“模糊”的概念自己感觉很模糊。一个是学数据库出现的“模糊查询”,后来逐渐明白是指sql的like语句;另一个是学专业课时出现的“模糊测…

sulley测试环境搭建的相关总结

忙活了几天,在师兄的指导下也算是OK啦,下面来说一句具体的搭建过程,基本是按照python灰帽子那本书的第九章来弄的,在网上的话可以参考这里: http://blog.chinaunix.net/uid-25979788-id-1747694.html 基本上就是书上的电子版了…

sulley里面Pcapy模块安装容易出错地方

1、路径问题 -Ic:\wpdpack\Include,直接把wpdpak目录拷贝到C盘下即可解决 2、Windows系统中需要Winpcap开发者版本,之后才能安装pcapy模块 3、 Winpcap开发者版本下载地址:http://www.winpcap.org/devel.htm pcapy模块下载地址:h…

在windows系统中安装Sulley

在windows系统中安装Sulley 我是在win10的64位系统下面完成本次安装的,具体教程如下,需要安装的库和工具比较多,需要耐心处理各种问题。 需要的文件打包下载: 链接: https://pan.baidu.com/s/1micKZpu 密码: tkeb 1、下载和安装MinGW MinGW,是Minimalist GNU for Win…