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?):
- 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?
- 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?
- 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.?
la source
Réponses:
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.
la source