Selezione automatica delle funzioni per il rilevamento di anomalie


11

Qual è il modo migliore per selezionare automaticamente le funzionalità per il rilevamento delle anomalie?

Io di solito tratto Anomaly Detection come un algoritmo in cui le caratteristiche sono selezionati da esperti umani: ciò che conta è l'uscita gamma (come in "ingresso anormale - uscita anormale"), quindi anche con tante caratteristiche che posso venire con un sottoinsieme molto più piccolo, combinando le caratteristiche.

Tuttavia, supponendo che in generale un elenco di funzionalità possa essere enorme, a volte è preferibile un apprendimento automatizzato. Per quanto posso vedere, ci sono alcuni tentativi:

  • "Selezione automatica delle funzionalità per il rilevamento di anomalie" ( pdf ) che generalizza la descrizione dei dati vettoriali di supporto
  • "Un sistema di rilevamento delle intrusioni basato su host rapido che utilizza la teoria dei set approssimativi " (non è disponibile un pdf?) Che, immagino, utilizza la teoria dei set approssimativi
  • "Regole di apprendimento per il rilevamento di anomalie del traffico di rete ostile" ( pdf , video ) che utilizza un approccio statistico

Quindi ora mi chiedo se qualcuno può dirlo - supponendo il rilevamento di anomalie e un set di funzionalità davvero grande (centinaia?):

  1. Questi enormi set di funzionalità hanno senso? Non dovremmo semplicemente ridurre la funzionalità impostata, per esempio, a poche decine e basta?
  2. Se un vasto set di funzionalità ha un senso, quale degli approcci di cui sopra darebbe previsioni migliori e perché? C'è qualcosa non elencato che è molto meglio?
  3. Perché dovrebbero fornire risultati migliori rispetto, per esempio, alla riduzione della dimensionalità o alla costruzione di feature tramite clustering / ranking / etc?

Il tuo link non ha sollevato alcuna domanda specifica per me. Puoi fornire una breve descrizione del problema? Qual è l'obiettivo? È un problema di apprendimento supervisionato o non supervisionato?
AdamO,

La domanda era di ML.SE, che ora è chiusa - a quanto pare gli amministratori non si sono uniti a tutte le domande. Ho modificato il testo ora per indicare esplicitamente il problema!
Andreister

Risposte:


1

Un approccio pratico (almeno nel caso dell'apprendimento supervisionato) consiste nell'includere tutte le caratteristiche possibilmente rilevanti e utilizzare un modello lineare (generalizzato) (regressione logistica, svm lineare ecc.) Con regolarizzazione (L1 e / o L2). Esistono strumenti open source (ad esempio Vowpal Wabbit) in grado di gestire miliardi di combinazioni di esempi / funzionalità per questi tipi di modelli, quindi la scalabilità non è un problema (inoltre, è sempre possibile utilizzare il sottocampionamento). La regolarizzazione aiuta a gestire la selezione delle funzionalità.


Ma come selezionare le funzionalità in impostazioni non supervisionate (senza la necessità di utilizzare modelli lineari, ecc., Per proporre funzionalità importanti)? Un modo a cui riesco a pensare è usare PCA per mantenere una certa varianza e ridurre la dimensione dei dati. Ma ancora una volta, la riduzione dei dati nel problema di rilevamento di anomalie sembra pericolosa in quanto si potrebbe finire per perdere veri e propri valori anomali che si desidera prevedere. Da qui la confusione.
exAres
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.