Liste de contrôle du projet d'apprentissage automatique

image



Dans cet article, j'ai dressé une liste de contrôle à laquelle je me réfère constamment tout en travaillant sur un projet d'apprentissage automatique complet.



Pourquoi ai-je besoin d'une liste de contrôle?



Puisque vous devez gérer de nombreux éléments d'un projet (préparation, questions, modèles, ajustements, etc.), il est facile de perdre le fil. Il vous guidera à travers les étapes suivantes et vous poussera à vérifier si chaque tâche a été effectuée avec succès ou non.



Parfois, nous essayons de trouver un point de départ, la liste de contrôle vous aide à extraire les bonnes informations (données) des bonnes sources pour établir des relations et découvrir des idées de corrélation.



Il est recommandé que chaque partie du projet passe par le paradigme de l'examen.



Comme le dit Atul Gawande dans son livre "The Checklist Manifesto",

la portée et la complexité de ce que nous savons ont dépassé notre capacité individuelle à fournir des avantages correctement, en toute sécurité et de manière fiable.

Alors laissez-moi vous guider à travers cette liste claire et concise d'actions qui réduiront votre charge de travail et amélioreront vos résultats ...

Liste de contrôle des projets d'apprentissage automatique



Voici 8 étapes à suivre dans presque tous les projets. Certaines des étapes peuvent être exécutées de manière interchangeable dans l'ordre.



1. Définir le problème dans une perspective de haut niveau



Il s'agit de comprendre et de formuler la logique métier du problème. Cela devrait vous dire:



  • la nature du problème (contrôlé / incontrôlé, classification / régression),
  • le type de solutions que vous pouvez développer
  • quelles métriques devez-vous utiliser pour mesurer les performances?
  • L'apprentissage automatique est-il la bonne approche pour résoudre ce problème?
  • approche manuelle pour résoudre le problème.
  • conditions préalables inhérentes au problème


2. Définissez des sources de données et obtenez des données



Dans la plupart des cas, cette étape peut être effectuée avant la première étape si vous avez les données et que vous souhaitez identifier les questions (problèmes) qui l'entourent afin de mieux utiliser les données d'entrée.



En fonction de la définition de votre problème, vous devrez identifier les sources de données, qui peuvent être une base de données, un entrepôt de données, des capteurs, etc. Pour déployer une application en production, cette étape doit être automatisée en développant des pipelines de données qui permettent aux données entrantes d'entrer dans le système.



  • listez les sources et la quantité de données dont vous avez besoin.
  • vérifiez si l'emplacement sera un problème.
  • Vérifiez si vous êtes autorisé à utiliser les données à vos fins ou non.
  • récupérez les données et convertissez-les dans un format exploitable.
  • vérifier le type de données (texte, catégorique, numérique, série chronologique, images)
  • sélectionnez un échantillon pour le test final.


3. Exploration initiale des données



À ce stade, vous étudiez toutes les fonctionnalités qui affectent votre résultat / prévision / objectif. Si vous disposez d'une énorme quantité de données, essayez cette étape pour rendre votre analyse plus gérable.



Pas:



  • utilisez Notebook Jupyter car il fournit une interface simple et intuitive pour explorer les données.
  • définir la variable cible
  • définir les types d'entités (catégoriques, numériques, textuelles, etc.)
  • analyser la relation entre les caractéristiques.
  • ajoutez plusieurs visualisations de données pour interpréter facilement l'impact de chaque fonctionnalité sur la variable cible.
  • documentez vos résultats de recherche.


4. Analyse exploratoire des données pour la préparation des données



Il est temps de tirer les leçons de l'étape précédente en définissant des fonctions pour la transformation des données, le nettoyage, la sélection / conception des fonctionnalités et la mise à l'échelle.



  • Écriture de fonctions pour transformer les données et automatiser le processus pour les paquets de données à venir.
  • Ecrire des fonctions pour nettoyer les données (imputation des valeurs manquantes et gestion des valeurs aberrantes)
  • Ecrivez des fonctions pour sélectionner et concevoir des fonctionnalités - supprimez les fonctionnalités redondantes, formatez les transformations d'objets et d'autres transformations mathématiques.
  • Mise à l'échelle des fonctionnalités - standardisation des fonctionnalités.


