Sélection automatique des fonctionnalités pour la détection des anomalies

11

Quelle est la meilleure façon de sélectionner automatiquement les fonctionnalités pour la détection des anomalies?

Je traite normalement la détection d'anomalies comme un algorithme où les fonctionnalités sont sélectionnées par des experts humains: ce qui compte, c'est la plage de sortie (comme dans "entrée anormale - sortie anormale"), donc même avec de nombreuses fonctionnalités, vous pouvez créer un sous-ensemble beaucoup plus petit en combinant les caractéristiques.

Cependant, en supposant que dans le cas général, une liste de fonctionnalités peut être énorme, un apprentissage automatisé est peut-être parfois préférable. Pour autant que je puisse voir, il y a quelques tentatives:

  • "Sélection automatisée des fonctionnalités pour la détection des anomalies" ( pdf ) qui généralise la description des données des vecteurs de support
  • "Un système de détection d'intrusion basé sur l'hôte rapide utilisant la théorie des ensembles approximatifs" (aucun pdf disponible?) Qui, je suppose, utilise la théorie des ensembles approximatifs
  • "Learning Rules for Anomaly Detection of Hostile Network Traffic" ( pdf , vidéo ) qui utilise une approche statistique

Alors maintenant, je me demande si quelqu'un peut le dire - en supposant une détection d'anomalie et un ensemble de fonctionnalités vraiment gros (des centaines?):

  1. Ces énormes ensembles de fonctionnalités ont-ils du sens? Ne devrions-nous pas simplement réduire l'ensemble des fonctionnalités jusqu'à, disons, quelques dizaines et c'est tout?
  2. Si d'énormes ensembles de fonctionnalités ont du sens, laquelle des approches ci-dessus donnerait de meilleures prédictions, et pourquoi? Y a-t-il quelque chose de non répertorié qui est bien meilleur?
  3. Pourquoi devraient-ils donner de meilleurs résultats par rapport, par exemple, à la réduction de la dimensionnalité ou à la construction de fonctionnalités via un regroupement / classement / etc.?
andreister
la source
Votre lien n'a soulevé aucune question spécifique pour moi. Pouvez-vous donner une brève description du problème? Quel est l'objectif? S'agit-il d'un problème d'apprentissage supervisé ou non supervisé?
AdamO
La question venait de ML.SE qui est maintenant fermée - apparemment, les administrateurs n'avaient pas fusionné dans toutes les questions. J'ai édité le texte maintenant pour énoncer explicitement le problème!
andreister

Réponses:

1

Une approche pratique (en cas d'apprentissage supervisé au moins) consiste à inclure toutes les fonctionnalités éventuellement pertinentes et à utiliser un modèle linéaire (généralisé) (régression logistique, svm linéaire, etc.) avec régularisation (L1 et / ou L2). Il existe des outils open source (par exemple Vowpal Wabbit) qui peuvent traiter des milliards de combinaisons d'exemples / fonctionnalités pour ces types de modèles, donc l'évolutivité n'est pas un problème (en plus, on peut toujours utiliser le sous-échantillonnage). La régularisation permet de gérer la sélection des fonctionnalités.

Yevgeny
la source
Mais comment sélectionner des fonctionnalités dans des paramètres non supervisés (sans avoir besoin d'utiliser des modèles linéaires, etc., pour trouver des fonctionnalités importantes)? Une façon dont je peux penser est d'utiliser PCA pour conserver une certaine variance et réduire la taille des données. Mais encore une fois, la réduction des données dans le problème de détection d'anomalie semble dangereuse car vous pourriez finir par manquer des valeurs aberrantes réelles que vous vouliez prédire. D'où la confusion.
exAres