Nettoyage des données manquantes

Important

Le support de Machine Learning Studio (classique) prend fin le 31 août 2024. Nous vous recommandons de passer à Azure Machine Learning avant cette date.

À partir du 1er décembre 2021, vous ne pourrez plus créer de nouvelles ressources Machine Learning Studio (classique). Jusqu’au 31 août 2024, vous pouvez continuer à utiliser les ressources Machine Learning Studio (classique) existantes.

La documentation ML Studio (classique) est en cours de retrait et ne sera probablement plus mise à jour.

Spécifie comment gérer les valeurs manquantes dans un jeu de données.

Catégorie : transformation/manipulation des données

Notes

s’applique à: Machine Learning Studio (classic) uniquement

Des modules par glisser-déposer similaires sont disponibles dans Concepteur Azure Machine Learning.

Vue d’ensemble du module

cet article explique comment utiliser le module nettoyer les données manquantes dans Machine Learning Studio (classic) pour supprimer, remplacer ou déduire les valeurs manquantes.

Les scientifiques des données vérifient souvent les données pour détecter les valeurs manquantes et effectuer ensuite diverses opérations pour corriger les données ou en ajouter de nouvelles. L’objectif de ces opérations de nettoyage est d’éviter les problèmes causés par des données manquantes pouvant survenir lors de l’apprentissage d’un modèle.

Ce module prend en charge plusieurs types d’opérations de « nettoyage » des valeurs manquantes, y compris :

  • Le remplacement des valeurs manquantes par un espace réservé, une moyenne ou une autre valeur
  • La suppression totale des lignes et des colonnes ayant des valeurs manquantes
  • La déduction de valeurs basées sur des méthodes statistiques

Conseil

Vous débutez avec Machine Learning ? Cet article fournit une bonne explication de la raison pour laquelle vous utilisez chacune des différentes méthodes pour remplacer des valeurs manquantes : les méthodes de gestion des valeurs manquantes

L’utilisation de ce module ne modifie pas votre jeu de données source. Au lieu de cela, il crée un nouveau jeu de données dans votre espace de travail, que vous pouvez utiliser dans le flux de travail suivant. Vous pouvez également enregistrer le nouveau jeu de données nettoyé pour une nouvelle utilisation.

Ce module génère également une définition de la transformation utilisée pour nettoyer les valeurs manquantes. Vous pouvez réutiliser cette transformation sur les autres jeux de données qui ont le même schéma, à l’aide du module Appliquer une transformation.

Comment utiliser le nettoyage des données manquantes

Ce module vous permet de définir une opération de nettoyage. Vous pouvez également enregistrer l’opération de nettoyage afin de pouvoir l’appliquer ultérieurement à de nouvelles données. Consultez les liens suivants pour obtenir une description de la procédure création et d’enregistrement d’un processus de nettoyage :

Important

La méthode de nettoyage que vous utilisez pour gérer des valeurs manquantes peut affecter considérablement vos résultats. Nous vous recommandons de tester plusieurs méthodes. Prenez en compte la justification d’une utilisation d’une méthode particulière et la qualité des résultats.

Remplacer des valeurs manquantes

Chaque fois que vous appliquez le module nettoyer les données manquantes à un jeu de données, la même opération de nettoyage est appliquée à toutes les colonnes que vous sélectionnez. Par conséquent, si vous avez besoin de nettoyer des colonnes différentes à l’aide de différentes méthodes, utilisez des instances distinctes du module.

  1. Ajoutez le module Nettoyage des données manquantes à votre expérience et connectez le jeu de données qui a des valeurs manquantes.

  2. Pour Colonnes à nettoyer, choisissez les colonnes qui contiennent des valeurs manquantes et que vous souhaitez modifier. Vous pouvez choisir plusieurs colonnes, mais vous devez utiliser la même méthode de remplacement dans toutes les colonnes sélectionnées. Par conséquent, en général, vous devez nettoyer les colonnes de type chaîne et les colonnes numériques séparément.

    Par exemple, pour rechercher les valeurs manquantes dans toutes les colonnes numériques :

    1. Ouvrez le sélecteur de colonne, puis sélectionnez WITH RULES.

    2. Pour BEGIN WITH, sélectionnez NO COLUMNS.

      Vous pouvez également commencer avec ALL COLUMNS puis exclure des colonnes. Initialement, les règles ne sont pas affichées si vous cliquez d’abord sur ALL COLUMNS, mais vous pouvez cliquer sur NO COLUMNS puis cliquez de nouveau sur ALL COLUMNS pour démarrer avec toutes les colonnes et filtrer (exclure) les colonnes selon leur nom, type de données, ou index de colonnes.

    3. Pour Inclure, sélectionnez Type de colonne dans la liste déroulante, puis sélectionnez Numérique, ou un type numérique plus spécifique.

    N’importe quelle méthode de nettoyage ou de remplacement que vous choisissez doit être applicable à toutes les colonnes sélectionnées. Si les données dans n’importe quelle colonne sont incompatibles avec l’opération spécifiée, le module renvoie une erreur et arrête l’expérience.

  3. Pour rapport minimal des valeurs manquantes, spécifiez le nombre minimal de valeurs manquantes requis pour l’opération à effectuer.

    Vous utilisez cette option conjointement avec le rapport maximal des valeurs manquantes pour définir les conditions sous lesquelles une opération de nettoyage est effectuée sur le jeu de données. S’il existe trop ou trop peu de lignes qui sont des valeurs manquantes, l’opération ne peut pas être effectuée.

    Le nombre que vous entrez représente le rapport des valeurs manquantes pour toutes les valeurs dans la colonne. Par défaut, la propriété rapport minimal des valeurs manquantes est définie sur 0. Cela signifie que les valeurs manquantes sont nettoyées même s’il n’y a qu’une seule valeur manquante. Pour obtenir un exemple d’utilisation de cette option, consultez définition d’un seuil pour les opérations de nettoyage.

    Avertissement

    Cette condition doit être remplie par chaque colonne afin que l’opération spécifiée soit appliquée. Par exemple, supposons que vous avez sélectionné trois colonnes et défini le rapport minimal des valeurs manquantes sur 0,2 (20 %), mais qu’une seule colonne possède 20 % de valeurs manquantes. Dans ce cas, l’opération de nettoyage s’appliquera uniquement à la colonne ayant plus de 20 % de valeurs manquantes. Par conséquent, les autres colonnes resteront inchangées.

    Si vous avez un doute à propos de valeurs manquantes qui auraient été modifiées ou non, sélectionnez l'option Générer la colonne d'indicateur des valeurs manquantes. Une colonne est ajoutée au jeu de données pour indiquer si chaque colonne répond ou non aux critères spécifiés pour les plages minimales et maximales.

  4. Pour rapport maximal des valeurs manquantes, spécifiez le nombre maximal de valeurs manquantes requis pour l’opération à effectuer.

    Par exemple, vous souhaitez peut-être effectuer la substitution des valeurs manquantes uniquement si 30 % ou moins des lignes contiennent des valeurs manquantes, tout en souhaitant laisser les valeurs si plus de 30 % des lignes ont des valeurs manquantes.

    Vous définissez le nombre comme le rapport des valeurs manquantes à toutes les valeurs dans la colonne. Par défaut, le rapport maximal des valeurs manquantes est défini sur 1. Cela signifie que les valeurs manquantes sont nettoyées même si 100 % des valeurs dans la colonne sont manquantes.

    Notes

    Lorsque vous définissez un seuil à l’aide des options ratio de valeur manquante minimale ou taux de valeur manquant maximum, l’opération de nettoyage ne peut pas être effectuée si même une des colonnes sélectionnées ne répond pas aux critères.

  5. Comme Mode de nettoyage, sélectionnez l’une des options suivantes pour le remplacement ou la suppression des valeurs manquantes :

    • Remplacer à l’aidede la souris : pour chaque valeur manquante, cette option attribue une nouvelle valeur, qui est calculée à l’aide d’une méthode décrite dans la documentation statistique « multivariable d’imputation à l’aide d’équations chaînées » ou « plusieurs imputations par des équations chaînées ». Avec une méthode d’imputation multiple, chaque variable avec des données manquantes est modélisée de manière conditionnelle à l’aide des autres variables des données avant de renseigner les valeurs manquantes. En revanche, dans une seule méthode d’imputation (telle que le remplacement d’une valeur manquante par une moyenne de colonne), une seule passe est effectuée sur les données pour déterminer la valeur de remplissage.

      Toutes les méthodes d’imputation introduisent une erreur ou un biais, mais plusieurs conversions permettent de mieux simuler le processus de génération des données et la distribution de probabilité des données.

      Pour obtenir une présentation générale des méthodes de gestion des valeurs manquantes, consultez données manquantes : état de l’art. Schafer et Graham, 2002.

      Avertissement

      Cette option ne peut pas être appliquée à des colonnes complètement vides. Ces colonnes doivent être supprimées ou transmises à la sortie en l'état.

    • Valeur de substitution personnalisée : utilisez cette option pour spécifier une valeur d’espace réservé (par exemple, la valeur 0 ou N/D) qui s’applique à toutes les valeurs manquantes. La valeur que vous spécifiez comme remplacement doit être compatible avec le type de données de la colonne.

    • Remplacer par moyenne : calcule la moyenne de la colonne et l’utilise comme valeur de remplacement pour chaque valeur manquante dans la colonne.

      S’applique uniquement aux colonnes ayant des types de données Entier, Double ou Booléen. Pour plus d’informations, consultez la section Notes techniques .

    • Remplacer par médiane : calcule la valeur médiane de la colonne et l’utilise comme remplacement de toute valeur manquante dans la colonne.

      S’applique uniquement aux colonnes ayant des types de données Entier ou Double. Pour plus d’informations, consultez la section Notes techniques .

    • Remplacer par mode : calcule le mode de la colonne et l’utilise comme valeur de remplacement de toute valeur manquante dans la colonne.

      S’applique aux colonnes ayant des types de données Entier, Double, Booléen ou Catégorique. Pour plus d’informations, consultez la section Notes techniques .

    • Supprimer une ligne entière : supprime complètement n’importe quelle ligne du jeu de données comportant une ou plusieurs valeurs manquantes. Cela est utile si la valeur manquante peut être considérée comme manquante de façon aléatoire.

    • Supprimer la colonne entière : supprime complètement toute colonne dans le jeu de données avec une ou plusieurs valeurs manquantes.

    • Remplacer à l’aide de l’outil probabiliste PCA: remplace les valeurs manquantes à l’aide d’un modèle linéaire qui analyse les corrélations entre les colonnes et évalue une approximation de dimensions faible des données, à partir de laquelle les données complètes sont reconstruites. La réduction de dimensionnalité sous-jacente est une forme probabiliste de l'analyse en composantes principales (ACP). Elle implémente une variante du modèle proposé par Tipping et Bishop dans la revue « Journal of the Royal Statistical Society, Series B 21(3), 611–622 ».

      Par rapport aux autres options (telles que la méthode MICE), cette option présente l'avantage de ne pas nécessiter l'application de prédicteurs à chaque colonne. Au lieu de cela, elle effectue une approximation de la covariance du jeu de données complet. Par conséquent, elle peut offrir de meilleures performances pour les jeux de données qui ont des valeurs manquantes dans de nombreuses colonnes.

      Les principales limitations de cette méthode sont qu'elle développe des colonnes catégorielles en indicateurs numériques et qu'elle calcule une matrice de covariance dense des données résultantes. De plus, cette méthode n'est pas optimisée pour les représentations éparses. Pour ces raisons, les jeux de données avec un grand nombre de colonnes et/ou les grands domaines par catégorie (des dizaines de milliers) ne sont pas pris en charge en raison de la consommation d'espace prohibitif.

      Conseil

      N’oubliez pas que la méthode que vous choisissez est appliquée à toutes les colonnes de la sélection. Par conséquent, si vous souhaitez remplacer certaines valeurs manquantes par des zéros dans certaines colonnes, mais insérer un espace réservé dans d’autres colonnes, vous devez utiliser l' option Sélectionner des colonnes dans le jeu de données pour séparer les données et utiliser différentes instances du module nettoyer les données manquantes .

  6. L’option Valeur de remplacement est disponible si vous avez sélectionné l’option Valeur de substitution personnalisée. Tapez une nouvelle valeur à utiliser comme valeur de remplacement pour toutes les valeurs manquantes dans la colonne.

    Notez que vous pouvez utiliser cette option uniquement dans les colonnes ayant des types de données Entier, Double, Booléen ou Date. Pour les colonnes de date, la valeur de remplacement peut également être saisie comme le nombre de graduations de 100 nanosecondes depuis le 1/1/0001 12:00 a.m.

  7. Générer une colonne d’indicateur de valeurs manquantes : sélectionnez cette option si vous voulez indiquer si les valeurs de la colonne répondent ou non aux critères de nettoyage des valeurs manquantes. Cette option est particulièrement utile lorsque vous mettez en place une nouvelle opération de nettoyage et que vous souhaitez vous assurer qu’il fonctionne comme prévu.

  8. Exécutez l’expérience ou sélectionnez le module nettoyer les données manquantes , puis cliquez sur exécuter la sélection.

