Modèles d'apprentissage automatique en environnement de production

8

Disons qu'un modèle a été formé à la date utilisant les données étiquetées disponibles, divisé en formation et test, c'est-à-dire , test_ {dt1} . Ce modèle est ensuite déployé en production et fait des prédictions sur les nouvelles données entrantes. Certains jours X passent et il y a un tas de données étiquetées qui sont collectées entre dt1 et dt1 + X jours, appelons-le Data_x . Dans mon approche actuelle, je prends des échantillons aléatoires de DATA_x (par exemple pour 80/20 split),dt1traindt1testdt1Xdt1dt1+XDataxDATAx

Donc, 80% de DATAx = trainx (nouvelles données utilisées pour affiner le modèle existant formé sur dt1 ) 20% de DATAx = testx (nouvelles données ajoutées à testdt1 )

Ce processus de réglage fin s'est répété au fil du temps.

En faisant cela, j'obtiens un ensemble de tests en constante expansion, ainsi que j'empêche de recycler l'ensemble du modèle (essentiellement, je peux jeter les anciennes données comme le modèle en a appris). Le nouveau modèle généré n'est qu'une version affinée de l'ancien.

J'ai quelques questions concernant cette approche:

  1. Y a-t-il des inconvénients évidents à faire cela?
  2. Le modèle devra-t-il jamais être complètement recyclé (en oubliant tout ce qui a été appris auparavant et en entraînant le modèle avec de nouveaux trains / essais fractionnés) après un certain temps ou l'approche que j'ai décrite ci-dessus peut-elle continuer indéfiniment?
  3. Quelle devrait être la condition pour échanger le modèle déployé existant avec le modèle nouvellement affiné?
pionnier
la source
Excusez un néophyte, s'il vous plaît. Vous devez avoir un ensemble de données très spécial pour qu'il soit étiqueté, oui? L'étiquetage supervisé est par nature coûteux et lent.
xtian
@xtian Le coût de l'étiquetage supervisé et le temps nécessaire dépendent considérablement du problème. Disons que vous aviez un modèle ML qui prédit quand quelqu'un entre dans une concession achètera-t-il la voiture ou non (compte tenu des attributs de la personne)? Votre collecte de données étiquetées est relativement rapide dans ce cas. En une journée, vous pourriez obtenir plus de 100 échantillons étiquetés.
pionnier

Réponses:

5

Je pense que c'est une bonne approche en général. Toutefois:

  • Le réglage fin de votre modèle (apprentissage en ligne) dépend beaucoup de l'algorithme et du modèle de fonctionnement. Selon votre algorithme, il pourrait être judicieux de recycler le tout

  • Votre espace échantillon peut changer au fil du temps. Si vous avez suffisamment de données, il est peut-être préférable de vous recycler tous les quelques jours / semaines / mois au cours de la dernière année seulement. Si vos anciens échantillons ne représentent pas la situation actuelle, le fait de les inclure peut nuire davantage à vos performances que l'aide des échantillons supplémentaires.

  • La plus grande condition est de savoir s'il est testé et combien de temps d'arrêt cela implique, mais en général, l'échange de plusieurs fois est préférable, et cela peut être automatisé

Jan van der Vegt
la source
Merci pour la réponse ! J'utilise actuellement des méthodes d'ensembles telles que Random Forest et Gradient Boosted Trees. La raison pour laquelle je ne les ai pas mentionnés, car je voulais savoir à quel point l'approche est indépendante du type d'algorithme.
pionnier
À propos de l'espace d'échantillonnage, ne pensez-vous pas que cela peut être géré en donnant des poids aux observations? construire une sorte de notion de temps.
pionnier
@trailblazer ajouter des arbres à votre forêt est une approche décente je pense, je ne l'ai jamais essayée mais il devrait y avoir de la littérature à ce sujet. Recherchez l'apprentissage en ligne. Les algorithmes agnostiques ne seront pas possibles car certains algorithmes ne peuvent apprendre que sur l'ensemble.
Jan van der Vegt
@trailblazer en ce qui concerne la question de l'espace échantillon, qui pourrait fonctionner pour certains algorithmes mais pas pour d'autres, cela dépend encore une fois de la possibilité d'apprentissage en ligne mais vous devrez également continuer à augmenter les poids ou vous recycler sur tout, vous ne pouvez pas diminuer rétroactivement le poids sur échantillons plus anciens sans recyclage
Jan van der Vegt
0

Cela dépend principalement du type d'apprentissage de votre algorithme ml. Pour l'apprentissage hors ligne: la re-formation de l'ensemble est sage car certains algorithmes nécessitent vos données complètes pour générer une meilleure hypothèse. Apprentissage en ligne: votre modèle peut être affiné avec les données récentes ou récentes avec mise à jour du modèle à mesure que les données arrivent.

yash kumar
la source