Parameter mit SciPy curve_fit() automatisch optimieren

Die SciPy-Funktion curve_fit() findet die besten Parameter automatisch. Das erspart das Ausprobieren, wenn eine Funktion mit Daten modelliert werden soll.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht
Parameter optimieren mit SciPy curve_fit()

(Bild: Albert Hulm)

Lesezeit: 6 Min.
Inhaltsverzeichnis
Pina programmiert

Meine Personenwaage "misst" über Elektroden meinen Körperfettanteil. Der angezeigte Wert schwankt um mehr als 100 Prozent, je nachdem, wie nass meine Füße sind. Um mal zu besseren Werten zu kommen, habe ich mir einen sogenannten "Caliper" gekauft. Das ist eine Zange, mit der man mit einem Druck von genau 10 Gramm pro Quadratmillimeter Auflagefläche (meine klemmt 6,4 × 7,3 Millimeter ein) die Dicke von Speckfalten misst.

Ich messe damit eine Falte seitlich am Bauch. Die Methode ist erheblich genauer und den Caliper bekam ich für sieben Euro. Bei der Zange lag ein Zettel mit zwei Tabellen bei: eine für Männer und eine für Frauen. In der Tabelle schaut man abhängig vom eigenen Alter nach, welcher Körperfettanteil in Prozent zu dem in Millimeter gemessenen Maß gehört.

Für die Zange hatte ich schnell einen guten Platz gefunden, aber der Zettel mit den Tabellen flog wochenlang auf meinem Schreibtisch rum. Eigentlich wollte ich die Messwerte ohnehin digital archivieren und es nervte mich, dass ich dafür auf eine Tabelle auf einem Stück Papier schauen musste. Es gibt zwar Formeln für drei oder mehr Messwerte an verschiedenen Körperstellen, für nur einen Wert hatte ich aber nur die Tabelle. Die einfach zu digitalisieren wäre mir aber zu simpel gewesen. Ich wollte eine Formel finden, um alle Tabellenwerte (und Werte dazwischen auch) berechnen zu können.