Préparation des données pour l'apprentissage automatique : un guide étape par étape
Publié: 2023-07-07Il y a des années, lorsque Spotify travaillait sur son moteur de recommandation, il était confronté à des défis liés à la qualité des données utilisées pour la formation des algorithmes d'apprentissage automatique (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 le ML a permis à la plateforme de streaming de former un puissant moteur de 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 le ML : 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 du ML 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 le ML. 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 le ML 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ù le ML 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 le ML peut être décomposé en les étapes suivantes.
- Collecte de données
- Nettoyage des données
- Transformation des données
- Fractionnement des données
Regardons de plus près chacun.
Collecte de données
La préparation des données pour le ML commence par la collecte des 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 l'éventail des 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 pour les préparer au ML. 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 le ML 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 un 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 former 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 des données provenant 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. Lorsque cela se produit, vous pouvez compenser le manque de points de données avec ces techniques.
- Augmentation des données : cela vous permet de générer davantage de données à partir d'échantillons existants en les transformant de différentes manières, par exemple par rotation, translation ou mise à l'échelle.
- Apprentissage actif : cela vous permet de sélectionner l'échantillon de données le plus informatif pour l'étiquetage par un expert humain.
- Apprentissage par transfert : cela implique l'utilisation d'algorithmes ML pré-formés appliqués pour résoudre une tâche connexe comme point de départ pour la formation d'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 : cela 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 à suivre pour préparer les données pour le ML 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 de nettoyage des données.
Traitement des données manquantes
Les valeurs manquantes sont un problème courant en ML. 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 (simplement la suppression 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 le ML 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 (par exemple, correspondance exacte, correspondance approximative, hachage ou 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 d'un 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 peuvent recourir à des techniques telles que l'analyse en composantes principales, l'analyse de corrélation ou simplement s'appuyer sur leur connaissance du domaine. Une fois identifiés, ces points de données sont supprimés de l'ensemble de données pertinent.
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) et apprentissage d'ensemble (combinant plusieurs modèles formés sur différents sous-ensembles de données à l'aide de différents algorithmes).
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 le ML consiste à s'assurer que les points de données de l'ensemble de données de formation sont conformes à des règles et 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 ML. Cela, à son tour, garantit des performances et une précision algorithmiques supérieures.
Nos experts en préparation de données pour le ML 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 de manière égale.
Normalisation
Une autre technique utilisée dans la préparation des données pour le ML 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 ML 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. L'encodage consiste donc à 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 ML 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, telles que "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 un problème. Considérons, par exemple, un ensemble de données contenant des informations sur l'historique d'achat des clients. Il présente les dates d'achat, les articles achetés, les prix des articles et le lieu où les achats ont 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, un 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 le ML, 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 de données, il convient également de mentionner l'ingénierie des fonctionnalités. Bien qu'il s'agisse d'une forme de transformation de données, l'ingénierie des fonctionnalités est plus qu'une technique ou une étape du processus de préparation des données pour le ML. 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 le ML consiste à diviser toutes les données recueillies en sous-ensembles - un 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 ML à 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 ensemble de données de validation est un sous-ensemble de données utilisé pour évaluer les performances d'un modèle pendant l'entraînement. 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 d'un modèle entraîné. 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 ML 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 le ML 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 stratégies les plus courantes.
- Échantillonnage aléatoire : avec cette stratégie, 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 un ensemble de données, ce qui peut nécessiter une approche plus spécialisée.
- Échantillonnage stratifié : dans cette stratégie, les données sont divisées en sous-ensembles en fonction des étiquettes de classe ou d'autres caractéristiques, suivies 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 : cette stratégie est utilisée lorsque les données collectées jusqu'à un certain point dans le temps 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 : avec cette stratégie, 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 d'un modèle que l'évaluation sur un seul ensemble de données de test.
Sur une note finale
La préparation correcte des données pour le ML 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 ML réussi.
Si vous souhaitez maximiser le potentiel de vos données grâce au ML, contactez l'équipe ITRex. Nos experts vous assistent dans la collecte, le nettoyage et la transformation de vos données.
Cet article a été initialement publié sur le site Web d'itrex.