Résultats

Le module renvoie deux sorties :

  • Jeu de données nettoyées : un jeu de données composé des colonnes sélectionnées, avec des valeurs manquantes gérées comme spécifié, ainsi qu’une colonne d’indicateur, si vous avez sélectionné cette option.

    Les colonnes non sélectionnées pour le nettoyage sont également « transmises ».

  • Transformation du nettoyage : une transformation de données utilisée pour le nettoyage, qui peut être enregistrée dans votre espace de travail et appliquée ultérieurement à de nouvelles données.

Appliquer une opération de nettoyage enregistrée à de nouvelles données

Si vous devez répéter les opérations de nettoyage souvent, nous vous recommandons d’enregistrer votre recette pour le nettoyage des données comme une transformation, pour le réutiliser avec le même jeu de données. L’enregistrement d’une transformation de nettoyage est particulièrement utile si vous devez réimporter et nettoyer fréquemment des données ayant le même schéma.

  1. Ajoutez le module Appliquer une transformation à votre expérience.

  2. Ajoutez le jeu de données que vous souhaitez nettoyer et connectez le jeu de données au port d’entrée droit.

  3. Développez le groupe transformations dans le volet gauche de Studio (classique). Recherchez la transformation enregistrée et la faire glisser vers l’expérience.

  4. Connectez la transformation enregistrée au port d’entrée gauche de Appliquer une transformation.

    Lorsque vous appliquez une transformation enregistrée, vous ne pouvez pas sélectionner les colonnes auxquelles elle est appliquée. Cela est dû au fait que la transformation a déjà été définie et s’applique automatiquement aux types de données spécifiés dans l’opération d’origine.

    Toutefois, supposons que vous avez créé une transformation sur un sous-ensemble de colonnes numériques. Vous pouvez appliquer cette transformation pour un jeu de données des types de colonne mixtes sans déclencher d’erreur, car les valeurs manquantes sont modifiés uniquement dans les colonnes numériques correspondantes.

  5. Exécutez l’expérience.

