Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Il rilevamento dei valori anomali è un compito importante nel campo dell'apprendimento automatico. Viene utilizzato per identificare osservazioni insolite o punti dati che si discostano dalla tendenza generale del set di dati. Un algoritmo efficace per il rilevamento dei valori anomali è l' algoritmo Isolation Forest

Nel blog di oggi tratteremo le nozioni di base dell'algoritmo Isolation Forest e dimostreremo come utilizzarlo per rilevare i valori anomali in un set di dati utilizzando Python . Puoi guardare il video completo di questo tutorial in fondo a questo blog .

Sommario

Algoritmo della foresta di isolamento vs metodo del box plot 

Di seguito sono mostrati due elementi visivi per il rilevamento dei valori anomali. Notare le differenze significative nella rappresentazione visiva quando si utilizza il rispetto a quando viene utilizzato il modello ML della foresta di isolamento per il rilevamento dei valori anomali. 

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Nel modello Isolation Forest ML, la percentuale di valori anomali rilevati dall'algoritmo IS Anomaly Detection è del 32,56%. Utilizzando lo stesso algoritmo, il restante 67,44% dei dati rientra nell'intervallo normale, che è piuttosto sensibile. Il nostro obiettivo è mettere a punto questa sensibilità utilizzando Python

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Il tradizionale metodo di rilevamento dei valori anomali

Il modo tradizionale per trovare un valore anomalo consiste nell'usare un metodo box plot . In questo metodo, utilizziamo l'IQR per trovare ciò che non rientra nell'intervallo previsto dei dati. 

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

In questo esempio, questo singolo punto sopra il baffo è il nostro valore anomalo.

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Se traduciamo questo grafico visivo in un grafico a torta, otterremo questo particolare valore anomalo che equivale al 2,33% dei dati totali. 

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

In questo blog impareremo come utilizzare il metodo Isolation Forest ML, perfezionarlo in modo che corrisponda al metodo tradizionale e aumentare o diminuire la sua sensibilità.

Il set di dati per l'algoritmo della foresta di isolamento

Apri il nostro set di dati in LuckyTemplates. Quindi fare clic su Trasforma dati. 

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Verrà visualizzato il nostro set di dati per questo tutorial. Contiene Date , number of Users , Index e Isolation Forest Outlier con output 1 per l'intervallo normale e -1 per i valori anomali  .

Abbiamo anche una colonna per Traditional Outlier e una colonna condizionale intitolata IS Anomaly Detection che riflette l'Isolation Forest Outlier. 

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

La nostra seconda query mostra il nostro frame di dati che impareremo a mettere insieme. 

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

I codici Python

Nel riquadro Proprietà , possiamo vedere i nostri due script Python in esecuzione. Creiamo l'output di Isolation Forest con uno di questi script Python e generiamo l'outlier tradizionale con l'altro. 

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Codice Python dell'algoritmo della foresta di isolamento

Fare clic su Esegui script Python per visualizzare il codice. 

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

In questo codice Python, importiamo i panda come pd e usiamo qualcosa chiamato Isolation Forest. 

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Una foresta di isolamento è un modello basato su albero che prende decisioni in base a una struttura ad albero e quindi decide se si tratta di un valore anomalo o meno. Lo chiamiamo modello di ensemble perché utilizza due diversi metodi per trovare un particolare valore anomalo. 

Sostituiamo anche la variabile del set di dati , che contiene il nostro set di dati per impostazione predefinita, come df

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Dato il nostro set di dati, non avremo bisogno delle due righe di codici evidenziate di seguito, quindi possiamo semplicemente eliminare quelle righe. 

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Quello che stiamo facendo è istanziare il modello.

Salva il modello come IsolationForest e consenti al modello di apprendere i dati con Users. Quindi, crea una nuova colonna denominata Rilevamento anomalie che ripercorrerà tutti i dati appresi e prevederà quale dovrebbe essere un valore anomalo o meno. 

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Per questa funzione, il valore predefinito per la contaminazione è impostato a 0,5 . Pertanto, al momento è super sensibile e cercherà molti valori anomali. Questo è il motivo per cui nel nostro grafico a torta precedente, abbiamo una gamma molto alta di valori anomali al 32,56%. 

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Per renderlo meno sensibile, possiamo aggiungere contaminazione = .1 nella funzione IsolationForest .

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Infine, reimpostare l'indice e fare clic su OK.

