Lissage des courbes avec le bruit des ensembles de données : un guide pratique
Le lissage des courbes pour les ensembles de données bruyants est un défi courant dans l'analyse des données. Pour résoudre ce problème, considérons un ensemble de données avec une variation de 20 % due au bruit :
import numpy as np x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) np.random.random(100) * 0.2
Pour cette situation, le filtre Savitzky-Golay est un choix efficace. Ce filtre fonctionne en ajustant un polynôme à une fenêtre de points de données et en utilisant le polynôme pour estimer la valeur au centre de la fenêtre. La fenêtre est ensuite décalée le long des données et le processus se répète, ce qui donne une courbe lissée.
Voici comment implémenter le filtre Savitzky-Golay en 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()
La courbe résultante sera plus lisse que l'originale tout en préservant le signal sous-jacent.
Remarque : Si vous n'avez pas la fonction savgol_filter disponible, vous pouvez l'installer à l'aide de la commande suivante :
pip install scipy
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3