파이썬에서 비선형 커브 피팅에 대한 결정 계수 (R2) 및 RMSE를 계산하는 방법. 다음 코드는 커브 피팅 때까지 수행됩니다. 그런 다음 R2와 RMSE를 계산하는 방법은 무엇입니까?파이썬의 비선형 커브 피팅에 대한 결정 계수 (R2) 및 RMSE (root mean square error)를 계산하십시오.
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
def func(x, a, b, c):
return a * np.exp(-b * x) + c
x = np.linspace(0,4,50)
y = func(x, 2.5, 1.3, 0.5)
yn = y + 0.2*np.random.normal(size=len(x))
popt, pcov = curve_fit(func, x, yn)
plt.figure()
plt.plot(x, yn, 'ko', label="Original Noised Data")
plt.plot(x, func(x, *popt), 'r-', label="Fitted Curve")
plt.legend()
plt.show()
statsmodels 개발자 중 한 사람의이 [post] (https://github.com/scipy/scipy/issues/2962)에 따르면'scipy.stats.linregress'의'std_err'은 실제로 기울기 계수. 이 값은 RMSE와 같지 않습니다. RMSE는 자유도에 따라 실제로 달라지는 값인 0.5 (잔차 제곱의 평균)입니다. – pylang
아니요, scipy 문서에 따르면 SE는 추정치의 표준 오차입니다. http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.linregress.html#scipy.stats.linregress – Borys
내가 제공 한 링크에서 제공 한 scipy doc의 작성자가이 정의를 다룹니다. 그의 게시물은 scipy의 SE가 경사면의 오류임을 확인합니다. – pylang