Modell#
- class scipy.odr.Model(fcn, fjacb=None, fjacd=None, extra_args=None, estimate=None, implicit=0, meta=None)[Quelle]#
Die Klasse Model speichert Informationen über die zu fittende Funktion.
Speichert die Funktion selbst, zumindest, und optional speichert Funktionen, die die während der Anpassung verwendeten Jacobi-Matrizen berechnen. Außerdem kann eine Funktion bereitgestellt werden, die vernünftige Startwerte für die Anpassungsparameter liefert, möglicherweise gegeben die Datenmenge.
- Parameter:
- fcnFunktion
fcn(beta, x) –> y
- fjacbFunktion
Jacobi-Matrix von fcn bezüglich der Anpassungsparameter beta.
fjacb(beta, x) –> @f_i(x,B)/@B_j
- fjacdFunktion
Jacobi-Matrix von fcn bezüglich der (möglicherweise mehrdimensionalen) Eingabevariablen.
fjacd(beta, x) –> @f_i(x,B)/@x_j
- extra_argsTupel, optional
Wenn angegeben, sollte extra_args ein Tupel zusätzlicher Argumente sein, die an fcn, fjacb und fjacd übergeben werden. Jede wird aufgerufen von apply(fcn, (beta, x) + extra_args)
- estimatearray_like von Rang 1
Liefert Schätzungen der Anpassungsparameter aus den Daten
estimate(data) –> estbeta
- implicitboolesch
Wenn TRUE, gibt an, dass das Modell implizit ist; d.h. fcn(beta, x) ~= 0 und es gibt keine y-Daten, gegen die angepasst werden soll
- metadict, optional
Freiform-Dictionary von Metadaten für das Modell
Methoden
set_meta(**kwds)Aktualisiert das Metadaten-Dictionary mit den hier angegebenen Schlüsselwörtern und Daten.
Hinweise
Beachten Sie, dass die fcn, fjacb und fjacd auf NumPy-Arrays operieren und ein NumPy-Array zurückgeben. Das estimate Objekt nimmt eine Instanz der Data-Klasse entgegen.
Hier sind die Regeln für die Formen der Argument- und Rückgabearrays der Callback-Funktionen
- x
Wenn die Eingabedaten eindimensional sind, dann ist x ein Array vom Rang 1; d.h.
x = array([1, 2, 3, ...]); x.shape = (n,)Wenn die Eingabedaten mehrdimensional sind, dann ist x ein Array vom Rang 2; d.h.x = array([[1, 2, ...], [2, 4, ...]]); x.shape = (m, n). In allen Fällen hat es die gleiche Form wie das Eingabedaten-Array, das anodrübergeben wird. m ist die Dimensionalität der Eingabedaten, n ist die Anzahl der Beobachtungen.- y
Wenn die Antwortvariable eindimensional ist, dann ist y ein Array vom Rang 1, d.h.
y = array([2, 4, ...]); y.shape = (n,). Wenn die Antwortvariable mehrdimensional ist, dann ist y ein Array vom Rang 2, d.h.y = array([[2, 4, ...], [3, 6, ...]]); y.shape = (q, n)wobei q die Dimensionalität der Antwortvariable ist.- beta
Array vom Rang 1 mit der Länge p, wobei p die Anzahl der Parameter ist; d.h.
beta = array([B_1, B_2, ..., B_p])- fjacb
Wenn die Antwortvariable mehrdimensional ist, dann hat die Form des Rückgabe-Arrays
(q, p, n), so dassfjacb(x,beta)[l,k,i] = d f_l(X,B)/d B_kam i-ten Datenpunkt ausgewertet wird. Wennq == 1, dann ist das Rückgabe-Array nur Rang 2 und hat die Form(p, n).- fjacd
Wie bei fjacb, nur hat die Form des Rückgabe-Arrays
(q, m, n), so dassfjacd(x,beta)[l,j,i] = d f_l(X,B)/d X_jam i-ten Datenpunkt ausgewertet wird. Wennq == 1, dann ist die Form des Rückgabe-Arrays(m, n). Wennm == 1, ist die Form (q, n). Wenn m == q == 1, ist die Form(n,).