7 techniques simples pour détecter les anomalies dans Pandas pour l'analyse des données
- Claude Paugh
- 24 juil.
- 5 min de lecture
L'analyse de données est une aventure passionnante, mais elle comporte aussi son lot de défis. L'un des plus grands obstacles est l'identification des anomalies, c'est-à-dire des résultats inattendus susceptibles de fausser nos conclusions et nos prévisions. Que vous analysiez des données de vente ou surveilliez les performances de votre système, il est essentiel de reconnaître ces anomalies. En tant qu'utilisateur passionné de la bibliothèque Pandas de Python, j'ai découvert plusieurs techniques pratiques pour les repérer efficacement. Dans cet article, je partagerai sept méthodes fiables et faciles à mettre en œuvre pour améliorer votre analyse de données.

Comprendre les anomalies
Les anomalies, parfois appelées valeurs aberrantes, sont des points de données qui s'écartent significativement de la distribution globale. Elles peuvent provenir de problèmes tels que des erreurs de mesure ou de véritables événements rares. Par exemple, si vous analysez un ensemble de données sur les montants d'achats de clients, une transaction unique de 10 000 $ dans un ensemble de données où la plupart des achats se situent entre 20 $ et 200 $ serait considérée comme une anomalie. Il est essentiel d'identifier ces points, car ils peuvent fausser vos analyses et conduire à des décisions erronées.
1. Inspection visuelle avec des boîtes à moustaches
L'un des moyens les plus simples et les plus efficaces d'identifier les anomalies est d'utiliser des boîtes à moustaches. Elles affichent clairement la distribution des données et facilitent la détection des valeurs aberrantes.
Un diagramme en boîte comprend cinq statistiques : le minimum, le premier quartile, la médiane, le troisième quartile et le maximum. Les points de données situés en dehors des « moustaches » sont des valeurs aberrantes potentielles.
import pandas as pd
import matplotlib.pyplot as pltExemples de données
data = {'Values': [1, 2, 3, 4, 5, 100]}
df = pd.DataFrame(data)Boîte à moustaches
plt.boxplot(df['Values'])
plt.title('Box Plot of Values')
plt.show()Selon des études, les boîtes à moustaches permettent d'indiquer efficacement les valeurs aberrantes, ce qui en fait un outil essentiel à votre boîte à moustaches. Un simple coup d'œil à la boîte à moustaches vous permettra de déterminer si certaines valeurs méritent une analyse plus approfondie.
2. Analyse du score Z
Le score Z offre une méthode simple pour quantifier l'écart entre une donnée et la moyenne. Une valeur avec un score Z supérieur à 3 ou inférieur à -3 signale généralement une anomalie.
Voici comment calculer les scores Z à l'aide de Pandas :
from scipy import stats
import pandas as pd
df['Z-Score'] = stats.zscore(df['Values'])
anomalies = df[(df['Z-Score'] > 3) | (df['Z-Score'] < -3)]
print(anomalies)Grâce à cette technique, vous pouvez clairement visualiser les mesures numériques qui mettent en évidence les écarts par rapport à la moyenne. Par exemple, dans un ensemble de données de 1 000 entrées, l'identification de quelques scores Z au-delà de cette plage peut indiquer que vous êtes sur la bonne voie.
3. Écart interquartile (IQR)
L'écart interquartile (EI) est une autre méthode fiable pour détecter les anomalies. Il est calculé comme la différence entre le premier (25e percentile) et le troisième quartile (75e percentile), capturant ainsi les 50 % médians des données.
Q1 = df['Values'].quantile(0.25)
Q3 = df['Values'].quantile(0.75)
IQR = Q3 - QDéfinir des limites pour identifier les valeurs aberrantes
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
anomalies = df[(df['Values'] < lower_bound) | (df['Values'] > upper_bound)]
print(anomalies)Des recherches montrent que l'utilisation de l'IQR peut réduire considérablement l'impact des valeurs extrêmes. Par exemple, dans un ensemble de données de 500 enregistrements de ventes, l'application de l'IQR peut aider à identifier les transactions qui ne correspondent pas aux habitudes d'achat des clients.
4. Analyse des séries chronologiques avec moyenne mobile et écart type
Pour les données de séries chronologiques, les statistiques glissantes sont particulièrement utiles. Elles permettent de calculer la moyenne et l'écart type au sein d'une fenêtre mobile, facilitant ainsi l'identification des anomalies à mesure que les tendances évoluent.
df['Rolling_Mean'] = df['Values'].rolling(window=3).mean()
df['Rolling_Std'] = df['Values'].rolling(window=3).std()Identifier les anomalies
anomalies = df[(df['Values'] > (df['Rolling_Mean'] + 2 * df['Rolling_Std'])) | (df['Values'] < (df['Rolling_Mean'] - 2 * df['Rolling_Std']))]
print(anomalies)Par exemple, si vous suivez les données des capteurs au fil du temps, cette méthode peut vous alerter des fluctuations qui pourraient indiquer un équipement défectueux, permettant ainsi une maintenance rapide avant que les problèmes ne s'aggravent.
5. Algorithme de forêt d'isolement
Pour ceux qui s’aventurent dans l’apprentissage automatique, l’algorithme Isolation Forest est un outil puissant pour identifier les anomalies, en particulier dans les grands ensembles de données.
Tout d'abord, assurez-vous d'avoir installé la bibliothèque scikit-learn. La forêt d'isolement isole les anomalies en sélectionnant aléatoirement des entités et en fractionnant les valeurs, ce qui lui permet de détecter des schémas inhabituels.
from sklearn.ensemble import IsolationForest
model = IsolationForest(contamination=0.1)
df['Anomaly'] = model.fit_predict(df[['Values']])
anomalies = df[df['Anomaly'] == -1]
print(anomalies)Cette méthode est particulièrement efficace pour les ensembles de données contenant des dizaines de milliers d’entrées, où les méthodes traditionnelles peuvent avoir du mal à identifier les anomalies.
6. Facteur de valeur aberrante locale (LOF)
Le facteur de valeur aberrante locale (LOF) est une autre technique avancée qui évalue la densité locale d'un point de données par rapport à ses voisins. Les points présentant une densité nettement inférieure sont signalés comme des anomalies.
from sklearn.neighbors import LocalOutlierFactor
lof = LocalOutlierFactor()
df['Anomaly'] = lof.fit_predict(df[['Values']])
anomalies = df[df['Anomaly'] == -1]
print(anomalies)Par exemple, si vous analysez les modèles de trafic, LOF peut vous aider à identifier les pics ou les baisses de volume inhabituels, vous alertant ainsi d'incidents potentiels ou d'inexactitudes de données.
7. Techniques de visualisation
Les outils visuels peuvent considérablement améliorer votre compréhension des données et vous aider à identifier les anomalies. Pensez à utiliser des nuages de points ou des graphiques de paires pour inspecter efficacement vos données visuellement.
plt.scatter(df.index, df['Values'])
plt.title('Scatter Plot of Values')
plt.xlabel('Index')
plt.ylabel('Values')
plt.axhline(y=upper_bound, color='r', linestyle='-')
plt.axhline(y=lower_bound, color='r', linestyle='-')
plt.show()Selon des études, les visualisations peuvent mener à des découvertes que les données brutes et les indicateurs ne révèlent pas toujours pleinement. Elles fournissent des informations permettant d'identifier rapidement des tendances et des valeurs aberrantes dans des ensembles de données complexes.
Mettre tout cela ensemble : analyse des données des pandas
La détection des anomalies est essentielle pour une analyse précise des données, notamment dans les secteurs où la précision est primordiale. Si des outils comme les boîtes à moustaches et l'analyse des scores Z sont parfaits pour les inspections initiales, des méthodes avancées comme la forêt d'isolement et le facteur de valeurs aberrantes locales excellent dans les analyses complexes.
Expérimentez ces techniques, adaptez-les à vos jeux de données et perfectionnez vos compétences en analyse de données grâce à Pandas. Grâce à ces outils, vous serez parfaitement équipé pour repérer efficacement les anomalies et prendre des décisions éclairées basées sur les données.


