numpy多项式拟合函数polyfit的使用方法代码

 更新时间:2024年01月23日 15:02:42   作者:马红权  
这篇文章主要给大家介绍了关于numpy多项式拟合函数polyfit的使用方法,np.polyfit是Numpy库中的一个函数,用于在最小二乘意义下拟合多项式曲线到数据点集,需要的朋友可以参考下
import numpy as np
def fit(x,y,m,w):
    if len(x)<=m:
        return False
    xishu = np.polyfit(x,y,m,w=w)
    p = np.poly1d(xishu) # 构造多项式
    yfit = p(x) # 拟合的y值
    yresid = y - yfit # 残差
    SSresid = sum(pow(yresid, 2)) # 残差平方和
    SStotal = len(y) * np.var(y) # 总体平均方差
    if SStotal==0:#水平线
        r2=1
    else:
        r2 = 1 - SSresid/SStotal # 拟合优度    
    return (xishu,r2,yfit)
if __name__=="__main__":
    x = np.arange(0,5,0.1)
    z = [2+3*x+4*x**2 for x in x]
    y = np.array([np.random.normal(z,3) for z in z])
    weight=[1 for one in x]
    print(fit(x,y,2,weight))

polyfit(x,y,m,w) 参数m为多项式的次数+1,w为权重。权重的含义是这个数据点的误差要乘以权重,低点给予高权重可以减少低点的误差,避免低点的相对误差过大。

自定义函数fit(x,y,m,w)的返回值 (xishu,r2,yfit)分别为系数、相关系数、拟合Y值。

过原点也可以通过权重实现。代码如下:

if must00:
    x=np.append(x,0)#.append(0)
    y=np.append(y,0)#y.append(0)
    w=np.append(w,100000000)#.append(10000)
fit_r=fit(x,y,m,w)
if fit_r:
    (xishu,r,y_fitted)=fit_r
else:
    #fit error
    xishu=[0,1,0]
    y_fitted=x 
    r=0

总结 

到此这篇关于numpy多项式拟合函数polyfit使用的文章就介绍到这了,更多相关numpy多项式拟合函数polyfi内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python进程和线程用法知识点总结

    python进程和线程用法知识点总结

    在本篇文章里小编给大家整理了关于python进程和线程用法以及相关实例内容,需要的朋友们跟着学习下。
    2019-05-05
  • Python中星号的五种用法小结

    Python中星号的五种用法小结

    本文主要介绍了Python中星号的五种用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • python监控nginx端口和进程状态

    python监控nginx端口和进程状态

    这篇文章主要为大家详细介绍了python监控nginx端口和进程状态,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • python time模块用法实例详解

    python time模块用法实例详解

    这篇文章主要介绍了python中time模块的用法,包括了各类时间函数,需要的朋友可以参考下
    2014-09-09
  • 浅析Python 中的 WSGI 接口和 WSGI 服务的运行

    浅析Python 中的 WSGI 接口和 WSGI 服务的运行

    这篇文章主要介绍了Python 中的 WSGI 接口和 WSGI 服务的相关资料,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-12-12
  • Django框架使用mysql视图操作示例

    Django框架使用mysql视图操作示例

    这篇文章主要介绍了Django框架使用mysql视图操作,结合实例形式分析了mysql视图的创建、查看以及Django框架使用mysql视图相关操作技巧,需要的朋友可以参考下
    2019-05-05
  • 利用Python打造一个多人聊天室的示例详解

    利用Python打造一个多人聊天室的示例详解

    这篇文章主要介绍的是利用Python实现的一个简易的多人聊天室,文中的示例代码讲解详细,对学习Python有一定的帮助,感兴趣的可以学习一下
    2021-12-12
  • Python每天必学之bytes字节

    Python每天必学之bytes字节

    Python每天必学之bytes字节,针对Python中的bytes字节进行学习理解,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • 基于Python实现PPT合并小工具

    基于Python实现PPT合并小工具

    在日常工作和学习中,如果需要将多个PPT文件合并成一个文件,手动操作可能会非常繁琐和耗时,所以本文将使用Python制作一个简单的PPT合并小工具,希望对大家有所帮助
    2024-01-01
  • 利用Python制作心型照片墙效果

    利用Python制作心型照片墙效果

    没到一年一度的520等节假日,作为一个地地道道的程序猿心里慌得一批,除了吃饭买礼物看电影好像就没有更多的想法了。本文教你用Python制作一个心型照片墙,需要的可以参考一下
    2022-05-05

最新评论