paint-brush
Préparation des données pour l'apprentissage automatique : un guide étape par étapepar@itrex
3,802 lectures
3,802 lectures

Préparation des données pour l'apprentissage automatique : un guide étape par étape

par ITRex12m2023/04/13
Read on Terminal Reader

Trop long; Pour lire

De nombreuses entreprises supposent qu'il suffit d'introduire de gros volumes de données dans un moteur de ML pour générer des prédictions précises. La vérité est que cela peut entraîner un certain nombre de problèmes, par exemple, un biais algorithmique ou une évolutivité limitée. Le succès de l'apprentissage automatique dépend fortement des données. Et la triste réalité est que tous les ensembles de données sont erronés. C'est pourquoi la préparation des données est cruciale pour l'apprentissage automatique. Cela permet d'éliminer les inexactitudes et les biais inhérents aux données brutes, de sorte que le modèle ML résultant génère des prédictions plus fiables et plus précises.
featured image - Préparation des données pour l'apprentissage automatique : un guide étape par étape
ITRex HackerNoon profile picture

Il y a des années, lorsque Spotify travaillait sur son moteur de recommandation, ils étaient confrontés à des défis liés à la qualité des données utilisées pour la formation des algorithmes ML.


S'ils n'avaient pas décidé de revenir à l'étape de préparation des données et d'investir des efforts supplémentaires dans le nettoyage, la normalisation et la transformation de leurs données, il est probable que notre expérience d'écoute ne serait pas aussi agréable.


La préparation minutieuse des données pour l'apprentissage automatique a permis à la plateforme de streaming de former un puissant moteur ML qui prédit avec précision les préférences d'écoute des utilisateurs et propose des recommandations musicales hautement personnalisées.


Spotify a évité une erreur cruciale que commettent les entreprises lorsqu'il s'agit de préparer des données pour l'apprentissage automatique - ne pas investir suffisamment d'efforts ou sauter l'étape.


De nombreuses entreprises supposent qu'il suffit d'introduire de gros volumes de données dans un moteur ML pour générer des prédictions précises. La vérité est que cela peut entraîner un certain nombre de problèmes, par exemple, un biais algorithmique ou une évolutivité limitée.


Le succès de l'apprentissage automatique dépend fortement des données.


Et la triste réalité est que tous les ensembles de données sont erronés. C'est pourquoi la préparation des données est cruciale pour l'apprentissage automatique. Cela permet d'éliminer les inexactitudes et les biais inhérents aux données brutes, de sorte que le modèle ML résultant génère des prédictions plus fiables et plus précises.


Dans cet article de blog, nous soulignons l'importance de préparer les données pour l'apprentissage automatique et partageons notre approche de la collecte, du nettoyage et de la transformation des données. Donc, si vous êtes nouveau dans le ML et que vous voulez vous assurer que votre initiative réussit, continuez à lire.

Comment préparer les données pour l'apprentissage automatique

La première étape vers une adoption réussie du ML consiste à formuler clairement votre problème métier. Non seulement cela garantit que le modèle ML que vous créez est aligné sur les besoins de votre entreprise, mais cela vous permet également de gagner du temps et de l'argent sur la préparation de données qui pourraient ne pas être pertinentes.


De plus, un énoncé clair du problème rend le modèle ML explicable (ce qui signifie que les utilisateurs comprennent comment il prend des décisions). C'est particulièrement important dans des secteurs comme la santé et la finance, où l'apprentissage automatique a un impact majeur sur la vie des gens.


Une fois le problème commercial résolu, il est temps de lancer le travail sur les données.


Dans l'ensemble, le processus de préparation des données pour l'apprentissage automatique peut être décomposé en plusieurs étapes :


  1. Collecte de données
  2. Nettoyage des données
  3. Transformation des données
  4. Fractionnement des données


Regardons de plus près chacun.

Collecte de données

La préparation des données pour l'apprentissage automatique commence par la collecte de données. Au cours de l'étape de collecte de données, vous collectez des données pour former et ajuster le futur modèle ML. Ce faisant, gardez à l'esprit le type, le volume et la qualité des données : ces facteurs détermineront la meilleure stratégie de préparation des données.


