Les 3 étapes essentielles de l’apprentissage automatique (Machine Learning)

L’apprentissage automatique (Machine Learning) est utilisé en intelligence artificielle et en science et analyse des données (Analytics and Data Science).
Intelligence artificielle
Équipe AI Spiria
2020-01-22 13:41
5 min. de lecture
<p>L’apprentissage automatique (<i>Machine Learning</i>) est utilisé en intelligence artificielle et en science et analyse des données (<i>Analytics and Data Science</i>).</p><p><picture><source type="image/webp" srcset="https://www.spiria.com/site/assets/files/4309/data_science_ai_fr.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://www.spiria.com/site/assets/files/4309/data_science_ai_fr.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://www.spiria.com/site/assets/files/4309/data_science_ai_fr.1039x0.webp" media="(min-width: 1000px)"><img src="/site/assets/files/4309/data_science_ai_fr.webp" style="width: 100%; " alt="Intelligence artificielle / Science des données." title="Intelligence artificielle / Science des données."></source></source></source></picture></p><p>Il existe différents types d’apprentissage automatique : le supervisé, le non-supervisé et celui par renforcement.</p><p><b>Apprentissage supervisé</b> : pour cet apprentissage, nous avons des données en entrée (<i>Features</i>) et le résultat attendu (<i>Label</i>). Il nous permet de faire des prédictions basées sur un modèle<sup>*</sup> qui est obtenu à partir de données d’historique et de l’algorithme choisi.</p><p>L’apprentissage supervisé tente de répondre à deux questions :</p><ul> <li>Classification : « quelle classe ?";</li> <li>Régression : « combien ? ».</li></ul><p><b>Apprentissage non-supervisé</b> : avec cet apprentissage, vous avez toujours des <i>features</i>, mais pas de <i>label</i>, car nous n’essayons pas de prédire quoi que ce soit.</p><p>À partir des données historiques que nous avons, nous essayons de voir ce que nous pouvons apprendre des données, sans oublier de valider les conclusions obtenues avec des experts en la matière.</p><p>Ce type d’apprentissage automatique sert généralement à découvrir des structures et des modèles dans les données. Il peut également être utilisé pour l’ingénierie des caractéristiques (<i>Feature engineering</i>) lors du processus de préparation des données pour l’apprentissage supervisé (nous y reviendrons plus tard).</p><p><b>Apprentissage par renforcement</b> : avec ce type d’apprentissage, vous commencez avec un agent (algorithme) qui doit choisir parmi une liste d’actions. Ensuite, en fonction de l’action choisie, il recevra un retour de l’environnement (provenant d’un humain dans certaines situations ou d’un autre algorithme) : c’est soit une récompense pour un bon choix, soit une pénalité pour une mauvaise action. L’agent (l’algorithme) apprend quelle stratégie (ou choix d’actions) maximise le cumul de récompenses.</p><p>Ce type d’apprentissage est souvent utilisé dans le cadre de la robotique, de la théorie des jeux et des véhicules autonomes.</p><p>Les principales étapes sont :</p><h2>La préparation des données</h2><ul> <li><b>Récolte des données </b>: tout d’abord, rassemblez les données dont vous aurez besoin pour l’apprentissage automatique. Veillez à les rassembler sous une forme consolidée, afin qu’elles soient toutes contenues dans un seul tableau (<i>Flat Table</i>).</li> <li><b>Réconciliation (<i>Data Wrangling</i>) </b>: il s’agit de préparer les données afin de les rendre exploitables par les algorithmes d’apprentissage automatique. <ul style="list-style-type:circle;"> <li>Nettoyage des données : trouvez les « Null », les valeurs manquantes et les données dupliquées. Il faut remplacer les « Null » et les valeurs manquantes par d’autres valeurs (ou les supprimer) et s’assurer de ne pas avoir de doublons.</li> <li>Décomposition des données : les colonnes de texte contiennent parfois plus d’une information ; nous devons donc les diviser en autant de colonnes dédiées que nécessaire. Si certaines colonnes représentent des catégories, convertissez-les en colonnes de type catégorie.</li> <li>Agrégation de données : regroupez certaines informations ensemble quand c’est pertinent</li> <li>Mise à l’échelle (<i>Data Scaling</i>) : cela permettra d’obtenir des données à une échelle commune, si ce n’est déjà le cas. La mise à l’échelle des données ne s’applique pas au label ou aux colonnes de catégories. Elle est nécessaire lorsqu’il y a une grande variation dans les plages de <i>features</i>.</li> <li>Mise en forme et transformation (<i>Data Shaping &amp; Transformation</i>) : de catégoriel à numérique.</li> </ul> </li> <li><b>Enrichissement des données </b>: parfois, vous devrez enrichir les données existantes par des données externes afin de donner à l’algorithme plus d’informations avec lesquelles travailler, ce qui améliore le modèle (par exemple, des données économiques ou météorologiques).</li></ul><h2>L’ingénierie des caractéristiques (<i>Feature Engineering</i>)</h2><ul> <li>Visualisez vos données dans leur ensemble pour voir s’il existe des liens entre les colonnes. En utilisant des graphiques (<i>Charts</i>), vous pouvez voir les caractéristiques/<i>features</i> côte à côte et détecter tout lien entre les <i>features</i>, et entre les <i>features</i> et les <i>labels</i>. <ul style="list-style-type:circle;"> <li>Les liens entre les <i>features</i> nous permettent de voir si une <i>feature</i> donnée est directement dépendante d’une autre. Si c’est le cas, il se peut que vous n’ayez pas besoin des deux <i>features</i>.</li> <li>Les liens entre une <i>feature</i> et le <i>label</i> nous permettent de voir si une <i>feature</i> aura un fort effet sur le résultat.</li> </ul> </li> <li>Parfois, vous devrez générer des <i>features</i> supplémentaires à partir de celles qui existent déjà dans une classification (par exemple, lorsque l’algorithme choisi est incapable de différencier correctement les classes).</li> <li>Vous pouvez vous retrouver avec un nombre énorme de colonnes. Dans ce cas, vous devez choisir les colonnes que vous utiliserez comme <i>features</i>, mais si vous avez des milliers de colonnes (c’est-à-dire des <i>features</i> potentielles), vous devrez appliquer une réduction dimensionnelle. Il existe plusieurs techniques pour ce faire, notamment l’analyse en composantes principales ou ACP (<i>Principal Component Analysis</i>, PCA en anglais). L’ACP est un algorithme d’apprentissage non-supervisé qui utilise les colonnes existantes pour générer de nouvelles colonnes, appelées composantes principales, qui peuvent être utilisées ultérieurement par l’algorithme de classification.</li></ul><h2>Le choix d’algorithme</h2><p>À cette étape, on peut commencer à entraîner les algorithmes, mais avant tout :</p><ul> <li>Divisez votre ensemble de données en trois parties : entraînement, test et validation. <ul style="list-style-type:circle;"> <li>Les <b>données d’entraînement</b> serviront à entraîner le ou les algorithmes choisis ;</li> <li>Les <b>données de test</b> seront utilisées pour vérifier la performance du résultat ;</li> <li>Les <b>données de validation</b> ne seront utilisées qu’à la toute fin du processus et ne seront, sauf nécessité, que très rarement examinées et utilisées avant afin d’éviter d’introduire un quelconque biais dans le résultat.</li> </ul> </li> <li>Choisissez le ou les algorithmes pertinents.</li> <li>Essayez les algorithmes avec différentes combinaisons de paramètres et comparez les performances de leurs résultats.</li> <li>Utilisez la procédure des hyperparamètres (<i>Grid-Search</i> en Python, par exemple) pour essayer de nombreuses combinaisons, et trouver celle qui donne le meilleur résultat (n’essayez pas de combinaisons manuelles).</li> <li>Dès que vous êtes raisonnablement satisfait d’un modèle, sauvegardez-le même s’il n’est pas parfait, car vous risquez de ne plus jamais retrouver la combinaison qui vous a permis de l’obtenir.</li> <li>Continuer les essais après chaque nouveau modèle. Si les résultats ne sont pas satisfaisants, vous pouvez recommencer : <ul style="list-style-type:circle;"> <li>Au stade des hyperparamètres, si vous avez de la chance.</li> <li>Il est également possible de devoir recommencer à partir du choix de <i>features</i> à inclure ou même revoir l’état de nos données (vérifiez s’il n’y a pas de problèmes de normalisation, de régularisation, d’échelle, de valeurs aberrantes…).</li> </ul> </li></ul><p>Lorsqu’on embarque dans un processus d’apprentissage automatique, il est important de garder à l’esprit qu’il se peut que nos données ne nous permettent peut-être pas d’arriver à un meilleur résultat que celui que nous obtenons déjà avec nos méthodes classiques déjà en place. Mais cela nous révèle assurément des informations intéressantes lors du processus d’analyse de données.</p><hr><p>(*) Modèle : le résultat obtenu en analysant les données avec un algorithme et toute combinaison donnée de paramètres, en supposant que le modèle est une fonction mathématique <i>y = f(x)</i>, où <i>x</i> est la <i>feature</i>, <i>y</i> est le <i>label</i> et <i>f(x)</i> le modèle.</p>

Want to Work Together?

Every great project starts with a conversation.