python实现最小二乘法进行线性拟合
基本原理
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。
对于线性拟合,最小二乘法存在解析解,其矩阵形式的公式如下所示:
XB=Y⇒B=(XTX)−1XTY\mathbf{X B}=\mathbf{Y} \Rightarrow \mathbf{B}=\left(\mathbf{X}^{T} \mathbf{X}\right)^{-1} \mathbf{X}^{T} \mathbf{Y} XB=Y⇒B=(XTX)−1XTY
代码实现
import numpy as np
from matplotlib import pyplot as pltX = np.array([[0,1],[1,1],[2,1],[3,1],[4,1]])
y = np.array([0,2,1,2,4])Xt = X.transpose()
Xs = np.matmul(Xt,X)
Xsi = np.linalg.inv(Xs)Wstar = np.matmul(np.matmul(Xsi,Xt),y)
print(Wstar)
Xhat = Wstar[0]*y + Wstar[1]
print(Xhat)Xp = X[:,0]
plt.scatter(Xp,y)
plt.plot(Xhat,y)
plt.show()
运行结果
python实现最小二乘法进行线性拟合相关推荐
- GEE(Python)逐像元线性拟合
终于把GEE的python环境配置好了,很早就想尝试吴秋生老师的可视化库了[快乐] 这里贴一个GEE线性拟合的Python版(以60年的TerraClimate降水数据为例). #edited by ...
- 利用最小二乘法进行线性拟合
对一系列输入点(x,y)进行线性拟合出的直线方程为: y = Ax + B,根据最小二乘法求出A,B的公式为: 代码实现: // *********************************** ...
- Python实现数据的线性拟合
Python实现对实验数据的函数拟合 数据拟合会涉及到多种拟合方法,本文旨在把本人可能使用到的做一个总结 持续更新ing 1. List item # 线性拟合from scipy import op ...
- 用python的numpy作线性拟合、多项式拟合、对数拟合
转自:http://blog.itpub.net/12199764/viewspace-1743145/ 项目中有涉及趋势预测的工作,整理一下这3种拟合方法: 1.线性拟合-使用math import ...
- [PyTorch] 基于Python和PyTorch的线性拟合
用神经网络实现线性拟合,代码源自<深度学习入门之pytorch>,本人根据新版本的PyTorch做了挺大的修改. <深度学习入门之pytorch>的使用体验 关于这个书好不好, ...
- 最小二乘法的线性拟合
转载:http://blog.csdn.net/lotus___/article/details/20546259 最小二乘法 我们以最简单的一元线性模型来解释最小二乘法.什么是一元线性模型呢? 监督 ...
- 最小二乘法线性拟合及其代码实现(C语言)
文章目录 前言 一.最小二乘法 二.代码实现(C语言) 三.缺陷与不足 1. 对异常值很敏感 2. 没有考虑自变量的误差 3. 存在不可求解的情况 总结 参考 前言 最小二乘法是最常用的数据拟合方法. ...
- Matlab 隐函数方程求解最小二乘法拟合一阶线性拟合二阶拟合传感器实验
九层妖塔 起于垒土 Matlab 最小二乘法拟合一阶线性拟合&传感器实验 一.代码 二.数据处理结果 三.Notes 一.代码 %电容传感器位移实验数据 最小二乘法一阶线性拟合 x = ...
- matlab最小二乘法拟合图旋转,【Matlab】—{最小二乘法拟合一阶线性拟合传感器实验}...
[Matlab]-{最小二乘法拟合一阶线性拟合传感器实验} [Matlab]-{最小二乘法拟合一阶线性拟合&传感器实验} ???九层妖塔?起于垒土 [Matlab]-{最小二乘法拟合一阶线性拟 ...
- pytho作线性拟合、多项式拟合、对数拟合
python opencv拟合: width是总宽,height是总高: [vx, vy, x, y] = cv2.fitLine(np.float32(values[j]), cv2.DIST_L2 ...
最新文章
- Word文档以两列的格式打开,类似于书本那样
- spring-cloud-config 搭建-入门级(一)
- linux给所有主机发送公钥,发送公钥到多台远程主机
- 张睿:OpenH264拥有产品级的鲁棒性 欢迎contribute
- java学习(23):if..else
- 如何下载Discuz
- cartographer 前端两个方法:相干性匹配与非线性优化;以及回环检测方法:利用了分枝定界的相干性匹配
- 软件项目uat测试报告,项目管理-验证阶段-UAT测试报告.doc
- VBA笔记 退出循环、Sub、Fuction等的Exit语句
- 期末考试查分,基于青果高校教务系统的一个自动python脚本代码
- 新版标准日本语中级_第六课
- 本学期3个sprint的团队贡献分
- 自建dnspod解析服务器,自建DNS解析及Glue Record 自建DNS解析域名
- 数据分析可视化之模型介绍
- Ant Design蚂蚁设计理念
- 会员招募html5,会员招募活动策划方案
- 法大大登榜《胡润中国瞪羚企业》
- 02.Win10诸多坑之windows search服务启动失败
- 最长公共子串(Python)
- 最大值最小化(网易有道2013年校园招聘面试一面试题)