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.
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 :
Regardons de plus près chacun.
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.
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 :
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 :
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.
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.
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.
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 :
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 .