Partager via


Grouper des données dans des compartiments

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.

Place les données numériques dans des compartiments

Catégorie : Mettre à l’échelle et réduire

Notes

S’applique à : Machine Learning Studio (classique) 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 Regrouper les données dans des compartiments dans Machine Learning Studio (classique), pour regrouper des nombres ou modifier la distribution des données continues.

Le module Grouper des données dans des compartiments prend en charge plusieurs options de compartimentage des données. Vous pouvez modifier la manière dont les bords des compartiments sont définis et celle dont les valeurs sont réparties dans les compartiments. Vous pouvez par exemple :

  • Tapez manuellement une série de valeurs pour définir les limites des compartiments.
  • Calculez les scores d’entropie pour déterminer des valeurs d’informations pour chaque plage afin d’optimiser les compartiments dans le modèle prédictif. + Affecter des valeurs à des compartiments à l’aide de quantiles ou de rangs centiles.
  • Contrôler le nombre de valeurs dans chaque bac peut également être contrôlé.
  • Forcez une répartition uniforme des valeurs dans les compartiments.

Informations supplémentaires sur le compartimentage et le regroupement

La binning ou le regroupement de données (parfois appelée quantisation) est un outil important pour préparer des données numériques pour le Machine Learning et est utile dans les scénarios comme ceux-ci :

  • Une colonne de nombres continus comprend trop de valeurs uniques pour être modélisée efficacement. Vous devez donc attribuer automatiquement ou manuellement les valeurs à des groupes pour créer un ensemble plus petit de plages discrètes.

    Par exemple, vous pouvez utiliser des scores d’entropie générés par les données de groupe dans des compartiments pour identifier les regroupements optimaux de valeurs de données et utiliser ces groupes comme fonctionnalités dans votre modèle.

  • Remplacez une colonne de nombres par des valeurs catégorielles représentant des plages spécifiques.

    Par exemple, vous pouvez regrouper des valeurs dans une colonne Âge en spécifiant des plages personnalisées, telles que 1-15, 16-22, 23-30, etc. pour les données démographiques des utilisateurs.

  • Un jeu de données comprend quelques valeurs extrêmes, bien distinctes de la plage attendue, et ces valeurs ont une influence démesurée sur le modèle formé. Pour atténuer le biais dans le modèle, vous pouvez transformer les données en une distribution uniforme, à l’aide de la méthode quantiles (ou égale hauteur).

    Avec cette méthode, le module Grouper des données dans des compartiments détermine les emplacements et largeurs de compartiments optimaux pour garantir que chaque compartiment contienne approximativement le même nombre d’échantillons. Ensuite, en fonction de la méthode de normalisation choisie, les valeurs dans les compartiments sont transformées en centiles ou mappées à un numéro de compartiment.

Exemples de compartimentage

Le diagramme suivant illustre la distribution de valeurs numériques avant et après compartimentage avec la méthode des quantiles. Notez qu’en comparaison des données brutes à gauche, les données ont été compartimentées et transformées en une échelle d’unité normale.

raw data and data binned and normalized

Une autre approche du binning est illustrée dans l’échantillon de détection du cancer du sein , dans lequel les données de groupe dans les compartiments sont utilisées pour affecter des patients à différents groupes de contrôle et de test, pour garantir que chaque groupe a un nombre égal de patients.

Compte il existe un grand nombre de façons, toutes personnalisables, de regrouper des données, nous vous recommandons d’expérimenter avec différentes méthodes et valeurs. La section Exemples contient des liens vers des exemples d’expériences qui montrent comment utiliser les différents algorithmes de compartimentage.

