Partager via


Transformation de données-Learning avec des nombres

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.

cet article décrit les modules de Machine Learning Studio (classic) qui prennent en charge les caractérisation basés sur le nombre.

Notes

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

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

Learning avec des nombres est un moyen efficace de créer un ensemble compact de fonctionnalités de dataset basées sur le nombre de valeurs. Vous pouvez utiliser les modules de cette catégorie pour créer un ensemble de nombres et de fonctionnalités. Plus tard, vous pouvez mettre à jour les nombres et les fonctionnalités pour tirer parti des nouvelles données, ou fusionner deux jeux de données de nombre.

À propos des caractérisation basés sur le nombre

L’idée de base de la caractérisation basée sur le nombre est qu’en calculant des nombres, vous pouvez rapidement et facilement obtenir un résumé des colonnes qui contiennent les informations les plus importantes. Le module compte le nombre d’occurrences d’une valeur, puis fournit ces informations en tant que fonctionnalité pour l’entrée dans un modèle.

Imagine que vous validez une transaction de carte de crédit. Une information cruciale est l’origine de cette transaction. L’un des encodages les plus courants de l’origine de la transaction est le code postal. Cela signifie que vous devez potentiellement prendre en compte jusqu'à 40 000 codes postaux et autres codes géographiques. Votre modèle est-il capable d'apprendre 40 000 paramètres supplémentaires ? Si vous lui donnez cette capacité, disposez-vous de suffisamment de données d’apprentissage pour empêcher le surajustement ?

Si vous avez de bonnes données, avec un grand nombre d’échantillons, cette granularité locale fine peut être puissante. Toutefois, si vous n’avez qu’un seul échantillon d’une transaction frauduleuse, d’une petite localité, cela signifie-t-il que toutes les transactions de ce lieu sont incorrectes ou que vous n’avez pas assez de données ?

Une solution consiste à apprendre avec des nombres. Au lieu d’introduire 40 000 fonctionnalités supplémentaires, vous pouvez observer les nombres et les proportions de fraude pour chaque code postal. En utilisant ces nombres en tant que fonctionnalités, vous pouvez obtenir des informations sur la force de la preuve pour chaque valeur. En outre, en codant les statistiques pertinentes des nombres, l’apprenante peut utiliser les statistiques pour décider quand modifier leur approche et utiliser plutôt d’autres fonctionnalités pour obtenir les informations.

L’apprentissage basé sur le nombre est attrayant pour de nombreuses raisons. Avec l’apprentissage basé sur le nombre, vous avez moins de fonctionnalités, ce qui nécessite moins de paramètres. Moins de paramètres accélèrent l’apprentissage, la prédiction plus rapide, les prédictions plus petits et le risque d’dépasser.

Comment les fonctionnalités basées sur le nombre sont créées

Un exemple de base peut aider à montrer comment les fonctionnalités basées sur le nombre sont créées et appliquées. Supposons que vous disposiez du tableau suivant, avec des étiquettes et des entrées. Chaque cas (ou ligne ou exemple) a un ensemble de valeurs dans les colonnes. Dans cet exemple, les valeurs sont A et B.

Colonne d'étiquette Valeur d'entrée
0 A
0 Un
1 A
0 B
1 B
1 B
1 B

Voici les étapes à suivre pour créer des fonctionnalités basées sur le nombre :

  1. Pour un ensemble spécifique de valeurs, recherchez tous les autres cas dans ce DataSet qui ont la même valeur. Dans ce cas, il existe trois instances de A et quatre instances de B.
  2. Comptez l’appartenance à une classe de chaque valeur en tant que fonctionnalité en soi. Dans ce cas, vous disposez d’une petite matrice : il existe deux cas où A = 0 ; un cas où A = 1 ; un cas où B = 0 ; et trois cas où B = 1.
  3. Sur la base de cette matrice, vous bénéficiez d’une variété de fonctionnalités basées sur le nombre. Celles-ci incluent un calcul du ratio journal-chances et des nombres pour chaque classe cible. Le tableau de la section suivante affiche les données.

Exemple de table de fonctionnalités basées sur le nombre

Étiquette 0_0_Class000_Count 0_0_Class001_Count 0_0_Class000_LogOdds 0_0_IsBackoff
0 2 1 0,510826 0
0 2 1 0,510826 0
1 2 1 0,510826 0
0 1 3 -0,8473 0
1 1 3 -0,8473 0
1 1 3 -0,8473 0
1 1 3 -0,8473 0

Exemples

en cours d' utilisation Machine Learning pour créer des modèles de prédictions publicitaires, l’équipe Microsoft Machine Learning fournit une procédure pas à pas détaillée sur la façon d’utiliser les nombres dans Machine Learning. L’article compare l’efficacité de la modélisation basée sur le nombre à d’autres méthodes.

Notes techniques

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

Mode de calcul de la valeur de perte de journal

La valeur de la perte de journal n’est pas le journal des chances brut. Dans ce cas, la distribution précédente est utilisée pour lisser le calcul des chances de journalisation.

Supposons que vous ayez un jeu de données qui est utilisé pour la classification binaire. Dans ce jeu de données, la fréquence précédente pour la classe 0 est p_0 , et la fréquence antérieure pour la classe 1 est p_1 = 1 – p_0 . Pour un exemple spécifique d’apprentissage, le nombre pour la classe 0 est x_0 , et le nombre pour la classe 1 est x_1 .

Dans ces hypothèses, les chances de journalisation sont calculées en tant que LogOdds = Log(x0 + c * p0) – Log (x1 + c\p1) , où c est le coefficient précédent, qui peut être défini par l’utilisateur. La fonction log utilise la base naturelle.

En d’autres termes, pour chaque classe i :

Log_odds[i] = Log( (count[i] + prior_coefficient * prior_frequency[i]) / (sum_of_counts - count[i]) + prior_coefficient \* (1 - prior_frequency[i]))

Si le coefficient antérieur est positif, les chances de journalisation peuvent être différentes de Log(count[i] / (sum_of_counts – count[i])) .

Pourquoi les chances de journalisation ne sont pas calculées pour certains éléments

Par défaut, tous les éléments dont le nombre est inférieur à 10 sont collectés dans un seul compartiment appelé « poubelle ». Vous pouvez modifier cette valeur à l’aide de l’option seuil de la poubelle dans le module modifier les paramètres de la table de nombres .

Liste des modules

la catégorie Learning avec nombre comprend les modules suivants :

  • Transformation de comptage de build: crée une table de nombres et des fonctionnalités basées sur le nombre à partir d’un DataSet, puis enregistre la table et les fonctionnalités en tant que transformation.
  • Export Count table: exporte une table de nombres à partir d’une transformation de comptage. Ce module prend en charge la compatibilité descendante avec les expériences qui créent des fonctionnalités basées sur le nombre en utilisant la table de nombre de builds (déconseillée) et le nombre d’Caractériseur comptage (déconseillées).
  • Import Count table: importe une table de nombres existante. Ce module prend en charge la compatibilité descendante avec les expériences qui créent des fonctionnalités basées sur le nombre en utilisant la table de nombre de builds (déconseillée) et le nombre d’Caractériseur comptage (déconseillées). Le module prend en charge la conversion de tables de nombres en transformations de nombre.
  • Fusion Count Transform: fusionne deux ensembles de fonctionnalités basées sur les nombres.
  • Modifier les paramètresde la table de nombres : modifie les fonctionnalités basées sur le nombre qui sont dérivées d’une table de nombres existante.

Voir aussi