L'apprentissage automatique utilise trois types de données : structurées, non structurées et semi-structurées.

  • Les données structurées sont organisées d'une manière spécifique, généralement sous forme de tableau ou de feuille de calcul. Les exemples de données structurées couvrent les informations collectées à partir de bases de données ou de systèmes transactionnels.
  • Les données non structurées comprennent les images, les vidéos, les enregistrements audio et d'autres informations qui ne suivent pas les modèles de données conventionnels.
  • Les données semi-structurées ne suivent pas le format d'un modèle de données tabulaire. Pourtant, il n'est pas complètement désorganisé, car il contient des éléments structurels, comme des balises ou des métadonnées qui facilitent son interprétation. Les exemples incluent des données aux formats XML ou JSON.


La structure des données détermine l'approche optimale de préparation des données pour l'apprentissage automatique. Les données structurées, par exemple, peuvent être facilement organisées en tableaux et nettoyées via la déduplication, le remplissage des valeurs manquantes ou la normalisation des formats de données.


En revanche, l'extraction de caractéristiques pertinentes à partir de données non structurées nécessite des techniques plus complexes, telles que le traitement du langage naturel ou la vision par ordinateur .


L'approche optimale de la préparation des données pour l'apprentissage automatique est également affectée par le volume de données de formation. Un grand ensemble de données peut nécessiter un échantillonnage, ce qui implique la sélection d'un sous-ensemble de données pour former le modèle en raison de limitations de calcul. Un plus petit, à son tour, peut obliger les scientifiques des données à prendre des mesures supplémentaires pour générer plus de données basées sur les points de données existants (plus de détails ci-dessous).


La qualité des données collectées est également cruciale. L'utilisation de données inexactes ou biaisées peut affecter la production de ML, ce qui peut avoir des conséquences importantes, en particulier dans des domaines tels que la finance, la santé et la justice pénale. Il existe des techniques qui permettent de corriger les données pour les erreurs et les biais. Cependant, ils peuvent ne pas fonctionner sur un ensemble de données qui est intrinsèquement biaisé. Une fois que vous savez ce qui fait de « bonnes » données, vous devez décider comment les collecter et où les trouver. Il existe plusieurs stratégies pour cela :


  • Collecte de données à partir de sources internes : si vous disposez d'informations stockées dans votre entrepôt de données d'entreprise , vous pouvez les utiliser pour entraîner des algorithmes de ML. Ces données peuvent inclure des transactions de vente, des interactions avec les clients, des données provenant de plateformes de médias sociaux et d'autres sources.
  • Collecte de données à partir de sources externes : vous pouvez vous tourner vers des sources de données accessibles au public, telles que des portails de données gouvernementaux, des référentiels de données universitaires et des communautés de partage de données, telles que Kaggle, UCI Machine Learning Repository ou Google Dataset Search.
  • Web scraping : Cette technique consiste à extraire des données de sites Web à l'aide d'outils automatisés. Cette approche peut être utile pour collecter des données à partir de sources qui ne sont pas accessibles par d'autres moyens, tels que des critiques de produits, des articles de presse et des médias sociaux.
  • Enquêtes : cette approche peut être utilisée pour collecter des points de données spécifiques auprès d'un public cible spécifique. Il est particulièrement utile pour collecter des informations sur les préférences ou le comportement des utilisateurs.


Parfois cependant, ces stratégies ne produisent pas suffisamment de données. Vous pouvez compenser le manque de points de données avec ces techniques :


  • Augmentation des données , qui permet de générer plus de données à partir d'échantillons existants en les transformant de diverses manières, par exemple, en les faisant pivoter, en les traduisant ou en les mettant à l'échelle
  • Apprentissage actif , qui permet de sélectionner l'échantillon de données le plus informatif pour l'étiquetage par un expert humain.
  • L'apprentissage par transfert , qui consiste à utiliser des algorithmes ML pré-formés appliqués pour résoudre une tâche connexe comme point de départ pour former un nouveau modèle ML, suivi d'un réglage fin du nouveau modèle sur de nouvelles données.
  • Partage de données collaboratif , qui implique de travailler avec d'autres chercheurs et organisations pour collecter et partager des données dans un but commun.

Nettoyage des données