Exemples

Pour obtenir des exemples d’utilisation de ce module dans l' Azure ai Gallery:

Notes techniques

Cette section contient les détails de l’implémentation, ainsi que les problèmes connus et les questions les plus fréquentes.

  • Une erreur se produit si l'option moyenne ou médiane est utilisée lorsque des colonnes de chaîne sont sélectionnées. Si vous devez traiter des colonnes de types de données différents, créez deux instances de Clean Missing Data.

  • Lors du remplacement de valeurs manquantes par une valeur moyenne dans les colonnes avec les types de données booléen, entier, DateTime ou TimeSpan, la colonne est d’abord convertie en nombres à virgule flottante, la moyenne est calculée, puis le résultat est arrondi à la valeur la plus proche du type de données d’origine.

  • Lorsque vous tapez une valeur de remplacement, la valeur doit être compatible avec le type de données dans la colonne sélectionnée.

  • Les valeurs de NaN , Inf et –Inf sont autorisées pour les colonnes dont le type de données est double.

  • Lorsque vous utilisez la méthode MICE, la valeur de remplacement est prédite à l'aide du modèle MICE formé.

  • L’utilisation de l' optionnettoyer les données manquantes peut réinitialiser d’autres types de colonnes. Si vos données contiennent d’autres types de colonnes, comme des étiquettes, utilisez modifier les métadonnées pour corriger les types de colonne.

