Gérer un ensemble de fonctionnalités en constante augmentation


10

Je travaille sur un système de détection de fraude. Dans ce domaine, de nouvelles fraudes apparaissent régulièrement, de sorte que de nouvelles fonctionnalités doivent être ajoutées au modèle de manière continue.

Je me demande quelle est la meilleure façon de gérer cela (du point de vue du processus de développement)? Le simple fait d'ajouter une nouvelle fonctionnalité dans le vecteur de fonctionnalités et de recycler le classificateur semble être une approche naïve, car trop de temps sera consacré à la réapprentissage des anciennes fonctionnalités.

Je réfléchis à la manière de former un classificateur pour chaque fonctionnalité (ou quelques fonctionnalités connexes), puis à combiner les résultats de ces classificateurs avec un classificateur global. Y a-t-il des inconvénients à cette approche? Comment puis-je choisir un algorithme pour le classificateur global?

Réponses:


4

Dans un monde idéal, vous conservez toutes vos données historiques et exécutez en effet un nouveau modèle avec la nouvelle fonctionnalité extraite rétroactivement des données historiques. Je dirais que la ressource informatique dépensée pour cela est très utile en fait. Est-ce vraiment un problème?

Oui, c'est une technique largement acceptée pour construire un ensemble de classificateurs et combiner leurs résultats. Vous pouvez construire un nouveau modèle en parallèle uniquement sur de nouvelles fonctionnalités et faire la moyenne de sa prédiction. Cela devrait ajouter de la valeur, mais vous ne capturerez jamais l'interaction entre les nouvelles et les anciennes fonctionnalités de cette façon, car elles n'apparaîtront jamais ensemble dans un classificateur.


2

Voici une idée qui vient de surgir à l'improviste - que faire si vous utilisez l' échantillonnage aléatoire du sous-espace (comme en fait Sean Owen l'a déjà suggéré) pour former un tas de nouveaux classificateurs chaque fois qu'une nouvelle fonctionnalité apparaît (en utilisant un sous-ensemble de fonctionnalités aléatoires, y compris le nouvel ensemble de fonctionnalités). Vous pouvez également entraîner ces modèles sur un sous-ensemble d'échantillons pour gagner du temps de formation.

De cette façon, vous pouvez avoir de nouveaux classificateurs prenant éventuellement en charge des fonctionnalités nouvelles et anciennes, tout en conservant vos anciens classificateurs. Vous pourriez même, peut-être en utilisant une technique de validation croisée pour mesurer les performances de chaque classificateur, être capable de tuer les moins performants après un certain temps, pour éviter un modèle gonflé.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.