首页 > 编程语言 >python计算最小二乘法(附代码详细解释)

python计算最小二乘法(附代码详细解释)

时间:2024-11-09 09:16:22浏览次数:3  
标签:直线 python 代码 最小 线性 拟合 np sum 乘法

  • 最小二乘法(Least Squares Method)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。在回归分析中,其目的是找到一条直线(对于简单线性回归而言)或者一个超平面(对于多元线性回归),使得观测值与预测值之间误差的平方和最小。
  • 这种方法拟合直线相对于理论线性拟合直线、端点线性拟合直线、端点平移线性拟合直线和过零平移线性拟合直线,考虑了所有数据点的误差情况。它不是只关注端点或者特定条件,而是综合所有数据的信息,使直线尽可能地靠近所有的数据点,从而得到最小的误差值。但是由于当数据点数量n很大时,手动计算出最小二乘法的参数是非常消耗时间且容易出错的,这时就可以使用编程语言如python进行计算,大大降低了人为犯错的概率和人工计算成本。
  • 本文代码使用最小二乘法公式:
  • 注:最小二乘法还有不同计算公式,读者想了解可以自行查找。
import numpy as np        #导入numpy库
import warnings           # 告警库
warnings.filterwarnings(action='ignore')  # 忽略告警

x=np.array([0,0.02,0.04,0.06,0.08,0.1])   #创建一个数组,输入自变量的取值(这里可以改变数组的大小)
y=np.array([-2.7,0.64,4.04,7.47,10.93,14.45])#创建一个数组,输入因变量的取值
n=6  #变量的个数
k1=n*np.sum(x*y) - np.sum(x)*np.sum(y) #计算k的分子(使用numpy库中的sum函数)
k2=n * np.sum(x**2) - np.sum(x)**2     #计算k的分母
b1=np.sum(x**2)*np.sum(y) - np.sum(x)*np.sum(x*y) #计算b的分子
b2=n * np.sum(x**2) - np.sum(x)**2     #计算b的分母
k = k1/k2
b = b1/b2
print(k,b) #打印k,b的值
print(f"y={k:.3f}x+({b:.3f})") #方程,并且使k,b保留三位小数

标签:直线,python,代码,最小,线性,拟合,np,sum,乘法
From: https://blog.csdn.net/m0_75005521/article/details/143532198

相关文章

  • 【华为OD技术面试手撕真题】82、环形链表II | 手撕真题+思路参考+代码解析(C & C++ & J
    文章目录一、题目......
  • 短视频软件代码,如何有效控制流量?
    短视频软件代码,如何有效控制流量?速率限制是构建可扩展和弹性短视频软件代码的关键技术。它通过对指定时间范围内允许的请求数量施加限制来帮助控制流量。理解速率限制速率限制包括定义一组规则,这些规则决定客户端在给定的时间窗口内可以发出多少请求。确保短视频软件代码能......
  • Python 临时启动简单的 HTTP 服务器
    需要临时启动一个简单的WebServer进行测试或分享文件,当然可以用Apache、Nginx这些HTTP服务,不过又显得过于麻烦。 Python自带了一个简单的内建HTTP服务器,这时候用它就特别合适了!基本命令```python-mWeb服务器模块[端口号,默认8000]```这里的“Web服务器模块”......
  • Python双线程互相控制示例
    Python双线程互相控制示例Codeimporttimeimportpynputimportthreading#用于控制循环和监听的全局变量running=Truedefon_press(key):globalrunningtry:ifkey==pynput.keyboard.Key.esc:running=FalseexceptAt......
  • D61【python 接口自动化学习】- python基础之数据库
    day61数据库定义学习日期:20241107学习目标:MySQL数据库--130:MySQL入门使用学习笔记:在命令提示符内先试用MySQL使用图形化工具操作MySQLDBeaver安装DBeaver连接MySQL总结MySQL安装成功后,可以使用命令提示符查看数据库安装使用图形化工具DBeaver操作MySQL......
  • Python面向对象1详解案例
    1.面向对象(先前pygame的小游戏后续1中有介绍)类名:大驼峰命名方式(每个单词的首写字母都有要大写)属性:就是变量行为:函数class类名:   类代码(属性,行为)运行代码类代码直接会执行对象:类产生对象(类()来实现)#对象使用类里面的方法对象.方法名()#对象使......
  • python 模拟登录问题
    `#模拟古诗文网的登录importrequestsfromdatetimeimportdatetimefromlxmlimportetreeimportbase64importtimelogin_url='https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx'requestLoginUrl=r"https://so.gus......
  • AI 大模型重塑软件开发:从代码自动生成到智能测试
    引言随着人工智能技术的飞速发展,特别是大规模预训练模型(大模型)的出现,AI正在深刻地改变软件开发的各个环节。从代码自动生成到智能测试,AI不仅提高了开发效率,减少了错误,还带来了全新的开发模式和流程。本文将从AI大模型的定义、应用场景、优势以及挑战等方面,探讨AI如何重......
  • python+flask计算机毕业设计高校校园线上跳蚤市场的系统设计(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容高校校园线上跳蚤市场的系统设计-内容说明一、选题背景随着互联网技术的发展,线上交易模式日益普及。关于跳蚤市场的研究,现有研究主要以线下跳蚤......
  • 初次使用 Jetbrains Rider 编写 C#(.Net) 代码
    前段时间,Jetbrains公司公布了RiderIDE对非商业用途免费,看到很多业界的朋友都用到这个IDE,今天便下载下来使用一下。 1、界面的差异 Rider的界面跟我前段时间学习调试安卓代码的AndroidStudio的界面很像,布局几乎是一样的。使用习惯了VisualStudio的开发们,可能需......