La prochaine étape à franchir pour préparer les données pour l'apprentissage automatique consiste à les nettoyer. Le nettoyage des données implique de rechercher et de corriger les erreurs, les incohérences et les valeurs manquantes. Il existe plusieurs approches pour le faire :


  • Traitement des données manquantes


    Les valeurs manquantes sont un problème courant dans l'apprentissage automatique. Il peut être géré par imputation (pensez : remplir les valeurs manquantes avec des données prédites ou estimées), par interpolation (dérivation des valeurs manquantes à partir des points de données environnants) ou par suppression (supprimer simplement des lignes ou des colonnes avec des valeurs manquantes d'un ensemble de données.)


  • Gestion des valeurs aberrantes


    Les valeurs aberrantes sont des points de données qui diffèrent considérablement du reste de l'ensemble de données. Les valeurs aberrantes peuvent se produire en raison d'erreurs de mesure, d'erreurs de saisie de données ou simplement parce qu'elles représentent des observations inhabituelles ou extrêmes. Dans un ensemble de données sur les salaires des employés, par exemple, une valeur aberrante peut être un employé qui gagne beaucoup plus ou moins que les autres. Les valeurs aberrantes peuvent être gérées en les supprimant, en les transformant pour réduire leur impact, en les winsorisant (pensez : remplacer les valeurs extrêmes par les valeurs les plus proches qui se situent dans la plage de distribution normale) ou en les traitant comme une classe de données distincte.


  • Suppression des doublons


    Une autre étape du processus de préparation des données pour l'apprentissage automatique consiste à supprimer les doublons. Non seulement les doublons faussent les prédictions de ML, mais ils gaspillent également de l'espace de stockage et augmentent le temps de traitement, en particulier dans les grands ensembles de données. Pour supprimer les doublons, les scientifiques des données ont recours à diverses techniques d'identification des doublons (comme la correspondance exacte, la correspondance approximative, le hachage ou le couplage d'enregistrements). Une fois identifiés, ils peuvent être supprimés ou fusionnés. Cependant, dans les ensembles de données déséquilibrés, les doublons peuvent en fait être les bienvenus pour obtenir une distribution normale.


  • Traitement des données non pertinentes


    Les données non pertinentes font référence aux données qui ne sont pas utiles ou applicables à la résolution du problème. La gestion de données non pertinentes peut aider à réduire le bruit et à améliorer la précision des prédictions. Pour identifier les données non pertinentes, les équipes de données ont recours à des techniques telles que l'analyse en composantes principales, l'analyse de corrélation ou s'appuient simplement sur leur connaissance du domaine. Une fois identifiés, ces points de données sont supprimés de l'ensemble de données.


  • Traitement des données incorrectes


    La préparation des données pour l'apprentissage automatique doit également inclure la gestion de données incorrectes et erronées. Les techniques courantes de traitement de ces données incluent la transformation des données (modification des données afin qu'elles répondent aux critères définis) ou la suppression totale des points de données incorrects.


  • Gestion des données déséquilibrées


    Un jeu de données déséquilibré est un jeu de données dans lequel le nombre de points de données dans une classe est nettement inférieur au nombre de points de données dans une autre classe. Cela peut aboutir à un modèle biaisé qui donne la priorité à la classe majoritaire, tout en ignorant la classe minoritaire. Pour résoudre le problème, les équipes de données peuvent recourir à des techniques telles que le rééchantillonnage (soit suréchantillonner la classe minoritaire, soit sous-échantillonner la classe majoritaire pour équilibrer la distribution des données), la génération de données synthétiques (générant synthétiquement des points de données supplémentaires pour la classe minoritaire), le coût -Apprentissage sensible (attribuer un poids plus élevé à la classe minoritaire pendant la formation), apprentissage d'ensemble (combinant plusieurs modèles formés sur différents sous-ensembles de données à l'aide de différents algorithmes), et autres.


    Ces activités permettent de s'assurer que les données de formation sont exactes, complètes et cohérentes. Bien qu'il s'agisse d'une grande réussite, cela ne suffit pas encore pour produire un modèle ML fiable. Ainsi, la prochaine étape du parcours de préparation des données pour l'apprentissage automatique consiste à s'assurer que les points de données de l'ensemble de données de formation sont conformes à des règles et à des normes spécifiques. Et cette étape du processus de gestion des données est appelée transformation des données.

Transformation des données

Au cours de l'étape de transformation des données, vous convertissez les données brutes dans un format adapté aux algorithmes d'apprentissage automatique. Cela, à son tour, garantit des performances et une précision algorithmiques supérieures.


