Kurven mit Datensatzrauschen glätten: Ein praktischer Leitfaden
Das Glätten von Kurven für verrauschte Datensätze ist eine häufige Herausforderung bei der Datenanalyse. Um dieses Problem zu beheben, betrachten Sie einen Datensatz mit einer rauschbedingten Variation von 20 %:
import numpy as np x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) + np.random.random(100) * 0.2
Für diese Situation ist der Savitzky-Golay-Filter eine effektive Wahl. Dieser Filter funktioniert, indem er ein Polynom an ein Fenster mit Datenpunkten anpasst und das Polynom verwendet, um den Wert in der Mitte des Fensters zu schätzen. Das Fenster wird dann entlang der Daten verschoben und der Vorgang wiederholt sich, was zu einer geglätteten Kurve führt.
So implementieren Sie den Savitzky-Golay-Filter in Python:
<code class="python">import numpy as np import matplotlib.pyplot as plt</code>
<code class="python">yhat = savgol_filter(y, 51, 3) # window size 51, polynomial order 3</code>
<code class="python">plt.plot(x, y) plt.plot(x, yhat, color='red') plt.show()</code>
Die resultierende Kurve wird glatter als das Original sein, während das zugrunde liegende Signal erhalten bleibt.
Hinweis: Wenn Sie das nicht haben Wenn die savgol_filter-Funktion verfügbar ist, können Sie sie mit dem folgenden Befehl installieren:
pip install scipy
Das obige ist der detaillierte Inhalt vonWie können Kurven beim Umgang mit verrauschten Datensätzen effektiv geglättet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!