Dopasowuję krzywe używając curve_fit. Czy istnieje sposób na odczytanie współczynnika determinacji i bezwzględnej sumy kwadratów? Dzięki, WoodpickerPython - R kwadrat i bezwzględna suma kwadratów uzyskiwanych przez scipy.optimize curve_fit?
6
A
Odpowiedz
4
According to doc, optymalizacja z curve_fit
daje
Optymalne wartości parametrów tak, aby suma błędu kwadratu f (xdata * popt) - ydata jest zminimalizowane
Następnie użyj optimize.leastsq
import scipy.optimize
p,cov,infodict,mesg,ier = optimize.leastsq(
residuals,a_guess,args=(x,y),full_output=True,warning=True)
z tym dla residuals
:
def residuals(a,x,y):
return y-f(x,a)
residuals
jest sposób powraca różnica pomiędzy faktycznym danych wyjściowych y
modelu i wyjścia z f
modelu, a
parametr (y), x
danych wejściowych.
Metoda optimize.leastsq
wraca wiele informacji można użyć do obliczeniowej RSquared i RMSE samemu. Dla RSQuared można zrobić
ssErr = (infodict['fvec']**2).sum()
ssTot = ((y-y.mean())**2).sum()
rsquared = 1-(ssErr/ssTot)
Więcej szczegółów na temat tego, co jest infodict['fvec']
In [48]: optimize.leastsq?
...
infodict -- a dictionary of optional outputs with the keys:
'fvec' : the function evaluated at the output
Próbowałem za tobą, ale nie udało. Czy muszę używać zarówno curve_fit AND leastsq? I czy nie mogę użyć w jakiś sposób pcov z mojego curve_fit? Wracając do dokumentu, curve_fit już używa minimumsq - czy jest to informacja potrzebna do obliczenia r square nie przekazanego od minimumsq do curve_fit? – Woodpicker
Najważniejsze, że jestem zdezorientowany, jeśli "a_guess" w funkcji minimumsq - co to znaczy? Dzięki ... – Woodpicker
OK, to jest - to jest szacunek ... Działa teraz, dzięki – Woodpicker