Cosè il sé in Python: esempi del mondo reale
Cos'è il sé in Python: esempi del mondo reale
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.
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 .
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.
In questo esempio, questo singolo punto sopra il baffo è il nostro valore anomalo.
Se traduciamo questo grafico visivo in un grafico a torta, otterremo questo particolare valore anomalo che equivale al 2,33% dei dati totali.
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.
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.
La nostra seconda query mostra il nostro frame di dati che impareremo a mettere insieme.
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.
Codice Python dell'algoritmo della foresta di isolamento
Fare clic su Esegui script Python per visualizzare il codice.
In questo codice Python, importiamo i panda come pd e usiamo qualcosa chiamato Isolation Forest.
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 .
Dato il nostro set di dati, non avremo bisogno delle due righe di codici evidenziate di seguito, quindi possiamo semplicemente eliminare quelle righe.
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.
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%.
Per renderlo meno sensibile, possiamo aggiungere contaminazione = .1 nella funzione IsolationForest .
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.
Nell'output, possiamo trovare i valori anomali nella colonna Rilevamento anomalie .
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.
Questo codice aggiunge una funzione outlier utilizzando il primo e il terzo quartile. Quando sottraiamo q1 da q3 , otteniamo l' intervallo interquartile (IQR) .
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.
Restituisci quel set di dati e usa la funzione outliers(df, 'Users') . Quindi fare clic su OK.
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.
Tuttavia, quando usiamo le date con Python, potrebbero apparire incasinate.
Quello che possiamo fare è creare una colonna aggiuntiva usando l' Indice da Add Column .
Quindi, aggiungi Index alla colonna precedente con Merge , in modo da poter conservare tutte le informazioni in quella colonna/set di dati originale.
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'.
Torna agli elementi visivi e fai clic su Applica modifiche.
Nota come il rilevamento delle anomalie è passato dal 32,56% all'11,63% dei nostri dati.
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.
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
Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.
In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.
Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.
In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.
Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.
Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.
Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.
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