我目前正在使用scipy.optimize的curve_fit来拟合高斯数据。拟合等工作得非常好,我得到了我的参数和这些参数的不确定性。但是有什么方法来计算拟合的质量吗?谢谢你的回答
nuypyhwy1#
您可以使用您的函数和curve_fit返回的参数生成预测,这些参数是在使用某些度量(MSE、RMSE、R-sq等)进行优化后用于量化拟合质量的。例如:
curve_fit
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)
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)
或者使用numpy的linalg模块:
numpy
linalg
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
2条答案
按热度按时间nuypyhwy1#
您可以使用您的函数和
curve_fit
返回的参数生成预测,这些参数是在使用某些度量(MSE、RMSE、R-sq等)进行优化后用于量化拟合质量的。例如:
hi3rlvi22#
您可以使用MSE或RMSE等指标:
或者使用
numpy
的linalg
模块:有关RMSE的更多信息:https://stackoverflow.com/a/37861832/15239951