Il risultato mostrerà una tabella riassuntiva. Vai al riquadro Passaggi applicati e fai clic su df.

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Nell'output, possiamo trovare i valori anomali nella colonna Rilevamento anomalie

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Vogliamo anche vedere come si comporta accanto al tradizionale valore anomalo. 

Codice Python outlier tradizionale

Eseguiremo un altro script Python che in questo esempio è Run Python script1.

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Questo codice aggiunge una funzione outlier utilizzando il primo e il terzo quartile. Quando sottraiamo q1 da q3 , otteniamo l' intervallo interquartile (IQR)

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Le due righe successive stabiliscono le condizioni per i valori anomali. La prima riga dice che qualsiasi valore inferiore a 1,5 * iqr è considerato valori anomali negativi o inferiori. Questo è anche il modo in cui troviamo i valori anomali in modo tradizionale.

Sappiamo anche di avere un valore anomalo come punto più alto nei nostri dati. Per tenere conto di ciò, la seconda riga afferma che anche i punti dati superiori a q3 + 1,5 * iqr sono considerati valori anomali. 

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Restituisci quel set di dati e usa la funzione outliers(df, 'Users') . Quindi fare clic su OK.

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Apparirà una tabella riassuntiva simile a quella che abbiamo in precedenza. 

Se andiamo al riquadro Applied Steps e facciamo clic su Changed Type1 , otterremo le colonne Traditional Outlier e Anomaly Detection affiancate, con quest'ultima che utilizza 1 e -1 per denotare valori anomali e non.

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Tuttavia, quando usiamo le date con Python, potrebbero apparire incasinate. 

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Quello che possiamo fare è creare una colonna aggiuntiva usando l' Indice da Add Column .

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Quindi, aggiungi Index alla colonna precedente con Merge , in modo da poter conservare tutte le informazioni in quella colonna/set di dati originale. 

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Una volta che abbiamo tutto insieme, possiamo eseguire il nostro codice e aggiornare le nostre immagini. Ricorda che abbiamo cambiato la contaminazione del valore anomalo da 0,5 a 0,1, quindi dovremmo vedere questa parte del grafico ridursi un po'. 

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Torna agli elementi visivi e fai clic su Applica modifiche. 

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Nota come il rilevamento delle anomalie è passato dal 32,56% all'11,63% dei nostri dati. 

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Come vediamo nei nostri risultati, questo è un buon modo per ottimizzare il nostro rilevamento dei valori anomali. 

Ricorda inoltre che quando le persone usano il metodo tradizionale, possono usare valori inferiori a 1,5, ma 1,5 x IQR è comunque il modo tradizionale. 

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python

Algoritmo della foresta di isolamento per il rilevamento dei valori anomali in Python


Rilevamento e visualizzazione dei risultati anomali in LuckyTemplates
Creazione di punti di attivazione di valori anomali dinamici in LuckyTemplates
Funzionalità di rilevamento delle anomalie di LuckyTemplates: come funziona

Conclusione

Utilizzando l'algoritmo Isolation Forest, possiamo facilmente identificare ed escludere qualsiasi osservazione insolita dal nostro set di dati, migliorando così l'accuratezza della nostra analisi. Questa esercitazione ha fornito una guida dettagliata su come usare l'algoritmo Isolation Forest per il rilevamento dei valori anomali tramite Python, che dovrebbe aiutarti a iniziare a implementarlo nei tuoi progetti.

Quello che abbiamo fatto è stato un modo molto semplice per usare il nostro codice Python per trovare anomalie. Puoi ottimizzare ulteriormente quell'algoritmo modificando la contaminazione e una miriade di altre variabili che puoi apprendere attraverso la code page di Python

Ti auguro il meglio,


Cosè il sé in Python: esempi del mondo reale

Cosè il sé in Python: esempi del mondo reale

Cos'è il sé in Python: esempi del mondo reale

Come salvare e caricare un file RDS in R

Come salvare e caricare un file RDS in R

Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.

Introduzione al filtraggio del contesto in LuckyTemplates

Introduzione al filtraggio del contesto in LuckyTemplates

In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.

Idee di materializzazione per cache di dati in DAX Studio

Idee di materializzazione per cache di dati in DAX Studio

Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.

Reporting aziendale tramite LuckyTemplates

Reporting aziendale tramite LuckyTemplates

Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere