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

liftword5个月前 (01-11)技术文章38

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

其实有更简单的方法:

  • 用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() # 显示图像

运行结果:

相关文章

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

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

python pytorch 深度学习神经网络 线性回归学习笔记

#暑期创作大赛#深度学习网络,是由多层神经元组成的,上一层的输出是下一层的输入,线性神经网络可以作为深度学习中的一层神经元。由于线性神经网络的结构简单,可以作为单层使用,非常适合用他来学习神经网络的构...

Python方差分析

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

如何使用Python实现简单的线性回归

前言线性回归是一种常见的机器学习算法,用于预测一个连续型的输出变量。它基于线性关系来建立一个输入变量和输出变量之间的关系模型。在这篇文章中,我们将介绍如何使用Python实现简单的线性回归模型。安装相...

R数据分析:PLS结构方程模型介绍,论文报告方法和实际操作

前面给大家写的关于结构方程模型的文章都是基于变量的方差协方差矩阵来探讨变量间关系的,叫做covariance-based SEM,今天给大家介绍一下另外一个类型的SEM,叫做偏最小二乘结构方差模型。一...