Am Ende dieses Tutorials werden wir feststellen. Aber zuerst, lassen Sie uns mit den Grundlagen von curve_fit () vertraut sein.
Python scipy optimieren Sie die Kurvenanpassungsfunktion für verwendet?
Die Funktion Python Scipy Optimize Curve Fit ist häufig verwendet, um die am besten geeigneten Parameter zu erhalten. Die Funktion curve_fit () ist eine Optimierungsfunktion, mit der der optimierte Parametersatz für eine angegebene Funktion ermittelt wird, die perfekt zum bereitgestellten Datensatz passt.
Die Kurve fit () -Funktion in scipy ist eine Open-Source. Als Argument nimmt der curve_fit () die gleichen Eingabedaten, Ausgabedaten und den zu verwendenden Kartierungsfunktionsnamen vor. Die Zuordnungsfunktion sollte sowohl Eingabedatenproben als auch eine Reihe von Parametern akzeptieren.
Im Gegensatz zum überwachten Lernen muss die Kurve -Anpassungsfunktion die Funktionen definieren, die die Eingänge perfekt in die Ausgänge abbilden. Die Mapping -Funktion kann einfach eine gerade Linie wie eine lineare Regression oder eine gekrümmte Linie wie eine Polynomregression sein, oder es könnte alles andere sein.
Syntax von Python Scipy.optimieren.Kurvenanpassung()
Die scipy curve fit () syntax ist unten bereitgestellt.
# Scipy.optimieren.CURVE_FIT (F, X-Data, Y-Data, Sigma = Keine, p0 = keine)Der curve_fit () nimmt einige erforderliche Parameter und einige optionale Parameter vor. Das 'f' ist eine Modellfunktion, f (a,…). Das erste Argument, das es braucht, muss die unabhängige Variable sein, und die verbleibenden Argumente müssen die zu passenden Parameter sein.
Der Parameter "X-Data" ist ein Array-ähnlicher Parameter, der eine unabhängige Variable ist, bei der die Daten gemessen werden. Das 'Y-Data' ist ein weiterer Array-ähnlicher Parameter, bei dem es sich um eine abhängige Variable handelt, die auch als Ausgabe der Funktion bezeichnet wird.
Das 'Sigma' ist ein optionaler Parameter, der die Unsicherheit in 'y-Data' bestimmt. Der Wert von 'Sigma' könnte einfach einfach 'keine', 'M-Länge-Sequenz oder' MXM Array 'sein. Der Parameter "p0" ist eine nitliche Vermutung der N -Länge für die Parameter. Es ist ein optionaler Parameter, und daher ist der Anfangswert 1, wenn es nicht bereitgestellt wird, 1 ist 1.
Die Funktion curve_fit () gibt die beiden Werte zurück. POPT und PCOV. Das 'POPT' ist ein Array, das die optimalen Werte für die Parameter darstellt, um die Summe der quadratischen Residuen zu minimieren. Gleichzeitig ist das 'PCOV' das 2D -Array, das die geschätzte Kovarianz von 'POPT' darstellt.
Darüber hinaus erhöht es die drei Ausnahmen; Wertfehler, Laufzeitfehler und Optimierungswarnung. Der "Wertfehler" wird geworfen, wenn entweder X-Data oder Y-Data NANs enthält oder wenn eine inkompatible Methode verwendet wird.
Der "Laufzeitfehler" wird geworfen, wenn die geringste Quadratminimierung fehlschlägt. Und die "Optimierungswarnung" wird angehoben, wenn die Kovarianz des Parameters nicht geschätzt werden kann.
Beispiel 1:
Im ersten Beispiel zeichnen wir eine gerade Linie, die zu unseren bereitgestellten Daten passt, um den linearen Modellausdruck darzustellen. Nach dem Importieren der erforderlichen Python -Bibliotheken haben wir Res2 = ein*res1+zwei Gleichung verwendet, um einen Datensatz von 30 Punkten zu erstellen.
Um den Datensatz realistischer zu gestalten, haben wir den Res2 -Werten etwas Gaußsche Rauschen hinzugefügt. Dann haben wir die Scipy verwendet.optimieren.CURVE FIT () -Technik, um die Werte von Parametern 'One' und 'Two' zu schätzen. Hier ist der vollständige Programmiercode des Modells, dem Sie folgen können.
Numph als p importierenIm Folgenden finden Sie das Ergebnis des oben beigefügten Code. Die roten Punkte im resultierenden Bildschirm stellen die realen Datenpunkte des Datensatzes dar.
Andererseits ist die lila Linie die Kurve, die mithilfe der Scipy an den Datensatz angepasst wird.optimieren.Kurve fit () Methode. Darüber hinaus liefert es auch den geschätzten Wert beider Parameter 'One' und 'Two', der auch durch Scipy berechnet wird.optimieren.Kurve fit () Technik.
Beispiel 2:
Im zweiten Beispiel werden wir die Verwendung der Scipy erklären.optimieren.curve_fit () Methode, um die exponentielle Kurve zu zeichnen, die zu unseren Daten passt.
Hier haben wir res2 = ein*res2+eine Gleichung verwendet, um einen Datensatz verschiedener Punkte zu erstellen. Der verbleibende Code des Programms entspricht dem obigen Beispiel. Hier ist der Code, der die exponentielle Kurve mit der Funktion curve_fit () darstellt.
Numph als p importierenLassen Sie uns die Ausgabe sehen.
Hier sehen Sie die grafische Darstellung.
Beispiel 3:
Im dritten Beispiel zeichnen wir die beiden Kurven gleichzeitig um die tatsächliche Linie um, um die Differenz zwischen beiden Werten zu erkennen. Siehe den Code unten.
Im Code haben wir die Module importiert und die Funktion definiert (als func_one angegeben). Danach haben wir die Werte gesetzt und die Funktion curve_fit aufgerufen, um diese Werte in der Grafik zu zeichnen.
Matplotlib importieren.Pyplot als MTBDie Ausgabe befindet sich unten, wo Sie die resultierenden Kurven sehen können.
Abschluss
In diesem Artikel haben wir Ihnen alle Details zur Verwendung der von Scipy bereitgestellten Funktion cuver_fit () gegeben. Wir haben mit der Einführung der Funktion curve_fit () begonnen und dann die Syntax der Funktion curve_fit () gelernt. Danach haben wir einige nützliche Beispiele dafür gesehen, wie die Funktion curve_fit () verwendet wird, um die Linien und Kurven in Python zu zeichnen. Sie können diese Beispiele selbst ausführen, um zu sehen.