Numpy polyfit的权重值和拟合误差值

Numpy polyfit的权重值和拟合误差值

在本文中,我们将介绍numpy中的polyfit函数的权重值和拟合误差值。

阅读更多:Numpy 教程

polyfit函数简介

polyfit函数实现了最小二乘拟合,可根据一组(x, y)数据点拟合出相应的多项式函数。

import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([5, 3, 2, 4, 5])
z = np.polyfit(x, y, 3) # 用3次多项式拟合
print(z) # 输出系数
p = np.poly1d(z) # 构造多项式
print(p) # 输出多项式函数
Python

以上代码将数据点(x,y)用三次多项式函数拟合,输出拟合的系数和多项式函数式子。

权重值

在polyfit函数中,可以给x和y的数据点赋予不同的权重值,以反映不同的数据点在拟合中的重要性。

当所有的数据点都具有相同的权重值时,即所有数据点对拟合的贡献相同,此时权重值由参数w省略。

当数据点具有不同的权重值时,权重值是以数组形式传递给polyfit函数的。例如:

w = np.array([1, 2, 3, 4, 5]) # x数组的权重值
z = np.polyfit(x, y, 2, w=w) # 用2次多项式拟合
Python

以上代码中,x数组的权重值为[1, 2, 3, 4, 5],再用2次多项式函数对x、y数据点进行拟合。在这种情况下,拟合结果将更加倾向于权重较大的数据点,而忽略权重较小的数据点。

拟合误差值

在polyfit函数中,拟合误差值是用于衡量数据点与拟合曲线的差异程度的一种指标。numpy中可以通过polyfit函数的返回值来计算拟合误差值。

x = np.array([1, 2, 3, 4, 5])
y = np.array([5, 3, 2, 4, 5])
z = np.polyfit(x, y, 3) # 用3次多项式拟合
p = np.poly1d(z) # 构造多项式
yfit = p(x) # 拟合的y值
yresid = y - yfit # 残差
SSresid = sum(pow(yresid, 2)) # 残差平方和
SStotal = len(y) * np.var(y) # 总体平均方差
r2 = 1 - SSresid/SStotal # 拟合优度
Python

以上代码中,z是3次多项式函数的系数,p是拟合出的多项式函数。将x数组带入多项式函数,得到拟合的y值。yresid是拟合值与y数组的差,SSresid是残差的平方和,SStotal是y数组总体的方差,r2是拟合的优度。

总结

polyfit函数中可以根据数据点的权重值对拟合进行加权计算,以反映不同数据点在拟合中的重要性。拟合误差值是用于衡量数据点与拟合曲线的差异程度的一种指标。在实际的应用中,根据实际情况设置权重值和选择适当的拟合度数将有助于提高拟合的精度和适用性。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册