Comment configurer le module Grouper des données dans des compartiments

  1. Ajoutez le module Group Data Into Bins à votre expérience dans Studio (classique). Vous trouverez ce module dans la catégorie Transformation des données, sous Mise à l’échelle et Réduction.

  2. Connectez le jeu de données contenant des données numériques à compartimenter. La quantification ne peut être appliquée qu’à des colonnes contenant des données numériques.

    Si le jeu de données contient des colonnes non numériques, utilisez le module Sélectionner des colonnes dans le jeu de données pour sélectionner un sous-ensemble de colonnes à utiliser.

  3. Spécifiez le mode de compartimentage. Le mode de compartimentage détermine d’autres paramètres. Veillez donc à sélectionner d’abord l’option mode Binning ! Les types de compartimentages suivants sont pris en charge :

    Entropy MDL : cette méthode nécessite de sélectionner la colonne que vous souhaitez prédire et la ou les colonnes que vous souhaitez regrouper dans des compartiments. Il effectue ensuite un passage sur les données et tente de déterminer le nombre de bacs qui réduit l’entropie. En d’autres termes, il choisit un certain nombre de compartiments qui permettent à la colonne de données de prédire au mieux la colonne cible. Il retourne ensuite le numéro bin associé à chaque ligne de vos données dans une colonne nommée <colname>quantized.

    Si la méthode Entropy MDL ne peut pas trouver un moyen de compartimenter initialement les données pour effectuer une bonne prédiction, elle affecte toutes les données à un bac uniforme. Cela ne signifie pas que la colonne n’est pas un bon prédicteur. Dans ce cas, vous pouvez utiliser d’autres méthodes pour rechercher le nombre de bacs qui réduisent l’entropie et améliorer les données.

    Cette méthode ne retourne pas les scores d’entropie réels.

    Quantiles : la méthode quantile attribue des valeurs aux compartiments en fonction de classements centiles. Les quantiles sont des compartimentages de hauteur égale.

    Largeur égale : Avec cette option, vous devez spécifier le nombre total de compartiments. Les valeurs de la colonne de données sont placées dans les compartiments de telle sorte que chaque compartiment présente le même intervalle entre les valeurs de début et de fin. Par conséquent, certains compartiments peuvent comporter plus de valeurs si des données sont agglutinées autour d’un certain point.

    Bords personnalisés : vous pouvez spécifier les valeurs qui marquent le début de chaque compartiment. La valeur de bord est toujours la limite inférieure du compartiment. Par exemple, supposons que vous souhaitez regrouper des valeurs dans deux compartiments, l’un avec les valeurs supérieures à 0, et l’autre avec les valeurs inférieures ou égales à 0. Dans ce cas, pour les bords bin, vous devez taper 0 dans la liste séparée par des virgules des bords bin. La sortie du module serait 1 et 2, indiquant l’index du compartiment pour chaque valeur de ligne.

    Equal Width with Custom Start and Stop: This method is like the Equal Width option, but you can specify both lower and upper bin boundaries.

  4. Nombre de compartiments : si vous utilisez les modes de compartimentage Entropy MDL, Quantiles et Largeur égale , utilisez cette option pour spécifier le nombre de compartiments ou de quantiles que vous souhaitez créer.

  5. Pour Colonnes à compartimenter, utilisez le sélecteur de colonne pour choisir les colonnes contenant les valeurs que vous voulez compartimenter. Les colonnes doivent contenir des données de type numérique.

    La même règle de compartimentage est appliquée à toutes les colonnes que vous choisissez. Par conséquent, si vous avez besoin de compartimenter certaines colonnes à l’aide d’une autre méthode, utilisez une instance distincte de Grouper des données dans des compartiments pour chaque ensemble de colonnes.

    Avertissement

    Si vous choisissez une colonne qui n’est pas d’un type autorisé, une erreur d’exécution est générée. Le module retourne une erreur dès qu’il trouve une colonne d’un type non autorisé. Si vous recevez une erreur, passez en revue toutes les colonnes sélectionnées. L’erreur ne répertorie pas toutes les colonnes non valides.

  6. Pour Mode de sortie, indiquez comment vous souhaitez sortir les valeurs quantifiées.

    • Append : crée une colonne avec les valeurs compartimentées et l’ajoute à la table d’entrée.

    • Inplace : remplace les valeurs d’origine par les nouvelles valeurs du jeu de données.

    • ResultOnly : retourne uniquement les colonnes de résultats.

  7. Si vous sélectionnez le mode de compartimentage Quantiles, utilisez l’option Normalisation par quantile pour déterminer la manière dont les valeurs sont normalisées avant le tri en quantiles. Notez que la normalisation des valeurs transforme les valeurs, mais n’affecte pas le nombre final de compartiments. Pour obtenir un exemple, consultez Effets de différentes méthodes de normalisation.

    Les types de normalisation suivants sont pris en charge :

    • Percent : les valeurs sont normalisées dans la plage [0,100]

    • PQuantile : les valeurs sont normalisées dans la plage [0,1]

    • QuantileIndex : les valeurs sont normalisées dans la plage [1,nombre de compartiments]

  8. Si vous choisissez l’option Bords personnalisés, tapez une liste de nombres séparés par des virgules à utiliser comme bords de compartiments dans la zone de texte Liste séparée par des virgules des bords de compartiments. Les valeurs indiquent le point qui divise les compartiments. Par conséquent, si vous tapez une valeur de bord de compartiment, deux compartiments sont générés. Si vous tapez deux valeurs de bords de compartiment, trois compartiments sont générés. Et ainsi de suite.

    Les valeurs doivent être triées dans l’ordre de création des compartiments, de la plus petite à la plus grande.

  9. Si vous utilisez l’option, Equal Width With Custom Start And Stop, vous devez spécifier les limites des bacs.

    Définissez la limite inférieure du premier bac en tapant une valeur dans la zone de texte De première position de bord .

    Définissez la limite inférieure du dernier bac en tapant une valeur dans la zone de texte Dernière position de bord .

  10. Étiqueter les colonnes comme catégorielles : sélectionnez cette option pour ajouter automatiquement un indicateur de métadonnées à la colonne des valeurs binned. L’indicateur de métadonnées indique que les colonnes quantifiées doivent être gérées en tant que variables catégorielles.

  11. Exécutez l’expérience, ou sélectionnez ce module, puis cliquez sur Exécuter sélectionné.

