# Rilevamento delle anomalie

Nell'analisi dei dati, il rilevamento delle anomalie (anche detto rilevamento degli outlier) è l'identificazione di osservazioni, elementi, eventi rari che differiscono in modo significativo dalla maggior parte dei dati. Tipicamente gli elementi anomali porteranno a qualche tipo di problema, ad esempio casi di frode bancaria, difetti strutturali, problemi medici o errori in un testo. Le anomalie sono indicate anche come outlier, novelty, rumore, deviazioni o eccezioni.
In particolare, nel contesto del rilevamento di abusi e intrusioni di rete, gli elementi anomali spesso non sono elementi che occorrono raramente, ma piuttosto picchi di attività inaspettati. Questo pattern non corrisponde alla definizione statistica comune di un valore anomalo come oggetto raro e molti metodi di rilevamento dei valori anomali (in particolare metodi non supervisionati) falliranno su tali dati, a meno che non siano stati aggregati in modo appropriato. Invece, un algoritmo di analisi dei cluster potrebbe essere in grado di rilevare i micro cluster formati da questi pattern.
Esistono tre grandi categorie di tecniche di rilevamento delle anomalie, a seconda di quanto supervisionato l'algoritmo. Le tecniche non supervisionate rilevano le anomalie in un dataset di prova non etichettato partendo dal presupposto che la maggior parte delle istanze nel dataset siano normali e cercando le istanze che sembrano adattarsi meno al resto dei dati. Le tecniche supervisionate, invece, richiedono dataset etichettati come "normale" e "anormale" e comportano l'addestramento di un classificatore (la differenza fondamentale rispetto a molti altri problemi di classificazione statistica è la natura intrinseca sbilanciata del rilevamento dei valori anomali). Infine, le tecniche di rilevamento semi-supervisionate, a partire da un determinato dataset, costruiscono un modello che rappresenta il comportamento "normale", e quindi, data un'istanza di test, verificano la probabilità che questa venga generata dal modello costruito.

## Applicazioni

Il rilevamento delle anomalie è applicabile in una varietà di domini, come il rilevamento delle intrusioni, il rilevamento delle frodi, il rilevamento dei guasti, il monitoraggio dello stato del sistema, il rilevamento degli eventi nelle reti di sensori, il rilevamento dei disturbi dell'ecosistema e il rilevamento dei difetti nelle immagini utilizzando la visione artificiale. Viene spesso utilizzato nella pre-elaborazione per rimuovere i dati anomali dal set di dati. Nell'apprendimento supervisionato, la rimozione dei dati anomali dal set di dati spesso si traduce in un aumento statisticamente significativo dell'accuratezza.

### Nella sicurezza dei dati

Il rilevamento delle anomalie è stato proposto per i sistemi di rilevamento delle intrusioni (IDS, dall'inglese intrusion detection system) da Dorothy Denning nel 1986. In questa circostanza, il rilevamento viene normalmente eseguito con soglie e statistiche, ma può anche essere eseguito con il soft computing e l'apprendimento induttivo. I tipi di statistiche proposte dal 1999 includevano profili di utenti, workstation, reti, host remoti, gruppi di utenti e programmi basati su frequenze, medie, varianze, covarianze e deviazioni standard. La controparte del rilevamento delle anomalie nel rilevamento delle intrusioni è il rilevamento dell'uso improprio .

### Nella pre-elaborazione dei dati

Nell'apprendimento supervisionato, il rilevamento delle anomalie è spesso un passaggio importante nella pre-elaborazione dei dati per fornire all'algoritmo di apprendimento un set di dati adeguato su cui apprendere. Questo è anche noto come data cleaning (pulizia dei dati). Dopo aver rilevato campioni anomali, i classificatori li rimuovono anche se, a volte, i dati corrotti possono comunque fornire campioni utili per l'apprendimento. Un metodo comune per trovare campioni appropriati da utilizzare è identificare i dati rumorosi. Un approccio per trovare valori rumorosi consiste nel creare un modello probabilistico dai dati utilizzando modelli di dati non corrotti e dati corrotti.

## Tecniche comuni

In letteratura sono state proposte diverse tecniche di rilevamento delle anomalie. Tra le altre, alcune tecniche più comuni sono:
* tecniche basate sulla densità (K-nearest neighbors, local outlier factor, isolation forest, e molte altre variazioni di questo concetto),
* macchine a vettori di supporto con una classe,
* reti bayesiane,
* modelli di Markov nascosti,
* rilevamento dei valori anomali basato sull'analisi dei cluster,
* deviazioni dalle regole di associazione,
* rilevamento dei valori anomali basato sulla logica fuzzy.
Le prestazioni dei diversi metodi dipendono molto dal set di dati e dai parametri. Un metodo ha pochi vantaggi sistematici rispetto ad un altro se si confrontano molti set di dati e parametri.