当前位置: 首页 > news >正文

最小二乘法算法(个人总结版)

最小二乘法(Least Squares Method)是一种通过最小化误差平方和来拟合数据的回归分析方法。它被广泛应用于线性回归、多元回归以及其他数据拟合问题中。以下是详细的教程,涵盖基本概念、数学推导、具体步骤和实现代码。

1. 最小二乘法基本概念

最小二乘法是一种用于数据拟合的统计方法,通过最小化观测数据与模型预测值之间的误差平方和,求解模型参数。

2. 线性回归的最小二乘法

线性回归是最简单的最小二乘法应用,假设模型为线性关系: y=β0​+β1​x 其中,y 是响应变量,x 是自变量,β0​ 是截距,β1​ 是斜率。

3. 最小二乘法的数学推导

假设有 n 个观测数据点(xi​,yi​),最小二乘法通过最小化以下误差平方和S 来求解模型参数:

为了找到最优参数 β0​ 和 β1​,对 S 求偏导数并令其为零:

解这两个方程,得到: 

4. 多元线性回归的最小二乘法

对于多元线性回归模型:

可以使用矩阵形式来表示和求解。设: y=Xβ+e 其中,y 是响应变量向量,X 是设计矩阵,β 是参数向量,e 是误差向量。

通过最小化误差平方和可以得到参数估计:

5. 非线性最小二乘法

非线性最小二乘法用于拟合非线性模型。这种情况下,通常需要使用迭代优化算法如梯度下降法、牛顿法等进行参数估计。

6. 最小二乘法的应用实例

例1:简单线性回归

假设有以下数据点:

(1,2),(2,2.8),(3,3.6),(4,4.5),(5,5.1)(1,2),(2,2.8),(3,3.6),(4,4.5),(5,5.1)

可以用最小二乘法拟合直线:

 

计算得到的最优参数为β0​和β1​。

例2:多元线性回归

假设有以下数据点和两个自变量:

(1,2,2),(2,2.8,3),(3,3.6,4),(4,4.5,5),(5,5.1,6)(1,2,2),(2,2.8,3),(3,3.6,4),(4,4.5,5),(5,5.1,6)

可以用最小二乘法拟合多元回归模型:

7. 最小二乘法的实现

Python实现示例

import numpy as np
import matplotlib.pyplot as plt# 生成数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 2.8, 3.6, 4.5, 5.1])# 计算最小二乘法系数
A = np.vstack([x, np.ones(len(x))]).T
m, c = np.linalg.lstsq(A, y, rcond=None)[0]# 绘图
plt.plot(x, y, 'o', label='Original data', markersize=10)
plt.plot(x, m*x + c, 'r', label='Fitted line')
plt.legend()
plt.show()

步骤解析

  1. 生成数据:创建自变量 x 和因变量 y 的数据点。
  2. 构建设计矩阵:将 x 和常数项 1 叠加构成设计矩阵 A。
  3. 求解最优参数:使用 numpy 的 lstsq 函数求解线性方程 Aβ=y 的最优参数 m 和 c。
  4. 绘制图表:绘制原始数据点和拟合直线。

最小二乘法图解

这是一个简单的最小二乘法线性回归的图表,用于演示如何通过最小二乘法拟合数据点。以下是图表的详细说明:

图表说明
  • X轴:自变量 x
  • Y轴:因变量 y
  • 黄色圆点:原始数据点
  • 红色直线:拟合直线,通过最小二乘法计算得到

图表生成代码

如果你想在自己的环境中生成类似的图表,可以使用以下Python代码:

import numpy as np
import matplotlib.pyplot as plt# 生成数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 2.8, 3.6, 4.5, 5.1])# 计算最小二乘法系数
A = np.vstack([x, np.ones(len(x))]).T
m, c = np.linalg.lstsq(A, y, rcond=None)[0]# 绘制图表
plt.figure(figsize=(10, 6))
plt.plot(x, y, 'o', label='Original data', markersize=10, color='orange')
plt.plot(x, m*x + c, 'r', label='Fitted line')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Least Squares Fit')
plt.legend()
plt.grid(True)
plt.show()

图表解读

  • 这段代码首先生成了一组 x 和 y 的数据点。
  • 使用最小二乘法计算拟合直线的斜率 m 和截距 c。
  • 最后,绘制原始数据点和拟合直线,并添加了标签、标题和网格,以便更好地理解图表。

结论

最小二乘法是数据拟合和回归分析中非常重要的工具。它可以通过最小化误差平方和来估计模型参数,从而找到最佳拟合曲线。本文详细介绍了最小二乘法的基本概念、数学推导、应用实例以及Python实现方法,希望能帮助你更好地理解和应用这一方法。

相关文章:

  • 列表推导式妙用(i for i in lst):python使用列表推导式,把二维列表数据放入一维列表中(高维数据放入低维列表)
  • Nginx的Location匹配与Rewrite重写
  • Python知识点10---函数
  • 【linux-imx6ull-设备树点灯】
  • 【第9章】SpringBoot中Bean的扫描和注册
  • 【UE5:CesiumForUnreal】——加载无高度地形数据
  • JavaScript 基础 - 对象
  • 算法训练营第四十八天 | 卡码网57 爬楼梯、LeetCode 322 零钱兑换、LeetCode 279 完全平方数
  • 《雅思口语真经总纲1.0》笔记——第二章:官方评分标准真经——Fluency Coherence 流利度和连贯性(1、连贯性)
  • 深度学习知识与心得
  • 使用反射调用Android隐藏API
  • 算法简单笔记4
  • [FreeRTOS 基础知识] 栈
  • 【源码】多语言H5聊天室/thinkphp多国语言即时通讯/H5聊天室源码/在线聊天/全开源
  • 【vscode免密连接云服务器】
  • 【Leetcode】101. 对称二叉树
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • JS学习笔记——闭包
  • Linux快速复制或删除大量小文件
  • MySQL-事务管理(基础)
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • Redash本地开发环境搭建
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • vue-cli在webpack的配置文件探究
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 使用权重正则化较少模型过拟合
  • 限制Java线程池运行线程以及等待线程数量的策略
  • FaaS 的简单实践
  • 关于Android全面屏虚拟导航栏的适配总结
  • #APPINVENTOR学习记录
  • #Linux(make工具和makefile文件以及makefile语法)
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (rabbitmq的高级特性)消息可靠性
  • (九)c52学习之旅-定时器
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (转)C#调用WebService 基础
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • 、写入Shellcode到注册表上线
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .htaccess 强制https 单独排除某个目录
  • .jks文件(JAVA KeyStore)
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .Net 6.0--通用帮助类--FileHelper
  • .net core 依赖注入的基本用发
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .so文件(linux系统)
  • ::before和::after 常见的用法
  • @modelattribute注解用postman测试怎么传参_接口测试之问题挖掘
  • @property @synthesize @dynamic 及相关属性作用探究