Restrictions sur l’utilisation des transformations de nettoyage

Les restrictions suivantes s’appliquent lorsque vous utilisez une transformation enregistrée (basée sur des données manquantes propres) dans de nouvelles données :

  • Une transformation enregistrée ne peut pas générer de valeurs d’indicateur, même si cette option a été utilisée dans l’opération de nettoyage d’origine. Tenez compte des valeurs d’indicateur les plus utiles pour tester une nouvelle transformation.

  • La transformation ne calcule pas les nouvelles valeurs en fonction du nouveau DataSet. En d’autres termes, si vous avez utilisé nettoyer les données manquantes sur le DataSet A et généré une valeur moyenne de 0,5, cette même valeur serait appliquée comme moyenne pour remplacer les valeurs manquantes dans le jeu de données b, quelles que soient les valeurs réelles du DataSet b.

  • Le type de données des colonnes dans le nouveau DataSet doit correspondre au type de données des colonnes sur lesquelles la transformation a été créée à l’origine. Une erreur est générée si des opérations sont effectuées sur la colonne qui modifie implicitement le type de données.

    Par exemple, supposons que vous créez une moyenne pour une colonne de données de type entier [col1] et que vous enregistriez la transformation. Vous souhaitez maintenant appliquer la transformation de nettoyage à une copie de [col1] qui a été ajustée à l’aide d’une formule, telle que ([col1]/1,5). Pour vous assurer que le résultat est un entier, vous arrondissez le résultat, mais vous obtenez toujours une erreur quand vous appliquez la transformation. Toutefois, si vous ajustez la valeur à l’aide d’une formule telle que ([Col 1] * 10), aucune erreur n’est générée.

    Pour éviter de tels problèmes, utilisez modifier les métadonnées pour réinitialiser explicitement le type de données sur entier. En général, les opérations dans le module appliquer un opérateur mathématique modifient implicitement les colonnes numériques en double .

Définition et interprétation des valeurs de seuil

Lorsque vous spécifiez un seuil pour les opérations de nettoyage à l’aide des options ratio de valeur manquant minimum ou taux de valeur manquant maximal, les résultats peuvent être inattendus ou confus. Pour illustrer le fonctionnement des options pour les valeurs maximale et minimale manquantes, nous avons fourni des exemples de l’exemple de jeu de données prix des véhicules , qui contient de nombreuses colonnes avec des valeurs manquantes.

Le tableau suivant indique le nombre de valeurs manquantes pour plusieurs colonnes de ce jeu de données, ainsi que le rapport des valeurs manquantes calculées sur le jeu de données. Le rapport des valeurs manquantes (dans la colonne la plus à droite) est la valeur qui serait utilisée pour évaluer le jeu de données par rapport aux valeurs de seuil spécifiées.

Supposons que vous définissez le ratio minimal des valeurs manquantes sur 0,019 et que vous définissez le ratio nombre maximal de valeurs manquantes sur 0,020. À partir de la table de valeurs suivante, certaines colonnes répondent aux critères de seuil, et d’autres non :

  • Les colonnes bore et stroke répondent aux critères de seuil.
  • Les colonnes normalized-losses et compression-ratio ne répondent pas aux critères de seuil.
Nom de la colonne Nombre de valeurs manquantes Rapport des valeurs manquantes
Pertes normalisées 41 0,2
Trou 4 0,019512195
Trait 4 0,019512195
Taux de compression 0 0

Étant donné que certaines colonnes de la sélection ne répondent pas aux critères spécifiés, aucune opération de nettoyage n’a été effectuée sur une colonne. Pour vous aider à déterminer ce qui s’est passé, le module retourne la valeur false dans les deux colonnes d’indicateur, bore_IsMissing et stroke_IsMissing .

