如何获得拟合的质量(Pthon,scipy,curve_fit)

iyfamqjs  于 2023-01-09  发布在  其他
关注(0)|答案(2)|浏览(202)

我目前正在使用scipy.optimize的curve_fit来拟合高斯数据。拟合等工作得非常好,我得到了我的参数和这些参数的不确定性。但是有什么方法来计算拟合的质量吗?
谢谢你的回答

nuypyhwy

nuypyhwy1#

您可以使用您的函数和curve_fit返回的参数生成预测,这些参数是在使用某些度量(MSE、RMSE、R-sq等)进行优化后用于量化拟合质量的。
例如:

popt, pcov = curve_fit(func, xdata, ydata)

# Use optimized parameters with your function
predicted = func(popt) 

# Use some metric to quantify fit quality
sklearn.metrics.mean_squared_error(ydata, predicted)
hi3rlvi2

hi3rlvi22#

您可以使用MSE或RMSE等指标:

# Suppose:
# popt, pcov = curve_fit(func, xdata, ydata)
# ypred = func(xdata, *popt)

mse = np.mean((ydata - ypred)**2)
rmse = np.sqrt(mse)

或者使用numpylinalg模块:

mse = np.linalg.norm(ydata - ypred)**2 / len(ydata)
rmse = np.linalg.norm(ydata - ypred) / np.sqrt(len(ydata))

有关RMSE的更多信息:https://stackoverflow.com/a/37861832/15239951

相关问题