2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
La détection des valeurs aberrantes est une tâche essentielle dans les projets d’analyse de données et d’apprentissage automatique. Les valeurs aberrantes, également appelées valeurs aberrantes ou valeurs aberrantes, font référence aux observations qui sont significativement différentes des autres données. Ces points peuvent être causés par une erreur de mesure, des erreurs de saisie de données ou une véritable variabilité. L’identification et le traitement corrects des valeurs aberrantes sont essentiels pour garantir la qualité et l’exactitude du modèle. scikit-learn (sklearn en abrégé), en tant que bibliothèque d'apprentissage automatique riche en fonctionnalités en Python, fournit une variété de méthodes de détection des valeurs aberrantes. Cet article présentera en détail la technologie de détection des valeurs aberrantes dans sklearn et fournira des exemples de code pratiques.
La détection des valeurs aberrantes est essentielle dans des domaines tels que :
sklearn propose plusieurs méthodes de détection des valeurs aberrantes. Voici quelques techniques couramment utilisées :
La méthode Z-Score normalise les données selon une distribution normale basée sur la moyenne et l'écart type des données, et calcule le Z-Score pour chaque point.
from scipy.stats import zscore
data = [[1, 2], [3, 4], [5, 6], [100, 100]]
data = np.array(data)
z_scores = zscore(data)
threshold = 3 # 通常阈值设为3
outliers = np.where((z_scores > threshold) | (z_scores < -threshold))
La méthode IQR utilise le premier quartile (Q1) et le troisième quartile (Q3) des données pour déterminer la plage des valeurs aberrantes.
Q1 = np.percentile(data, 25, axis=0)
Q3 = np.percentile(data, 75, axis=0)
IQR = Q3 - Q1
threshold = 1.5
outliers = np.where((data < (Q1 - threshold * IQR)) | (data > (Q3 + threshold * IQR)))
Les méthodes basées sur la densité, telles que DBSCAN, identifient les valeurs aberrantes en fonction de la densité des points de données plutôt que d'un seuil fixe.
from sklearn.cluster import DBSCAN
dbscan = DBSCAN(min_samples=5, eps=0.5)
dbscan.fit(data)
core_samples_mask = np.zeros_like(dbscan.labels_, dtype=bool)
core_samples_mask[dbscan.core_sample_indices_] = True
outliers = dbscan.labels_ == -1
Isolation Forest est une méthode de détection des valeurs aberrantes basée sur une forêt aléatoire, qui « isole » les valeurs aberrantes en sélectionnant aléatoirement des caractéristiques et des points de segmentation.
from sklearn.ensemble import IsolationForest
iso_forest = IsolationForest(n_estimators=100, contamination=0.01)
iso_forest.fit(data)
outliers = iso_forest.predict(data) == -1
L’évaluation des performances de détection des valeurs aberrantes est souvent difficile car il n’existe pas de normes absolues. Cependant, il peut être évalué des manières suivantes :
Dans des applications pratiques, la détection des valeurs aberrantes peut nous aider à identifier les comportements anormaux dans l'ensemble de données afin de procéder à une analyse plus approfondie ou de prendre des mesures préventives.
La détection des valeurs aberrantes est un maillon important dans l’analyse des données et l’apprentissage automatique. sklearn propose une variété de méthodes de détection des valeurs aberrantes, chaque méthode ayant ses scénarios d'application et ses avantages spécifiques. Grâce à cet article, nous avons découvert différentes techniques de détection des valeurs aberrantes dans sklearn et fourni des exemples de code pratiques.
Le but de cet article est d'aider les lecteurs à mieux comprendre la détection des valeurs aberrantes et à maîtriser les méthodes de mise en œuvre de ces techniques dans sklearn. Nous espérons que les lecteurs pourront améliorer leur compréhension de la détection des valeurs aberrantes grâce à cet article et appliquer efficacement ces techniques dans des projets réels. À mesure que les volumes de données continuent de croître, la détection des valeurs aberrantes continuera à jouer un rôle important dans la science des données.