La Data Science
Objectif du chapitre
Le Machine Learning propose un cadre théorique et algorithmique pour modéliser des phénomènes ou des systèmes afin de comprendre leur fonctionnement pour ainsi anticiper leur comportement. L’objectif de ce premier chapitre est d’introduire les concepts généraux du Machine Learning et de la Data Science.
Après la lecture de ce chapitre, même si certains concepts ne sont pas clairs, sachez que des éclaircissements seront apportés dans les chapitres suivants. Le lecteur est d’ailleurs invité à revenir à ce chapitre pour faire le lien entre ces concepts et les cas concrets abordés dans les autres chapitres. En effet, ce premier chapitre servira de base aux suivants, de sorte qu’après sa lecture, vous pourrez directement aborder n’importe quel autre chapitre du livre.
À la fin de ce chapitre, le lecteur aura abordé :
-
les étapes fondamentales d’une expérimentation Machine Learning,
-
les types de données manipulées en Machine Learning,
-
les problèmes liés aux données fréquemment rencontrées,
-
les grandes parties d’un projet en Data Science,
-
la classification des algorithmes en Machine Learning,
-
la notion de surapprentissage,
-
les paramètres et les hyperparamètres d’un modèle,
-
les données...
L’objectif recherché en Machine Learning
Les phénomènes étudiés en Machine Learning peuvent être considérés comme des systèmes qui, en fonction du contexte de leur environnement, présentent un comportement particulier en vue de certains événements.
Figure 1-1 : un système avec entrées, traitement et sorties
Généralement, les problèmes concernés par la thématique de Machine Learning sont justement ces systèmes pour lesquels un ensemble d’entrées et de sorties est connu, mais où le traitement effectué pour transformer une entrée en une sortie n’est pas connu. Le but du Machine Learning est idéalement de comprendre ce traitement, ou du moins de trouver le traitement le plus proche possible du vrai traitement effectué au sein du système.
Une expérimentation Machine Learning
Comme toute expérimentation scientifique, réussir une expérimentation en Machine Learning nécessite d’appliquer une méthodologie avec beaucoup de rigueur. Comme évoqué à la section précédente, l’objectif du Machine Learning est de répondre à un besoin métier en partant des données à la recherche du modèle prédictif le plus robuste possible. Pour y parvenir, il est nécessaire de se poser plusieurs questions, définir un ensemble d’étapes à suivre, fixer l’objectif de chaque étape, faire plusieurs tests avec plusieurs hypothèses différentes, et surtout, ne pas hésiter à se reposer des questions quitte à tout remettre en cause à n’importe quel moment de l’expérimentation. La figure 1-3 suivante propose une succession d’étapes à suivre pour réaliser une expérimentation en Machine Learning.
Figure 1-3 : les étapes d’une expérimentation Machine Learning
Ces étapes peuvent être définies comme suit :
1. |
Poser le problème : c’est le début de toute l’histoire. Le besoin peut venir des équipes opérationnelles et/ou métier qui constatent une optimisation possible des processus de production ou autres processus. Le besoin peut également être mis en avant par les équipes Data Science qui démontrent l’intérêt d’imbriquer de l’intelligence artificielle dans certains processus métier. Cette démonstration est généralement concrétisée par des expérimentations et/ou des POC (Proof Of Concept) réalisés sur des données fictives ou réelles, cela dépend des budgets alloués. |
Une fois qu’un besoin est défini, l’équipe Data Science intervient pour discuter de la valeur ajoutée de l’intelligence artificielle pour répondre à ce besoin et, le cas échéant, discuter des méthodes et des solutions à mettre en œuvre pour parvenir aux résultats escomptés. |
|
Ainsi, l’équipe Data Science encadre et formalise... |
Cycle de vie d’un projet Data Science
Les sections précédentes ont montré qu’une expérimentation en Machine Learning consiste à construire un modèle prédictif en se basant sur un ensemble de données d’apprentissage. Une fois qu’un modèle est construit, il doit être déployé en production pour que d’autres applications puissent l’interroger. Ce déploiement en production est souvent l’objectif final d’une équipe de Data Scientists intervenant sur un projet.
Cependant, il existe des projets de Data Science pour lesquels le déploiement du modèle en production n’est pas une fin en soi. Ce déploiement de modèle en production ne représente qu’une partie d’un projet plus grand que le projet de réalisation d’une expérimentation Machine Learning.
En effet, de plus en plus, les entreprises souhaitent s’équiper de solutions End-to-End, c’est-à-dire des solutions qui prennent en compte toutes les composantes d’un projet où les données sont capturées et suivies en temps pseudo-réel jusqu’à leur transformation en action dite intelligente.
La figure 1-4 ci-après montre à quoi peut ressembler une solution End-to-End. La première chose à remarquer sur cette figure...
Les algorithmes du Machine Learning
Au début de ce chapitre, les algorithmes de Machine Learning ont été introduits comme étant des algorithmes qui cherchent à comprendre le fonctionnement des systèmes qui donnent des résultats après avoir effectué un traitement sur leurs entrées. Ces algorithmes produisent donc des modèles prédictifs. Bien que ce type d’algorithme caractérise de façon générale le domaine du Machine Learning, il existe d’autres types d’algorithmes qui font partie de ces algorithmes dits algorithmes d’apprentissage automatique.
Les algorithmes du Machine Learning peuvent être catégorisés en se basant sur deux critères principaux : le mode d’apprentissage et le type du problème traité.
Le mode d’apprentissage concerne le caractère supervisé et non supervisé. Sans perte en généralités, on peut distinguer ces deux types d’apprentissages comme suit :
-
Un algorithme supervisé utilise un ensemble d’observations connues contenant des variables prédictives et des variables à prédire pour apprendre un modèle qui sera capable de faire des prédictions sur les futures observations des variables prédictives.
-
Un algorithme non supervisé prend en entrée...
Le problème de surapprentissage
Le problème du surapprentissage peut être rencontré par tous les algorithmes du Machine Learning. On dit d’un modèle qu’il souffre du problème de surapprentissage lorsque ses performances sont très satisfaisantes sur les données d’entraînement, mais que ses capacités de prédiction sur les données de test et sur les données de production sont très faibles. La figure ci-dessous illustre ce problème :
Figure 1-6 : le problème du surapprentissage
Sur cette figure, les points représentent les données d’entraînement et le carré un exemple de donnée de test. Bien que le modèle représenté par la fonction en courbes soit capable de prédire avec exactitude toutes les données d’entraînement, c’est bien le modèle représenté par la droite qui est meilleur puisqu’il possède une meilleure capacité de prédiction sur les données de test. Le modèle représenté par la fonction en courbes présente un risque élevé de s’éloigner de façon importante des données de test alors que le modèle représenté par la droite a plus de chances d’être plus proche de ces données de test. Ici, le modèle...
Les paramètres et les hyperparamètres
Il est important de distinguer les paramètres d’un modèle de ses hyperparamètres. Sans perte de généralités, les paramètres d’un modèle sont les variables qui le définissent alors que les hyperparamètres d’un modèle sont des variables utilisées pour trouver des valeurs intéressantes pour les paramètres de ce même modèle !
En d’autres termes, les paramètres d’un modèle sont les variables pour lesquelles un algorithme de Machine Learning tente de fixer des valeurs. Les valeurs de ces paramètres, une fois fixées, seront utilisées directement dans le calcul des prédictions réalisées avec ce modèle. Les hyperparamètres sont les variables utilisées par un algorithme de Machine Learning afin de fixer les valeurs des paramètres d’un modèle. Les valeurs des hyperparamètres ne sont donc pas utilisées lors du calcul des prédictions avec un modèle. Nous pouvons dire que les hyperparamètres sont eux-mêmes des paramètres qui définissent la manière avec laquelle un algorithme devrait fonctionner lors de la recherche des valeurs intéressantes pour les paramètres d’un modèle.
Validation croisée
Jusqu’à présent, les sections précédentes ont montré que la construction d’un modèle prédictif est basée sur la séparation en deux groupes de l’ensemble des observations d’apprentissage : un groupe pour l’entraînement du modèle et un deuxième pour le test des performances de ce modèle. Une fois qu’un modèle est construit, l’objectif est de le déployer en production pour qu’il puisse être interrogé sur des observations futures. Le problème posé par une telle démarche de construction de modèle est que nous n’avons pas une idée précise sur les erreurs de prédiction attendues en production, ou, du moins, nous n’avons qu’une idée très approximative de ces erreurs. De plus, comme l’a montré la section Le problème de surapprentissage, un modèle déployé en production peut être affecté par le problème de surapprentissage.
En effet, une fois qu’un modèle est construit, même s’il présente des performances intéressantes, il est très important de se poser les deux questions suivantes :
1. |
Les performances du modèle sur l’ensemble des données de test ne seraient-elles pas le fruit du surapprentissage dû à une forte ressemblance entre ces données de test et les données d’entraînement ? |
2. |
Quel est le taux d’erreur de ce modèle auquel nous pouvons nous attendre en production sur les futures observations ? |
La validation croisée tente justement de répondre à ces deux questions. Elle permet d’un côté d’estimer le taux d’erreur du modèle en production sur les futures observations, et de l’autre côté de mettre en évidence si le modèle est en situation de surapprentissage sur les données d’entraînement.
Plusieurs méthodes...
Données d’entraînement, de validation et de test
La section précédente a montré qu’il est important de garder de côté un sous-ensemble des données d’apprentissage pour uniquement l’évaluation d’un modèle et les données de ce sous-ensemble ne doivent en aucun cas être utilisées lors de l’entraînement du modèle. En effet, le fait d’utiliser un sous-ensemble pour uniquement évaluer un modèle est la seule manière de simuler un environnement de production. Nous avons vu que cet ensemble de données est appelé l’ensemble des données de test.
En somme, l’ensemble des données que nous avons à notre disposition doit toujours être divisé en deux groupes de données : groupe1 les données d’entraînement et groupe2 les données de test. Donc, les données de groupe2 ne doivent en aucun cas être utilisées dans une procédure d’entraînement d’un modèle. Les techniques de validation croisée vues dans la section précédente peuvent toutes être appliquées en utilisant uniquement les données d’entraînement, soit les données de groupe1. Dans ce cas-là, les données choisies parmi les données...
Métriques de performance
Pour conserver un cadre formel cohérent tout au long de ce livre, les notations suivantes seront adoptées :
-
: l’ensemble des n observations de la base d’apprentissage. Chaque observation est composée des valeurs prises par m variable explicatives. Ainsi, est l’observation i avec la valeur de la première variable explicative, la valeur de la deuxième variable explicative, et ainsi de suite.
-
: l’ensemble des résultats obtenus sur les n observations de la base d’apprentissage, avec le résultat de l’observation .
-
: l’ensemble des futurs résultats associés aux futures observations . Par exemple, est le résultat qui va être obtenu sur l’observation .
En résumé, la base d’apprentissage peut être représentée comme suit :
-
: l’ensemble des prédictions obtenues avec un modèle sur les résultats de la base d’apprentissage. Ainsi, est la valeur prédite par un modèle pour une observation alors que, pour rappel, la vraie valeur est .
-
Donc, pour dire qu’un modèle a fait une prédiction correcte pour l’observation , il faudrait que .
Cette comparaison entre les vrais résultats et les prédictions dépend du type du modèle choisi pour décrire la relation entre X et Y. Généralement :
-
Pour les modèles de régression, les indicateurs utilisés sont :
-
L’erreur absolue moyenne MAE (Mean Absolute Error).
-
L’erreur...
Conclusion
Ce chapitre a permis d’introduire les notions de base de la Data Science. Il a commencé par donner une compréhension intuitive du Machine Learning, puis les autres sections ont été consacrées à l’introduction de la démarche à suivre lors d’une expérimentation Machine Learning et aussi à l’introduction des concepts de préparation des données, de surapprentissage, de données de validation et de la validation croisée et des métriques de performance. Le chapitre suivant va permettre au lecteur novice ou débutant en langage Python d’apprendre ou d’approfondir ses connaissances dans ce langage qui est le langage de choix lorsqu’on travaille dans le domaine du Machine Learning.