Heim  >  Artikel  >  Backend-Entwicklung  >  Wie können Kurven beim Umgang mit verrauschten Datensätzen effektiv geglättet werden?

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

Barbara Streisand
Barbara StreisandOriginal
2024-10-20 15:57:02473Durchsuche

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

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>
  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>
  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>

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!

Stellungnahme:
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