Résultats

Le module Grouper des données dans des compartiments retourne un jeu de données dans lequel chaque élément a été compartimenté conformément au mode spécifié.

Il retourne également une Transformation de compartimentage, qui peut être transmise au module Appliquer une transformation pour compartimenter de nouveaux échantillons de données en utilisant les mêmes modes et paramètres de compartimentage.

Pour voir comment la méthode de compartimentage fonctionne comme un prédicteur, vous pouvez cliquer sur la sortie du jeu de données de groupe vers des compartiments et comparer la colonne d’étiquette à la colonne binned. Si le regroupement vers des bacs est prédictif, les valeurs de la matrice sous onglet croisé doivent se concentrer dans quelques cellules.

Conseil

N’oubliez pas que, si vous utilisez un compartimentage sur vos données d’apprentissage, vous devez utiliser la même méthode compartimentage sur les données que vous utilisez à des fins de test et de prédiction. Cela inclut la méthode compartimentage, les emplacements des compartiments et les largeurs des compartiments.

Pour vous assurer que les données sont toujours transformées à l’aide de la même méthode de compartimentage, nous vous recommandons d’enregistrer les transformations de données utiles, puis de les appliquer à d’autres jeux de données, à l’aide du module Appliquer une transformation.

Exemples

Pour obtenir des exemples de la façon dont la quantisation est appliquée dans les scénarios de Machine Learning, consultez la galerie Azure AI :

Notes techniques

Cette section contient des détails, des conseils et des réponses aux questions fréquentes concernant l’implémentation.

Effets de différentes méthodes de normalisation

Si vous sélectionnez l’option, la normalisation quantile, les valeurs sont transformées avant de binning. Ainsi, la méthode que vous choisissez pour la normalisation a un effet fort sur les valeurs numériques.

Par exemple, le tableau suivant illustre la façon dont les valeurs d’une seule colonne, fLengthdu jeu de données du télescope sont transformées avec chacune des méthodes de normalisation. La colonne, , fLengtha été choisie de manière aléatoire pour l’illustration des valeurs de sortie de chaque option et n’a pas de distribution normale.

Source (fLength) pQuantile QuantileIndex Pourcentage
28.7967 0.363636 4 36.363636
31.6036 0.454545 5 45.454545
162.052 0.909091 10 90.909091
23.8172 0.272727 3 27.272727

Les résultats du binning sont similaires pour chaque méthode.

Le graphique suivant montre la distribution des valeurs dans la colonne avant et après le binning, à l’aide de la valeur par défaut de 10 bacs.

Comparison of Normalization Methods for Binning

