Un exemple typique d'interconnexion entre ces tâches est le suivant: Il est parfaitement possible qu'une fois arrivé à l'étape de test et de validation du modèle, le jeu de données recueilli pour entraîner le modèle n'était pas suffisant pour obtenir des résultats satisfaisants. Il sera donc nécessaire de récupérer de nouvelles données pour entraîner de nouveau le modèle et le tester ensuite.
Comprendre et formaliser les besoins client et métier
Comme pour tout projet (Machine Learning ou non) il est indispensable de savoir quelle est la problématique que l'on souhaite résoudre et quelle solution y apporter. Les projets de Machine de Learning sont des processus longs, du fait qu'ils nécessitent notamment de collecter une grande quantité de données afin d'apporter un réponse robuste, fiable et stable. Quels sont les enjeux, les services à fournir, la solution devra-t-elle être maintenable, facilement interprétable par les parties prenantes sont des exemples de questions qui permettront de façonner sa réalisation.
De plus, les données à manipuler peuvent être sensibles (confidentialité et anonymisation par exemple) et il faut s'assurer que leur utilisation ne franchit pas les limites légales, qui peuvent être différentes d'un pays à un autre.
En reposant sur la méthode scientifique, la bonne réalisation du projet de Machine Learning nécessite de définir des objectifs quantifiables afin d'indiquer quel type de données recueillir (numériques, images, vidéos...), quels résultats attendre (données de sortie) et de définir quelle classe de modèle de Machine Learning (apprentissage supervisé/non supervisé, par renforcement...) sera la plus adaptée.
Pour reprendre l'exemple précédent, c'est précisément en se fixant des objectifs quantifiables dès le début du projet qu'il sera possible d'évaluer si la quantité de données recueillie est suffisante ou non et limiter ainsi les allers-retours entre les différentes étapes.
Récupération des données
Une fois déterminé le type de données, commence l'étape de leur récupération. En général ces données seront disséminées sur plusieurs sources (bases de données, serveurs Big Data, sites web, API...) qu'il faudra interroger pour rapatrier les données, les organiser et les stocker. Automatiser au plus tôt ces procédures pourra être un gain de temps sur le long terme et la réalisation du projet. En effet, les modèles de Machine Learning étant basés sur l'inférence Bayésienne, tout ajout de nouvelles données nécessitera de le ré-entrainer et de le valider de nouveau. Automatiser la récupération et l'injection de données dans le modèle sera donc un gain de temps précieux pour redéployer le modèle ultérieurement.

Exploration et Visualisation des données
Cette étape ainsi que la suivante sont deux étapes cruciales. Elles permettront une bonne compréhension de l'environnement étudié, d'éviter les biais et de fournir des données de qualité aux algorithmes de Machine Learning choisis (et aussi orienter leur choix). Cette étape permettra de bien visualiser ce que l'on cherche à valoriser, et d'identifier des données manquantes ou incomplètes. Cette étape sera enrichie par les échanges avec le métier concerné qui pourra déjà à ce niveau confirmer ou infirmer des hypothèses. Par exemple, dans le cas de détection d'anomalie, durant cette phase il sera possible de caractériser les signaux "normaux" des signaux "anormaux" et d'en déterminer les variables discriminantes. Pendant cette phase d'analyse de données des algorithmes de Machine Learning et des outils de Data Visualisation pourront être utilisés afin d'effectuer des sélections et constructions de variables discriminantes ("Feature engineering/selection" et "Feature construction").
Préparation des données
Le but de cette étape-ci est de rendre les données exploitables par les algorithmes de Machine Learning en les prétraitant. Comme tout projet informatique, la qualité des données entrantes impactera fortement les données sortantes: "Garbage In, Garbage Out"...
Données manquantes, incohérentes, doublons, potentiellement identifiées durant l'étape précédente devront être nettoyées, normalisées, enrichies ou remplacées par des données artificielles. C'est aussi à ce moment que la confidentialité et la sécurité des données prendra un aspect concret, par exemple en les anonymisant dans le cas de données personnelles. Cette étape est en général la plus chronophage au cours du cycle de vie du projet. D'une part du fait de la volumétrie des données, et d'autre part, du fait du nettoyage et de l'organisation des données, de fréquents allers-retours avec les experts du domaine. Ceci afin de ne pas introduire de biais statistique, par exemple vérifier l'équilibre/représentativité entre chaque type de données du problème afin de ne pas en favoriser un plus qu'un autre.
Les résultats provenant des procédures de "feature engineering" pourront être systématisés à l'ensemble du jeu de données.
Choix et implémentation du/des modèle(s)
Une fois les données prêtes à être injectées dans un algorithme commence la phase à proprement parler de Machine Learning. De nos jours, du fait de la multiplicité de bibliothèques de Machine Learning, cette étape d'implémentation ne représente pas la partie la plus ardue du projet. Il existe des bibliothèques pour une multiplicité de langages comme Python, R, C++, C ou Julia. De ce fait, il est aisé (et recommandé) d'implémenter plusieurs modèles afin de traiter le problème initial.
La complexité du modèle de machine learning à implémenter dépendra de l'objectif métier. S'il est nécessaire de pouvoir interpréter les résultats, un modèle simple avec peu de variables sera à privilégier (par exemple un arbre décisionnel). Au contraire si l'accent sera mis sur la capacité de prédiction de l'algorithme, un modèle très complexe (par exemple basé sur des algorithmes de Deep Learning) permettra une analyse prédictive très fine et précise.
Quel que soit le type de modèle, ils dépendent tous d'un certain nombre de paramètres qui leur sont propres appelés hyperparamètres. Ce sont des variables d'ajustement qui permettront de contrôler le processus d'apprentissage/entrainement du modèle, que nous allons détailler dans la section suivante.
Entrainer le modèle
Cette étape correspond à la partie la plus caractéristique de l'apprentissage automatique. L'entraînement du modèle s'effectue en y injectant les données recueillies et nettoyées dans les étapes précédentes. Dans un modèle d'apprentissage supervisé, elles auront été séparées en variables d'entrée ("feature set") et variables de sortie ("target set"). La phase d'entraînement consiste donc pour le modèle d'améliorer sa capacité, de façon progressive et itérative, à réagir face à une situation donnée, à résoudre un problème complexe ou résoudre une tâche. Le tout en minimisant une fonction d'erreur/de coût. La qualité des données et leur représentativité de la situation à analyser sera cruciale afin de ne pas introduire de biais dans les résultats tout en conservant une précision optimale.
Afin d'éviter d'introduire des biais statistiques, il est d'usage de diviser les jeux de données en 2 ou 3 parties. La première consiste à concevoir/entraîner le modèle ("training set"), la deuxième à le tester ("test set") et la potentielle troisième étape à le valider ("validation set"). Il est préférable d'effectuer cette séparation de façon aléatoire tout en conservant dans chaque partie que la représentativité des données est similaire (par exemple en utilisant la méthode de validation croisée ou "Cross Validation"). Ceci sera particulièrement critique dans le cas où le but sera d'identifier des phénomènes rares, comme la détection d'anomalies.