Nos experts en préparation de données pour l'apprentissage automatique citent les techniques courantes de transformation de données suivantes :


  • Mise à l'échelle


    Dans un jeu de données, différentes entités peuvent utiliser différentes unités de mesure. Par exemple, un ensemble de données immobilières peut inclure des informations sur le nombre de pièces dans chaque propriété (allant de une à dix) et le prix (allant de 50 000 $ à 1 000 000 $). Sans mise à l'échelle, il est difficile d'équilibrer l'importance des deux fonctionnalités. L'algorithme peut accorder trop d'importance à la fonctionnalité avec des valeurs plus grandes - dans ce cas, le prix - et pas assez à la fonctionnalité avec des valeurs apparemment plus petites. La mise à l'échelle aide à résoudre ce problème en transformant tous les points de données de manière à ce qu'ils correspondent à une plage spécifiée, généralement entre 0 et 1. Vous pouvez désormais comparer différentes variables sur un pied d'égalité.


  • Normalisation


    Une autre technique utilisée dans la préparation des données pour l'apprentissage automatique est la normalisation. C'est similaire à la mise à l'échelle. Cependant, alors que la mise à l'échelle modifie la plage d'un ensemble de données, la normalisation modifie sa distribution.


  • Codage


    Les données catégorielles ont un nombre limité de valeurs, par exemple, des couleurs, des modèles de voiture ou des espèces animales. Étant donné que les algorithmes d'apprentissage automatique fonctionnent généralement avec des données numériques, les données catégorielles doivent être codées pour pouvoir être utilisées comme entrée. Ainsi, l'encodage signifie convertir des données catégorielles en un format numérique. Vous avez le choix entre plusieurs techniques d'encodage, notamment l'encodage à chaud, l'encodage ordinal et l'encodage d'étiquettes.


  • Discrétisation


    La discrétisation est une approche de préparation des données pour l'apprentissage automatique qui permet de transformer des variables continues, telles que le temps, la température ou le poids, en variables discrètes. Prenons un ensemble de données contenant des informations sur la taille des personnes. La taille de chaque personne peut être mesurée comme une variable continue en pieds ou en centimètres. Cependant, pour certains algorithmes ML, il peut être nécessaire de discrétiser ces données en catégories, par exemple, "court", "moyen" et "grand". C'est exactement ce que fait la discrétisation. Cela permet de simplifier l'ensemble de données de formation et de réduire la complexité du problème. Les approches courantes de la discrétisation couvrent la discrétisation basée sur le clustering et la discrétisation basée sur l'arbre de décision.


  • Réduction de la dimensionnalité


    La réduction de dimensionnalité consiste à limiter le nombre de caractéristiques ou de variables dans un ensemble de données et à ne conserver que les informations pertinentes pour résoudre le problème. Prenons un ensemble de données contenant des informations sur l'historique des achats des clients. Il comporte la date d'achat, l'article acheté, le prix de l'article et le lieu où l'achat a eu lieu. En réduisant la dimensionnalité de cet ensemble de données, nous omettons toutes les caractéristiques sauf les plus importantes, par exemple l'article acheté et son prix. La réduction de la dimensionnalité peut être effectuée avec une variété de techniques, certaines d'entre elles étant l'analyse en composantes principales, l'analyse discriminante linéaire et l'intégration de voisins stochastiques à distribution t.


  • Transformation du journal


    Une autre façon de préparer les données pour l'apprentissage automatique, la transformation logarithmique, consiste à appliquer une fonction logarithmique aux valeurs d'une variable dans un ensemble de données. Il est souvent utilisé lorsque les données d'entraînement sont fortement asymétriques ou présentent une large plage de valeurs. L'application d'une fonction logarithmique peut aider à rendre la distribution des données plus symétrique.


    En parlant de transformation des données, nous devrions également mentionner l'ingénierie des fonctionnalités . Bien qu'il s'agisse d'une forme de transformation de données, c'est plus qu'une technique ou une étape du processus de préparation des données pour l'apprentissage automatique. Il représente la sélection, la transformation et la création d'entités dans un jeu de données. L'ingénierie des fonctionnalités implique une combinaison de techniques statistiques, mathématiques et informatiques, y compris l'utilisation de modèles ML, pour créer des fonctionnalités qui capturent les informations les plus pertinentes dans les données.


    Il s'agit généralement d'un processus itératif qui nécessite de tester et d'évaluer différentes techniques et combinaisons de fonctionnalités afin de trouver la meilleure approche pour résoudre un problème.

Fractionnement des données