Informations d’implémentation

  • Pendant la quantisation, chaque nombre est mappé à une corbeille en comparant sa valeur aux valeurs des arêtes de la corbeille.

    Par exemple, si la valeur est 1.5 et que les arêtes du bac sont 1, 2 et 3, l’élément est mappé au numéro 2 de la corbeille. La valeur 0.5 est mappée au numéro de bac 1 (le bac de flux inférieur), et la valeur 3.5 est mappée au numéro 4 du bac (le bac de dépassement).

  • Si la colonne à compartimenter (quantifier) est éparse, le décalage d'indice de compartiment (décalage quantile) est utilisé quand la colonne obtenue est remplie. Le décalage est choisi de sorte que les 0 épars sont toujours affectés à un compartiment d'indice 0 (autrement dit, le quantile de valeur 0).

  • Les zéros épars sont propagés de la colonne d'entrée vers la colonne de sortie.

  • Le traitement des colonnes denses génèrent toujours des résultats avec un indice de compartiment égal à 1 ; autrement dit, la valeur de quantile minimale est égale à la valeur minimale de la colonne. En même temps, le traitement d’une colonne éparse produit un résultat avec un index bin minimal variable (valeur quantile minimale).

  • Toutes les valeurs NaN et manquantes sont propagées de la colonne d'entrée vers la colonne de sortie. La seule exception est le cas où le module renvoie des indices de quantile. Dans ce cas, toutes les valeurs NaN sont promues à des valeurs manquantes.

  • Les indices de compartiment sont de base 1. C'est la convention naturelle pour les quantiles (1e quantile, 2e quantile et ainsi de suite). La seule exception est le cas où la colonne à compartimenter est éparse.

Entrées attendues

Nom Type Description
Dataset Table de données Jeu de données à analyser

Paramètres du module

Nom Plage Type Default Description
Mode de compartimentage List QuantizationMode Quantiles Choix d'une méthode de compartimentage
Colonnes à compartimenter n'importe laquelle ColumnSelection NumericAll Choix des colonnes à quantifier
Mode de sortie n'importe laquelle OutputTo Indication du mode de sortie des colonnes quantifiées
Marquer les colonnes comme catégorielles n'importe laquelle Boolean true Indication du marquage éventuel des colonnes de sortie comme étant catégorielles
Nombre de compartiments >=1 Integer 10 Spécification du nombre souhaité de compartiments
Normalisation par quantile n'importe laquelle BinningNormalization Choix de la méthode de normalisation des quantiles
Position du premier bord n'importe laquelle Float 0,0 Spécification de la valeur du premier bord de compartiment
Largeur de compartiment n'importe laquelle Float 0.5 Spécification d'une largeur de compartiment personnalisée
Position du dernier bord n'importe laquelle Float 1.0 Spécification de la valeur du dernier bord de compartiment
Liste séparée par des virgules des bords de compartiment n'importe laquelle String Saisie d'une liste séparée par des virgules des numéros à utiliser comme bords de compartiment

Sorties

Nom Type Description
Jeu de données quantifié Table de données Jeu de données avec colonnes quantifiées
Transformation par compartimentage Interface ITransform Transformation qui applique la quantification au jeu de données

Exceptions

Exception Description
Erreur 0003 Cette exception se produit si une ou plusieurs entrées sont null ou vide.
Erreur 0004 Une exception se produit si le paramètre est inférieur ou égal à une valeur spécifique.
Erreur 0011 Une exception se produit si l’argument du jeu de colonnes transmis ne s’applique à aucune des colonnes du jeu de données.
Erreur 0021 Une exception se produit si le nombre de lignes de certains jeux de données transmis au module est trop faible.
Erreur 0024 Une exception se produit si le jeu de données ne contient pas de colonne d’étiquette.
Erreur 0020 Une exception se produit si le nombre de colonnes de certains jeux de données transmis au module est trop faible.
Erreur 0038 Une exception se produit si le nombre d’éléments attendus doit être une valeur exacte mais ne l’est pas.
Erreur 0005 Une exception se produit si le paramètre est inférieur à une valeur spécifique.
Erreur 0002 Une exception se produit si un ou plusieurs paramètres n’ont pas pu être analysés ou convertis dans le type requis par le type de méthode cible.
Erreur 0019 Une exception se produit si la colonne contient des valeurs non triées alors que celles-ci devraient l’être.
Erreur 0039 Une exception se produit si l'opération a échoué.
Erreur 0075 Une exception se produit lorsqu’une fonction de regroupement non valide est utilisée lors de la quantification d’un jeu de données.

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

Pour obtenir la liste des exceptions d’API, consultez Machine Learning codes d’erreur de l’API REST.

Voir aussi

Scale and Reduce
Normaliser les données
Détourer les valeurs