用Python的numpy库进行线性拟合或者多项式拟合

liftword4个月前 (01-11)技术文章29

在前文中,笔者使用最小二乘法矩阵计算进行数据的线性拟合

其实有更简单的方法:

  • 用Python的numpy中的polyfit函数直接进行线性拟合
  • 或者用numpy中的polyfit和poly1d进行多项式拟合


用Python的numpy中的polyfit函数直接进行线性拟合

程序代码:

import matplotlib.pyplot as plt
import numpy as np

#绘制原始数据的散点图
x = np.array([3.6, 3.7 ,3.8 ,3.9 ,4.0, 4.1, 4.2])
y = np.array([1.0, 0.9, 0.9, 0.81, 0.60, 0.56, 0.35])
plt.scatter(x,y)
#直接拟合
# y = slope * x + intercept
slope,intercept = np.polyfit(x,y,1)
#
print("线性方程的系数:")
print(slope)
print(intercept)
# 创建数据点
#x = np.linspace(-1, 10, 1100) # 从-1到10之间生成1100个点
x = np.linspace(3.5, 4.5, 100)
#y = f(x) # 对每个点计算y值

# 绘制拟合出来的一元一次线性方程的图像
plt.plot(x, slope * x + intercept, color = "blue")
plt.xlabel('x')
plt.ylabel('y')
plt.title('Display func: f(x) = ax+b ')
plt.grid() # 显示网格
plt.show() # 显示图像

运行结果:

用numpy中的polyfit和poly1d进行多项式拟合

程序代码:

import matplotlib.pyplot as plt
import numpy as np

#绘制原始数据的散点图
x = np.array([3.6, 3.7 ,3.8 ,3.9 ,4.0, 4.1, 4.2])
y = np.array([1.0, 0.9, 0.9, 0.81, 0.60, 0.56, 0.35])
plt.scatter(x,y)
#直接拟合
# 3次方程 的 多项式回归系数
coefs = np.polyfit(x,y,3)
# 多项式函数
poly = np.poly1d(coefs)
#
print("多项式 coefs:")
print(coefs)
# [-0.27777778 2.07142857 -4.50912698 3.3352381 ]
# 创建数据点
#x = np.linspace(-1, 10, 1100) # 从-1到10之间生成1100个点
# new_x
x = np.linspace(3.5, 4.5, 1000)
#y = f(x) # 对每个点计算y值

# 绘制拟合出来的一元一次线性方程的图像
plt.plot(x, poly(x), color = "blue")
plt.xlabel('x')
plt.ylabel('y')
plt.title('Display func: f(x) = ax^3 + bx^2 + cx + d')
plt.grid() # 显示网格
plt.show() # 显示图像

运行结果:

相关文章

Python实现拟合曲线

拟合曲线是指用数学函数或曲线模型在二维或三维坐标系中对一组数据进行逼近的过程。在数据分析中,我们经常需要使用函数或曲线模型来近似描述数据之间的关系。通常,我们对数据进行可视化后,使用曲线模型对数据进...

PYTHON如何实现曲线平滑(附代码)

在 Python 中,可以通过移动平均法、高斯滤波、 Savitzky-Golay 滤波来实现曲线平滑。下面用python分别实现了曲线平滑。1.移动平均法(Moving Average)原理:移动平...

【Python机器学习系列】拟合和回归傻傻分不清?一文带你彻底搞懂

一、拟合和回归的区别拟合并不特指某一种方法,指的是对一些数据,按其规律方程化,比如把平面(一元)上一系列的离散点,用一条直线(线性)或光滑的曲线(非线性)连接起来,而其方程化的方法有很多,回归分析(r...

人工智能同样也会读死书----“过拟合”

上一篇:《“嵌入”在大语言模型中是解决把句子转换成向量表示的技术》序言:我们常常会说某某人只会“读死书”,题目稍微变一点就不会做了。这其实是我们人类学习中很常见的现象。可是你知道吗?人工智能其实更容易...

SPC相关的计算用excel和python实现【源码下载】

做SPC分析涉及到很多计算,比如CPK、PPK、概率图、PPM等等,网上很多公式,但具体实现却不是那么容易的。我们整理了这些用excel和python实现的代码。包括但不限于以下的内容:SPC分析中的...

Python方差分析

昨天介绍了方差分析,以及方差分析之前的正态性检验和方差齐性检验,然后使用Excel和R语言两种工具分别来进行了方差的分析操作,具体的可以点击《方差分析 in R语言 and Excel》跳转,今天就使...