La prochaine étape du processus de préparation des données pour l'apprentissage automatique consiste à diviser toutes les données recueillies en sous-ensembles - le processus connu sous le nom de fractionnement des données. En règle générale, les données sont décomposées en un jeu de données de formation, de validation et de test.


  • Un ensemble de données de formation est utilisé pour apprendre à un modèle d'apprentissage automatique à reconnaître les modèles et les relations entre les variables d'entrée et cibles. Cet ensemble de données est généralement le plus volumineux.
  • Un jeu de données de validation est un sous-ensemble de données utilisé pour évaluer les performances du modèle pendant la formation. Il aide à affiner le modèle en ajustant les hyperparamètres (pensez : les paramètres du processus de formation qui sont définis manuellement avant la formation, comme le taux d'apprentissage, la force de régularisation ou le nombre de couches cachées). L'ensemble de données de validation permet également d'éviter le surajustement des données de formation.
  • Un jeu de données de test est un sous-ensemble de données utilisé pour évaluer les performances du modèle formé. Son objectif est d'évaluer la précision du modèle sur de nouvelles données inédites. L'ensemble de données de test n'est utilisé qu'une seule fois - après que le modèle a été formé et affiné sur les ensembles de données de formation et de validation.


En divisant les données, nous pouvons évaluer les performances d'un modèle d'apprentissage automatique sur des données qu'il n'a jamais vues auparavant. Sans fractionnement, il y a de fortes chances que le modèle fonctionne mal sur de nouvelles données. Cela peut se produire parce que le modèle vient peut-être de mémoriser les points de données au lieu d'apprendre des modèles et de les généraliser à de nouvelles données.


Il existe plusieurs approches de fractionnement des données, et le choix de la meilleure dépend du problème à résoudre et des propriétés de l'ensemble de données. Nos experts en préparation des données pour l'apprentissage automatique disent que cela nécessite souvent une certaine expérimentation de la part de l'équipe de données pour déterminer la stratégie de fractionnement la plus efficace. Voici les plus courants :


  • Échantillonnage aléatoire , où, comme son nom l'indique, les données sont réparties de manière aléatoire. Cette approche est souvent appliquée à de grands ensembles de données représentatifs de la population modélisée. Alternativement, il est utilisé lorsqu'il n'y a pas de relations connues dans les données qui nécessitent une approche plus spécialisée.
  • Échantillonnage stratifié , où les données sont divisées en sous-ensembles en fonction des étiquettes de classe ou d'autres caractéristiques, suivi d'un échantillonnage aléatoire de ces sous-ensembles. Cette stratégie est appliquée aux ensembles de données déséquilibrés avec le nombre de valeurs dans une classe dépassant de manière significative le nombre de valeurs dans les autres. Dans ce cas, l'échantillonnage stratifié permet de s'assurer que les ensembles de données d'apprentissage et de test ont une distribution similaire des valeurs de chaque classe.
  • Échantillonnage basé sur le temps , où les données collectées jusqu'à un certain moment constituent un ensemble de données d'apprentissage, tandis que les données collectées après le point de consigne sont formées dans un ensemble de données de test. Cette approche est utilisée lorsque les données ont été collectées sur une longue période, par exemple dans des ensembles de données financières ou médicales, car elle permet de s'assurer que le modèle peut faire des prédictions précises sur les données futures.
  • Validation croisée , où les données sont divisées en plusieurs sous-ensembles, ou plis. Certains plis sont utilisés pour former le modèle, tandis que les autres sont utilisés pour l'évaluation des performances. Le processus est répété plusieurs fois, chaque pli servant de données de test au moins une fois. Il existe plusieurs techniques de validation croisée, par exemple, la validation croisée k-fold et la validation croisée leave-one-out. La validation croisée fournit généralement une estimation plus précise des performances du modèle que l'évaluation sur un seul jeu de données de test.

Sur une note finale

La préparation correcte des données pour l'apprentissage automatique est essentielle pour développer des solutions d'apprentissage automatique précises et fiables. Chez ITRex, nous comprenons les défis de la préparation des données et l'importance d'avoir un ensemble de données de qualité pour un processus d'apprentissage automatique réussi.


Si vous souhaitez maximiser le potentiel de vos données grâce au machine learning, contactez l'équipe ITRex . Nos experts vous assistent dans la collecte, le nettoyage et la transformation de vos données.


Également publié ici .