Facteur local d’anomalie
Fait partie de la section Apprentissage non supervisé du Journey Machine Learning de Coddy. Leçon 36 sur 51.
Quelques points atypiques se cachent dans l’intervalle des données. Le facteur local d’anomalie, LOF, compare la densité de l’emplacement de chaque point à celle des emplacements de ses voisins :
Les acheteurs restent parfois 6 heures. Mais les voisins de cette voiture sont des navetteurs, très regroupés, et elle se trouve loin de leur groupe :
from sklearn.neighbors import LocalOutlierFactor
lof = LocalOutlierFactor(n_neighbors=20, contamination=0.02)
flags = lof.fit_predict(X)Mêmes réponses qu’avant : -1 anormal, 1 normal. n_neighbors définit le caractère local de la comparaison.
Défi
MoyenUne compagnie de téléphone recherche les comptes qui diffèrent de leurs voisins. Le code de départ met les données à l’échelle et signale les comptes à l’aide d’une forêt d’isolation ; le programme lit k.
- Signale les comptes avec LOF :
n_neighbors=k,contamination=0.03. - Affiche le nombre de comptes signalés par chaque détecteur et le nombre de comptes signalés par les deux.
- Répertorie les comptes signalés uniquement par LOF, dans l’ordre du tableau, comme ci-dessous.
Pour une entreprise plus petite et 10 :
Isolation forest: 5 accounts
LOF: 5 accounts
Both: 4 accounts
Only LOF:
A118: 960 minutes, 6.2 GBEssayez vous-même
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import IsolationForest
from sklearn.neighbors import LocalOutlierFactor
# Une ligne par compte téléphonique : les minutes d’appel et les données mobiles consommées en un mois
accounts = pd.read_csv("accounts.csv")
X = StandardScaler().fit_transform(accounts[["call_minutes", "data_gb"]])
k = int(input())
# Résultat d’Isolation Forest : -1 pour les comptes que la forêt juge atypiques
forest_flags = IsolationForest(contamination=0.03, random_state=0).fit_predict(X)
# Écrivez votre code ci-dessous
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Apprentissage non supervisé
1Découvrir des groupes
Apprendre sans étiquettesMesurer la similaritéK-Means à la mainK-Means avec scikit-learnRécapitulatif : les membres de la salle de sport4Classification hiérarchique
Fusion étape par étapeModèles agglomératifsDendrogrammesRécapitulatif : races de chiens7L’ACP en pratique
Visualiser 64 dimensionsLes composantes comme motifsCompresser et reconstruireL’ACP avant un modèleRécapitulatif : scanner de visages10Projet : Explorateur de chiffres
Observer les chiffresRéduire avec la PCARegrouper les chiffresNommer les groupesRepérer les intrus2Choisir k
InertieLa méthode du coudeScores de silhouetteMettre à l’échelle avant le clusteringRécapitulatif : zones de livraison8Détection des anomalies
Repérer les éléments atypiquesForêt d’isolationFacteur local d’anomalieScores d’anomalieRécapitulatif : surveillance des serveursEntraînez-vous par vous-même : Compilateur Python en ligne