Données numériques: normalisation

Après avoir examiné vos données à l'aide de techniques statistiques et de visualisation, vous devez transformer vos données de façon à faciliter l'entraînement de votre modèle efficacement. L'objectif de La normalisation consiste à transformer les caractéristiques à une échelle similaire. Prenons l'exemple des deux fonctionnalités:

  • La caractéristique X couvre la plage 154 à 24 917 482.
  • La caractéristique Y s'étend sur la plage 5 à 22.

Ces deux caractéristiques couvrent des plages très différentes. La normalisation peut manipuler X et Y afin qu'ils couvrent une plage similaire, peut-être de 0 à 1.

La normalisation offre les avantages suivants:

  • Aide les modèles à converger plus rapidement pendant l'entraînement. Lorsque des caractéristiques ont des plages différentes, la descente de gradient "rebond" et une convergence lente. Cela dit, les optimiseurs plus avancés comme Adagrad et Adam se prémunissent contre ce problème en en modifiant le taux d'apprentissage effectif au fil du temps.
  • Aide les modèles à déduire de meilleures prédictions. Lorsque les caractéristiques ont des plages différentes, le résultat les prédictions peuvent être moins utiles.
  • Elle permet d'éviter le "piège NaN" lorsque les valeurs des caractéristiques sont très élevées. NaN est l'abréviation de pas un nombre. Lorsqu'une valeur d'un modèle dépasse la limite de précision à virgule flottante, le système définit la valeur sur NaN à la place d'un nombre. Lorsqu'un nombre du modèle devient une valeur NaN, les autres nombres présents dans le modèle finit aussi par devenir une NaN.
  • Il permet au modèle d'apprendre des pondérations appropriées pour chaque caractéristique. Sans mise à l'échelle des caractéristiques, le modèle accorde trop d'attention aux caractéristiques dont la portée est large et qui n'accordent pas assez d'attention aux caractéristiques présentant plages étroites.

Nous recommandons de normaliser les caractéristiques numériques couvrant différentes tranches d'âge (âge et revenus, par exemple). Nous recommandons également de normaliser une seule caractéristique numérique couvrant un large éventail comme city population.

Examinez les deux caractéristiques suivantes:

  • La valeur la plus faible de la caractéristique A est -0,5 et la valeur la plus élevée est +0,5.
  • La valeur la plus faible de la caractéristique B est -5,0 et la valeur la plus élevée est +5,0.

Les caractéristiques A et B ont des durées relativement étroites. Cependant, la caractéristique B est 10 fois plus large que celui de la caractéristique A. Par conséquent :

  • Au début de l'entraînement, le modèle suppose que la caractéristique A est dix fois plus "importants" que la fonctionnalité B.
  • L'entraînement prendra plus de temps que prévu.
  • Le modèle qui en résulte peut ne pas être optimal.

Les dommages globaux liés à la non-normalisation seront relativement faibles. Toutefois, nous recommandons quand même de normaliser les caractéristiques A et B à la même échelle, par exemple de -1,0 à +1,0.

Prenons maintenant deux caractéristiques présentant une plus grande disparité des plages:

  • La valeur la plus faible de la caractéristique C est -1 et la valeur la plus élevée est +1.
  • La valeur la plus faible de la caractéristique D est +5 000 et la valeur la plus élevée est +1 000 000 000.

Si vous ne normalisez pas les caractéristiques C et D, il est probable que votre modèle ne soient pas optimales. De plus, l'entraînement prend beaucoup plus de temps converger, voire échouer complètement !

Cette section couvre trois méthodes de normalisation courantes:

  • mise à l'échelle linéaire
  • Scaling du score Z
  • scaling des journaux

Cette section aborde en outre clipping. Bien que cela ne soit pas vrai de normalisation : le rognage assimile des caractéristiques numériques incontrôlées dans pour produire de meilleurs modèles.

Mise à l'échelle linéaire

