Heim > Backend-Entwicklung > Python-Tutorial > Wie können verrauschte Datenkurven effektiv geglättet werden?

Wie können verrauschte Datenkurven effektiv geglättet werden?

Susan Sarandon
Freigeben: 2024-10-20 15:58:29
Original
772 Leute haben es durchsucht

How to Effectively Smoothen Noisy Data Curves?

Verrauschte Kurven optimal glätten

Betrachten Sie einen Datensatz, der durch Folgendes angenähert wird:

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

Dies beinhaltet 20 % Variation. Ansätze wie UnivariateSpline und gleitende Durchschnitte weisen Einschränkungen auf.

Savitzky-Golay-Filter

Eine effektive Lösung ist der Savitzky-Golay-Filter, der in scipy verfügbar ist. Es verwendet die Regression der kleinsten Quadrate, um den Wert in der Mitte eines kleinen Fensters mithilfe eines Polynoms zu schätzen. Das Fenster verschiebt sich dann, um den Vorgang zu wiederholen, was zu einer optimierten Anpassung jedes Punkts führt.

import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import savgol_filter

x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x) + np.random.random(100) * 0.2
yhat = savgol_filter(y, 51, 3) # window size 51, polynomial order 3

plt.plot(x,y)
plt.plot(x,yhat, color='red')
plt.show()
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie können verrauschte Datenkurven 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