Wie können Kurven beim Umgang mit verrauschten Datensätzen effektiv geglättet werden?

Barbara Streisand
Freigeben: 2024-10-20 15:57:02
Original
470 Leute haben es durchsucht

How to Effectively Smooth Curves when Dealing with Noisy Datasets?

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
Nach dem Login kopieren

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:

  1. Importieren Sie das Notwendige Bibliotheken:
<code class="python">import numpy as np
import matplotlib.pyplot as plt</code>
Nach dem Login kopieren
  1. Führen Sie den Savitzky-Golay-Filter auf die Daten aus:
<code class="python">yhat = savgol_filter(y, 51, 3) # window size 51, polynomial order 3</code>
Nach dem Login kopieren
  1. Visualisieren Sie die Originaldaten und die geglättete Kurve :
<code class="python">plt.plot(x, y)
plt.plot(x, yhat, color='red')
plt.show()</code>
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!