Python-玩转数据-函数近似(回归拟合)

本文介绍了Python中进行回归分析和数据拟合的方法,包括1次、5次和7次单项式拟合,讨论了基函数的选择,以及如何处理有噪声、未排序和多维数据的情况。通过numpy的polyfit和polyval函数实现最优参数的确定。
摘要由CSDN通过智能技术生成

一、说明

回归和差值是常用的数学工具。
回归分析是一种数学模型。回归,指研究一组随机变量(Y1 ,Y2 ,…,Yi)和另一组(X1,X2,…,Xk)变量之间关系的统计分析方法,又称多重回归分析。通常Y1,Y2,…,Yi是因变量,X1、X2,…,Xk是自变量。

在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。插值:用来填充图像变换时像素之间的空隙。

二、定义示例函数

f(x)=sin(x)+0.5x

import numpy as np
import matplotlib.pylab as plt
#定义示例函数
def f(x):
    return np.sin(x)+0.5*x
#生成x的模拟数据    
x=np.linspace(-2*np.pi,2*np.pi,50)
plt.plot(x,f(x),'b')
plt.grid(True)
plt.xlabel('x')
plt.ylabel('f(x)')
plt.show()

在这里插入图片描述

三、回归

回归是在给定一组“基函数的”下,找出最优参数来拟合观测值。

numpy中的ployfit可以确定最优参数,polyval可以以一组输入值求取近似值。

1次单项式拟合

#参数 x 表示 x 坐标(自变量的值)
#参数 y 表示 y 坐标(因变量的值)
#deg 拟合多项式的次数
#full 如果是true,那么会返回调试信息
#w应用于y坐标的权重
#cov如果true,返回协方差矩阵
reg=np.polyfit(x,f(x),deg=1)
#开始拟合
ry=np.polyval(reg,x)
#画图
plt.plot(x,f(x),'b',label='f(x)')
plt.plot(x,ry,'r.',label='regression')
plt.legend(loc=0)
plt.grid(True)
plt.xlabel('x')
plt.ylabel('f(x)')
plt.show()

在这里插入图片描述

5次单项式作为基函数的拟合结果

这种拟合不是很合适,我们增加拟合次数到5次 deg=5

reg=np.polyfit(x,f(x),deg=5)
#开始拟合
ry=np.polyval(reg,x)
#画图
plt.plot(x,f(x),'b',label='f(x)')
plt.plot(x,ry,'r.',label='regression')
plt.legend(loc=0)
plt.grid(True)
plt
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值