5. Développez un modèle de base, puis explorez d'autres modèles pour sélectionner le meilleur



Créez un modèle très basique qui devrait servir de base à tous les autres modèles complexes d'apprentissage automatique. Liste de contrôle des étapes:



  • Entraînez plusieurs modèles couramment utilisés tels que le modèle de bayes naïf, le modèle de régression linéaire, SVM, etc., en utilisant les paramètres par défaut.
  • Mesurez et comparez les performances de chaque modèle avec le modèle de base et avec tous les autres.
  • Utilisez la validation croisée N fois pour chaque modèle et calculez la moyenne et l'écart type des métriques de performance N fois.
  • Explorez les fonctionnalités qui ont le plus d'impact sur l'objectif.
  • Analysez les types d'erreurs que font les modèles lors de la prédiction.
  • La conception fonctionne différemment.
  • Répétez les étapes ci-dessus plusieurs fois (par essais et erreurs) pour vous assurer que nous utilisons les bonnes fonctions dans le bon format.
  • Sélectionnez les meilleurs modèles en fonction de leurs indicateurs de performance.


6. Affinez vos modèles à partir de la liste restreinte et vérifiez les méthodes d'ensemble



Cela devrait être l'une des étapes cruciales à mesure que vous vous rapprochez de votre décision finale. Les points clés devraient inclure:



  • Réglage des hyperparamètres à l'aide de la validation croisée.
  • Utilisez des techniques de réglage automatique comme la recherche aléatoire ou la recherche de grille pour trouver la meilleure configuration pour vos meilleurs modèles.
  • Tester un ensemble de méthodes telles que le classificateur de vote, etc.
  • Testez les modèles avec autant de données que possible.
  • Une fois le travail terminé, utilisez l'échantillon de test que nous avons mis de côté au début pour vérifier s'il s'adapte bien ou non.


7. Documentez votre code et communiquez votre solution



Le processus de communication est diversifié. Vous devez garder à l'esprit toutes les parties prenantes existantes et potentielles. Par conséquent, les principaux points comprennent:



  • Documentez votre code ainsi que votre approche de l'ensemble du projet.
  • Créez un tableau de bord comme voila ou une présentation perspicace avec des visuels explicites.
  • Rédigez un blog / rapport sur la façon dont vous avez analysé les fonctionnalités, testé diverses transformations, etc. Décrivez votre courbe d'apprentissage (échecs et méthodes qui ont fonctionné)
  • Terminez avec le résultat principal et le volume futur (le cas échéant)


8. Déployez votre modèle en production, surveillance



Si votre projet nécessite des tests de déploiement sur des données réelles, vous devez créer une application Web ou une API REST à utiliser sur toutes les plates-formes (Web, Android, iOS). Les points clés (varieront selon le projet) comprennent:



  • Enregistrez votre modèle formé final dans un fichier h5 ou pickle.
  • Servez votre modèle avec des services Web, vous pouvez utiliser Flask pour développer ces services Web.
  • Connectez les sources d'entrée et configurez les pipelines ETL.
  • Gérez les dépendances avec pipenv, docker / Kubernetes (en fonction des exigences de mise à l'échelle)
  • Vous pouvez utiliser AWS, Azure ou Google Cloud Platform pour déployer votre service.
  • Effectuez une surveillance des performances sur des données réelles ou simplement pour que les gens utilisent votre modèle avec leurs données.


Remarque. La check-list peut être adaptée en fonction de la complexité de votre projet.



image



Apprenez comment obtenir une profession recherchée à partir de zéro ou augmenter vos compétences et votre salaire en suivant des cours en ligne payés par SkillFactory:






Lire la suite






All Articles