Toutefois, si vous repassez le seuil à la valeur par défaut 0 pour le ratio minimal des valeurs manquantes et 1 pour le ratio de valeurs manquantes, une colonne d’indicateur est retournée pour toutes les colonnes sélectionnées et l’opération spécifiée est effectuée.

Conseil

Si vous n’êtes pas certain de savoir si le nettoyage de la valeur manquante fonctionne comme prévu, sélectionnez l’option générer la colonne d’indicateur de valeur manquante .

Problèmes connus

Si vous utilisez la méthode de la souris pour nettoyer les données, puis traiter un DataSet qui contient des valeurs manquantes, vous pouvez obtenir l’erreur suivante : «exception de la bibliothèque de bibliothèque AFx : le modèle n’est pas formé. (Erreur 1000)»

Cette erreur se produit uniquement lorsque la méthode de la souris est sélectionnée et si le jeu de données d’apprentissage ne contient pas de valeurs manquantes, mais que le jeu de données de test le fait.

Entrées attendues

Nom Type Description
Dataset Table de données Jeu de donnés à nettoyer

Paramètres du module

Nom Plage Type Default Description
Colonnes à nettoyer Quelconque ColumnSelection Tous Sélectionnez les colonnes auxquelles appliquer l'opération de nettoyage des valeurs manquantes.
Rapport minimal des valeurs manquantes [0.0;1.0] Float 0.0 Nettoie uniquement la colonne dont le rapport des valeurs manquantes est supérieur à la valeur spécifiée, en dehors d’un ensemble de colonnes sélectionnées.
Rapport maximal des valeurs manquantes [0.0;1.0] Float 1.0 Permet de nettoyer uniquement les colonnes dont le rapport des valeurs manquantes est inférieur à la valeur spécifiée, même si toutes les colonnes sont sélectionnées.
Mode de nettoyage Liste Gestion de stratégie Valeur de substitution personnalisée Choisissez un algorithme à appliquer pour le nettoyage des valeurs manquantes.
Valeur de remplacement Quelconque String "0" Tapez une valeur à utiliser à la place des valeurs manquantes.

Cette valeur est facultative.
Colonnes avec toutes les valeurs manquantes Quelconque ColumnsWithAllValuesMissing Supprimer Indiquez si les colonnes avec toutes les valeurs manquantes doivent être conservées dans la sortie.
Générer la colonne d'indicateur des valeurs manquantes Quelconque Boolean false Permet de générer une colonne qui indique les lignes qui ont été nettoyées.
Nombre d'itérations [1;10] Integer 5 Spécifiez le nombre d'itérations à effectuer avec la méthode MICE.
Nombre d'itérations pour la prédiction PCA [1 ; 50] Integer 10 Spécifiez le nombre d'itérations à effectuer avec la prédiction ACP.

Sorties

Nom Type Description
Jeu de données nettoyées Table de données Jeu de données nettoyées
Transformation de nettoyage Interface ITransform Transformation à transférer au module Appliquer une transformation afin de nettoyer les nouvelles données

Exceptions

Exception Description
Erreur 0002 Une exception se produit si un ou plusieurs paramètres n'ont pas pu être analysés, ni convertis du type spécifié au type requis par le type de la méthode cible.
Erreur 0003 Une exception se produit si un ou plusieurs jeux de données d'entrée ont la valeur Null ou sont vides.
Erreur 0008 Une exception se produit si un paramètre n'est pas dans la plage.
Erreur 0013 Une exception se produit si l'apprenant qui a été transmis au module a un type non valide.
Erreur 0018 Une exception se produit si le jeu de données d'entrée n'est pas valide.
Erreur 0039 Une exception se produit en cas d'échec de l'opération.

pour obtenir la liste des erreurs spécifiques aux modules Studio (classiques), consultez Machine Learning codes d’erreur.

pour obtenir la liste des exceptions d’api, consultez Machine Learning les Codes d’erreur de l' api REST.

Voir aussi

Manipulation
Transformation des données
Liste alphabétique des modules