Scaling linéaire (le plus souvent raccourcie en mise à l'échelle) signifie convertir des valeurs à virgule flottante de leur plage naturelle dans une plage standard, généralement 0 à 1 ou -1 à +1.

Le scaling linéaire est recommandé lorsque toutes les conditions suivantes sont remplies:

  • Les limites inférieure et supérieure de vos données ne changent pas beaucoup au fil du temps.
  • La caractéristique contient peu ou pas d'anomalies, qui ne le sont pas extrême.
  • La caractéristique est distribuée de manière approximativement uniforme sur sa plage. Autrement dit, un histogramme afficherait à peu près même des barres pour la plupart des tranches d'âge.

Supposons que l'age humain soit une caractéristique. Le scaling linéaire est une bonne normalisation pour age, car:

  • Les limites inférieure et supérieure approximatives sont comprises entre 0 et 100.
  • age contient un pourcentage d'anomalies relativement faible. Seulement environ 0,3% des la population est supérieure à 100.
  • Bien que certains âges soient un peu mieux représentés que d'autres, un grand l'ensemble de données doit contenir suffisamment d'exemples de tous les âges.

Testez vos connaissances

Supposons que votre modèle comporte une caractéristique nommée net_worth qui contient le réseau de différentes personnes. Le scaling linéaire serait-il une bonne normalisation ? technique pour net_worth ? Pourquoi ?

Scaling du score Z

La note Z correspond au nombre d'écarts types entre une valeur et la moyenne. Par exemple, une valeur représentant 2 écarts types supérieurs à la moyenne a un score Z de +2,0. Une valeur correspondant à 1,5 écart type inférieur à la moyenne a un z-score de -1,5.

Représenter une caractéristique à l'aide d'une mise à l'échelle du score Z signifie que l'attribut de cette caractéristique est stocké Score Z dans le vecteur de caractéristiques. Par exemple, la figure suivante montre deux histogrammes:

  • À gauche, une distribution normale classique.
  • À droite, la même distribution normalisée par une mise à l'échelle du score Z.
Figure 4. Deux histogrammes affichant tous deux des distributions normales avec
           la distribution identique. Le premier histogramme, qui contient
           données, a une moyenne de 200 et un écart type de 30. Le deuxième
           l'histogramme, qui contient une version en cote Z de la première
           a une moyenne de 0 et un écart type de 1.
Figure 4. Données brutes (à gauche) et z-score (à droite) pour une valeur distribution.

La mise à l'échelle du score Z est également un bon choix pour des données comme celles présentées dans la figure suivante, qui ne présente qu'une distribution vaguement normale.

Figure 5. Deux histogrammes de forme identique, chacun affichant un
            grimpent jusqu'à un plateau, puis une descente relativement rapide est suivie d'une
            une dépréciation progressive. Un histogramme illustre
            la distribution des données brutes ; l'autre histogramme illustre
            des données brutes lorsqu'elles sont
normalisées par une mise à l'échelle du score Z.
            Les valeurs sur l'axe X des deux histogrammes sont très différentes.
            L'histogramme de données brutes s'étend sur le domaine 0 à 29 000, tandis que
            l'histogramme du score Z va de -1 à environ +4,8
Figure 5 : Données brutes (à gauche) et notation Z (à droite) pour une une distribution normale non classique.

La cote Z est un bon choix lorsque les données suivent une distribution normale ou une distribution un peu comme une distribution normale.

Notez que certaines distributions peuvent être normales plage, mais ils contiennent toujours des valeurs aberrantes extrêmes. Par exemple, presque toutes les points d'une caractéristique net_worth peuvent parfaitement correspondre à 3 écarts types, mais il peut s'agir, par exemple, de centaines d'écarts types à distance de la moyenne. Dans ces situations, vous pouvez combiner la mise à l'échelle de la cote Z une autre forme de normalisation (généralement le bornement) pour gérer cette situation.

Exercice: tester vos connaissances

Supposons que votre modèle s'entraîne sur une caractéristique nommée height qui contient l'adulte de dix millions de femmes. Le scaling du score Z serait-il une bonne normalisation ? technique pour height ? Pourquoi ?

Mise à l'échelle logarithmique

La mise à l'échelle logarithmique calcule le logarithme de la valeur brute. En théorie, le le logarithme peut être n'importe quelle base ; En pratique, le scaling des journaux calcule généralement logarithme naturel (ln).

La mise à l'échelle logarithmique est utile lorsque les données sont conformes à une distribution de loi d'alimentation. Pour être plus simple, la distribution d'une loi de pouvoir se présente comme suit:

  • Les valeurs faibles (X) sont très élevées (Y).
  • À mesure que les valeurs de X augmentent, celles de Y diminuent rapidement. Par conséquent, X aura des valeurs très faibles Y.

Les classifications de films sont un bon exemple de distribution d'une loi de puissance. Dans les figure, notez:

  • Certains films ont beaucoup de notes d'utilisateurs. (Les valeurs faibles de X sont élevées valeurs de Y.)
  • La plupart des films ont très peu de notes d'utilisateurs. (Les valeurs élevées de X sont faibles valeurs de Y.)

La mise à l'échelle des journaux modifie la distribution, ce qui permet d'entraîner un modèle pour obtenir de meilleures prédictions.

Figure 6. Deux graphiques comparant les données brutes au journal des données brutes.
            Le graphique de données brutes montre de nombreuses notes 
des utilisateurs dans la partie supérieure, suivies
            par une longue traîne. Le graphique du journal présente une distribution plus équitable.
Figure 6 : Comparer une distribution brute à son journal

Autre exemple, la vente de livres se conforme à une distribution basée sur une loi de puissance électrique pour les raisons suivantes:

  • La plupart des livres publiés en vendent un nombre infime, peut-être une ou deux cents.
  • Certains livres sont vendus à un nombre modéré d'exemplaires, par milliers.
  • Seules quelques meilleures ventes se vendent plus d'un million d'exemplaires.

Supposons que vous entraîniez un modèle linéaire pour trouver la relation de, par exemple, des couvertures de livres pour les ventes de livres. Un modèle linéaire entraîné sur des valeurs brutes trouver quelque chose sur les couvertures de livres qui se vendent au million d'exemplaires soit 10 000 fois plus puissant que les couvertures qui ne sont vendues que 100 exemplaires. Cependant, la mise à l'échelle consignée pour tous les chiffres de vente rend la tâche beaucoup plus réalisable. Par exemple, le journal de 100 est:

  ~4.6 = ln(100)

tandis que le logarithme de 1 000 000 est:

  ~13.8 = ln(1,000,000)

Ainsi, la logarithme de 1 000 000 est seulement trois fois plus grande que celle de 100. Vous pourriez imaginer la couverture d'un best-seller environ trois fois plus puissant (d'une manière ou d'une autre) qu'une minuscule couverture de livre.

Coupe

Le bornement est une technique pour minimiser l'influence des anomalies extrêmes. En bref, le bornement permet généralement (réduit) la valeur des anomalies jusqu'à une valeur maximale spécifique. Le rognage est un étrange, mais elle peut s'avérer très efficace.

Par exemple, imaginez un ensemble de données contenant une caractéristique nommée roomsPerPerson, qui représente le nombre de chambres (nombre total de chambres divisé en fonction du nombre d'habitants) pour différentes maisons. Le tracé suivant montre que plus 99% des valeurs des caractéristiques sont conformes à une distribution normale 1,8 et un écart type de 0,7). Toutefois, cette fonctionnalité contient quelques anomalies, dont certaines extrêmes:

Figure 7. Représentation graphique de roomsPerPerson, dans laquelle presque toutes les valeurs
            sont regroupées entre 0 et 4, mais il y a une très longue traîne
            jusqu'à 17 pièces par personne
Figure 7. C'est normal, mais pas tout à fait normal.

Comment pouvez-vous minimiser l'influence de ces anomalies extrêmes ? Eh bien, l'histogramme n'est pas une distribution équitable, une distribution normale ou une loi de puissance distribution. Que se passe-t-il si vous plafonnez ou restreignez la valeur maximale roomsPerPerson à une valeur arbitraire, par exemple 4,0 ?

Représentation graphique de roomsPerPerson, dans laquelle toutes les valeurs sont comprises entre 0 et
            4.0. Le tracé est en forme de cloche, mais la colline est anormale à 4,0
Figure 8 : Limitation des valeurs des caractéristiques à 4,0.

Le fait de rogner la valeur de la caractéristique à 4,0 ne signifie pas que votre modèle ignore tous des valeurs supérieures à 4,0. mais que toutes les valeurs qui étaient supérieures de la version 4.0 à la version 4.0. Cela explique cette étrange colline, située à la valeur 4,0. Malgré l'ensemble de caractéristiques mises à l'échelle est désormais plus utile que les données d'origine.

Attends une seconde ! Pouvez-vous vraiment réduire chaque valeur aberrante à une valeur supérieure arbitraire seuil ? Lors de l'entraînement d'un modèle, oui.

Vous pouvez également rogner les valeurs après avoir appliqué d'autres formes de normalisation. Par exemple, supposons que vous utilisiez une échelle de notation Z, mais que quelques anomalies aient des valeurs absolues bien supérieures à 3. Dans ce cas, vous pouvez:

  • Coupez les scores Z supérieurs à 3 pour obtenir exactement 3.
  • Divisez les scores Z inférieurs à -3 pour obtenir exactement -3.

Le rognage empêche votre modèle de surindexer des données sans importance. Toutefois, certaines valeurs aberrantes sont en fait importantes, donc rognez soigneusement les valeurs.

Résumé des techniques de normalisation

Technique de normalisationFormuleQuand l'utiliser
Mise à l'échelle linéaire $$ x' = \frac{x - x_{min}}{x_{max} - x_{min}} $$ Lorsque la caractéristique est répartie uniformément dans une plage fixe.
Scaling du score Z $$ x' = \frac{x - μ}{σ}$$ Lorsque la distribution des caractéristiques ne contient pas d'anomalies extrêmes.
Mise à l'échelle logarithmique $$ x' = log(x)$$ Lorsque la caractéristique est conforme à la loi de puissance.
Coupe Si x € > max$, définir $x' =
$max. Si x € < min$, définir $x' = $ min.
Lorsque la caractéristique contient des anomalies extrêmes.

Exercice: Tester vos connaissances

Quelle technique serait la plus adaptée pour normaliser une caractéristique avec la distribution suivante ?

Un histogramme affichant un cluster de données dont les valeurs sont comprises entre 0 et
          200 000. Le nombre de points de données augmente progressivement pour la plage
          de 0 à 100 000, puis passe de 100 000 à
          200 000.

Scaling du score Z
Les points de données sont généralement conformes à une distribution normale. La cote Z le scaling les forcera à se situer dans la plage -3 à +3.
Mise à l'échelle linéaire
Revoyez les discussions sur les techniques de normalisation présentées sur cette page, et réessayez.
Mise à l'échelle logarithmique
Revoyez les discussions sur les techniques de normalisation présentées sur cette page, et réessayez.
Coupe
Revoyez les discussions sur les techniques de normalisation présentées sur cette page, et réessayez.

Supposons que vous développiez un modèle qui prédit la productivité en fonction de la température mesurée à l'intérieur du centre de données. Presque toutes les valeurs temperature de votre ensemble de données tombent entre 15 et 30 (Celsius), à l'exception des suivantes:

  • Une ou deux fois par an, par temps extrêmement chaud, quelques valeurs comprises entre 31 et 45 sont enregistrées dans temperature.
  • Dans temperature, chaque 1 000e point est défini sur 1 000. et non la température réelle.

Quelle serait une technique de normalisation raisonnable temperature?

Limitez les valeurs aberrantes entre 31 et 45, mais supprimez les anomalies avec une valeur de 1 000

Les valeurs 1 000 correspondent à des erreurs et doivent être supprimées plutôt que rognés.

Les valeurs comprises entre 31 et 45 sont des points de données légitimes. Le rognage serait probablement une bonne idée pour ces valeurs, en supposant que l'ensemble de données ne contient pas assez d'exemples dans cette plage de températures entraîner le modèle à faire de bonnes prédictions. Cependant, lors de l'inférence, Notez que le modèle rogné effectuerait donc la même prédiction pour une température de 45 °C pour une température de 35 °C.

Corrigez toutes les anomalies
Revoyez les discussions sur les techniques de normalisation présentées sur cette page, et réessayez.
Supprimer toutes les anomalies
Revoyez les discussions sur les techniques de normalisation présentées sur cette page, et réessayez.
Supprimez les anomalies comprises entre 31 et 45, mais rognez les les anomalies avec une valeur de 1 000.
Revoyez les discussions sur les techniques de normalisation présentées sur cette page, et réessayez.