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 :
<code class="python">import numpy as np import matplotlib.pyplot as plt</code>
<code class="python">yhat = savgol_filter(y, 51, 3) # window size 51, polynomial order 3</code>
<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!