Maison  >  Article  >  développement back-end  >  Comment lisser efficacement les courbes lorsque vous traitez des ensembles de données bruyants ?

Comment lisser efficacement les courbes lorsque vous traitez des ensembles de données bruyants ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-20 15:57:02471parcourir

How to Effectively Smooth Curves when Dealing with Noisy Datasets?

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 :

  1. Importez les éléments nécessaires bibliothèques :
<code class="python">import numpy as np
import matplotlib.pyplot as plt</code>
  1. Exécutez le filtre Savitzky-Golay sur les données :
<code class="python">yhat = savgol_filter(y, 51, 3) # window size 51, polynomial order 3</code>
  1. Visualisez les données d'origine et la courbe lissée :
<code class="python">plt.plot(x, y)
plt.plot(x, yhat, color='red')
plt.show()</code>

La courbe résultante sera plus lisse que l'originale tout en préservant le signal sous-jacent.

Remarque : Si vous n'avez pas le Fonction savgol_filter disponible, vous pouvez l'installer à l'aide de la commande suivante :

pip install scipy

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn