Lissage des courbes pour les ensembles de données : exploration d'approches alternatives
Pour lisser efficacement les courbes des ensembles de données avec du bruit, plusieurs méthodes peuvent être utilisées. Cet article explore les options au-delà de la fonction UnivariateSpline couramment utilisée.
Filtre Savitzky-Golay
Une alternative recommandée est le filtre Savitzky-Golay, qui exploite la régression polynomiale pour estimer les données. points dans une fenêtre mobile. Ce filtre traite efficacement les signaux bruités, même provenant de sources non linéaires ou non périodiques.
Implémentation en Python à l'aide de SciPy
Pour implémenter le filtre Savitzky-Golay en Python en utilisant SciPy, suivez ces étapes :
<code class="python">import numpy as np from scipy.signal import savgol_filter # Define x and y data x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) + np.random.random(100) * 0.2 # Apply the Savitzky-Golay filter yhat = savgol_filter(y, 51, 3) # Window size 51, polynomial order 3 # Plot the data plt.plot(x, y) plt.plot(x, yhat, color='red') plt.show()</code>
Autres approches
Bien que le filtre Savitzky-Golay soit une solution largement applicable, il vaut la peine d'envisager d'autres techniques :
Conclusion
Comme démontré, le filtre Savitzky-Golay fournit un moyen efficace de lisser les courbes pour les ensembles de données, surtout en présence de bruit. D'autres approches peuvent également convenir en fonction des caractéristiques spécifiques des données. En considérant les avantages et les inconvénients de chaque technique, les utilisateurs peuvent sélectionner la méthode la plus appropriée pour leurs applications.
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!