Maison > développement back-end > Tutoriel Python > 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
Libérer: 2024-10-20 15:57:02
original
623 Les gens l'ont consulté

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
Copier après la connexion

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>
Copier après la connexion
  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>
Copier après la connexion
  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>
Copier après la connexion

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
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal