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+fuzzywuzzy计算两个字符串之间的相似度
fuzzywuzzy 可以计算两个字符串之间的相似度,它依据 Levenshtein Distance 算法来进行计算,该算法又叫 Edit Distance 算法,感兴趣的小伙伴可以跟随小编一起学习一下2022-09-09PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
这篇文章主要介绍了PyCharm 2020.1版安装破解注册码永久激活(激活到2089年),需要的朋友可以参考下2020-09-09使用python实现unix2dos和dos2unix命令的例子
今天小编就为大家分享一篇使用python实现unix2dos和dos2unix命令的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-08-08
最新评论