Glätten von Kurven mit Datensatzrauschen: 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 20-prozentigen Variation aufgrund von Rauschen:
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:
import numpy as np
import matplotlib.pyplot as plt
yhat = savgol_filter(y, 51, 3) # window size 51, polynomial order 3
plt.plot(x, y)
plt.plot(x, yhat, color='red')
plt.show()
Die resultierende Kurve wird glatter als das Original sein, während das zugrunde liegende Signal erhalten bleibt.
Hinweis: Wenn Sie nicht über die Funktion savgol_filter verfügen verfügbar ist, können Sie es mit dem folgenden Befehl installieren:
pip install scipy
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3