Numerische Daten: Normalisierung

Nachdem Sie Ihre Daten mithilfe statistischer und Visualisierungstechniken untersucht haben, sollten Sie Ihre Daten so transformieren, dass Ihr Modell besser trainiert wird. effektiv zu machen. Das Ziel der Normalisierung besteht darin, ähnlich gewichtet sein. Betrachten Sie zum Beispiel die folgenden beiden Funktionen:

  • Das Element X umfasst den Bereich von 154 bis 24.917.482.
  • Das Element Y umfasst den Bereich von 5 bis 22.

Diese beiden Funktionen erstrecken sich über sehr unterschiedliche Bereiche. Die Normalisierung könnte X und Y, sodass sie sich in einem ähnlichen Bereich befinden, vielleicht 0 bis 1.

Die Normalisierung bietet folgende Vorteile:

  • Sorgt dafür, dass Modelle während des Trainings schneller konvergieren. Wenn verschiedene Elemente unterschiedliche Bereiche haben, kann das Gradientenverfahren "Bounce" und langsame Konvergenz. Erweiterte Optimierer wie Adagrad und Adam schützen Änderung der effektiven Lernrate im Laufe der Zeit.
  • Unterstützt Modelle, bessere Vorhersagen abzuleiten. Wenn verschiedene Merkmale unterschiedliche Bereiche haben, wird das resultierende weniger nützliche Vorhersagen treffen.
  • Hilft, den „NaN-Trap“ zu vermeiden, wenn die Featurewerte sehr hoch sind. NaN ist eine Abkürzung für keine Zahl. Wenn ein Wert in einem Modell den Wert Gleitkommazahl ist, setzt das System den Wert stattdessen auf NaN. einer Zahl. Wird eine Zahl im Modell zu einer NaN, werden andere Zahlen in wird das Modell schließlich zu einem NaN.
  • Hilft dem Modell, angemessene Gewichtungen für jedes Feature zu erkennen. Ohne Feature-Skalierung lenkt das Modell zu viel Aufmerksamkeit mit großen Bereichen und zu wenig Aufmerksamkeit auf Funktionen eng gefasste Bereiche.

Wir empfehlen, numerische Features zu normalisieren, verschiedenen Bereichen (z. B. Alter und Einkommen) Wir empfehlen auch die Normalisierung eines einzelnen numerischen Features, das einen großen Bereich abdeckt, z. B. city population.

Betrachten Sie die folgenden beiden Funktionen:

  • Der niedrigste Wert des Elements A ist -0,5 und der höchste Wert +0,5.
  • Der niedrigste Wert des Elements B ist -5,0 und der höchste Wert +5,0.

Feature A und Feature B haben eine relativ enge Spanne. Feature B Span ist 10-mal größer als die Span von Feature A. Beispiele:

  • Zu Beginn des Trainings geht das Modell davon aus, dass das Feature A zehnmal ist „wichtiger“ als Feature B.
  • Das Training dauert länger als erwartet.
  • Das resultierende Modell ist möglicherweise nicht optimal.

Der Gesamtschaden durch die Nicht-Normalisierung ist relativ gering. Allerdings empfehlen wir dennoch, Feature A und Feature B auf denselben Maßstab zu etwa -1,0 bis +1,0.

Betrachten Sie nun zwei Merkmale mit größeren Unterschieden bei den Bereichen:

  • Der niedrigste Wert von Feature „C“ ist -1, der höchste Wert +1.
  • Der niedrigste Wert des Elements D ist +5.000 und der höchste Wert +1.000.000.000.

Wenn Sie Merkmal C und Merkmal D nicht normalisieren, wird Ihr Modell wahrscheinlich suboptimal sein könnte. Außerdem dauert das Training wesentlich länger, konvergieren oder gar nicht konvergieren.

In diesem Abschnitt werden drei beliebte Normalisierungsmethoden behandelt:

  • lineare Skalierung
  • Z-Faktor-Skalierung
  • Log-Skalierung

In diesem Abschnitt werden außerdem clipping Obwohl kein wahrer Normalisierungstechnik werden durch das Abschneiden unbändige numerische Merkmale die bessere Modelle liefern.

Lineare Skalierung

Lineare Skalierung (gewöhnlich auf Skalieren abgekürzt) bedeutet, dass Gleitkommawerte aus liegen normalerweise in einem Standardbereich – normalerweise 0 bis 1 oder -1 bis +1.

Die lineare Skalierung ist eine gute Wahl, wenn alle der folgenden Bedingungen erfüllt sind:

  • Die Unter- und Obergrenzen Ihrer Daten ändern sich im Laufe der Zeit nur wenig.
  • Das Feature enthält nur wenige oder keine Ausreißer, die nicht extrem sind.
  • Das Merkmal ist annähernd gleichmäßig über seinen Bereich verteilt. Das heißt, ein Histogramm würde für die meisten Altersgruppen etwa gleichmäßige Balken zeigen.

Angenommen, age ist ein Element. Die lineare Skalierung eignet sich gut für age aus folgenden Gründen verwendet:

  • Die ungefähre Unter- und Obergrenze liegt zwischen 0 und 100.
  • age enthält einen relativ kleinen Prozentsatz an Ausreißern. Nur etwa 0,3 % die Bevölkerung über 100 umfasst.
  • Obwohl bestimmte Altersgruppen etwas besser vertreten sind als andere, ist eine sollte das Dataset ausreichende Beispiele für alle Altersgruppen enthalten.

Wissen testen

Angenommen, Ihr Modell verfügt über ein Merkmal namens net_worth, das das Netz für verschiedene Personen. Wäre die lineare Skalierung eine gute Normalisierung? für „net_worth“? Warum bzw. warum nicht?

Z-Faktor-Skalierung

Ein Z-Wert ist die Anzahl der Standardabweichungen, die ein Wert vom Mittelwert ist. Beispiel: Ein Wert mit zwei Standardabweichungen und größer als der Mittelwert einen Z-Score von +2,0 aufweist. Ein Wert, der 1,5 Standardabweichungen kleiner ist als hat der Mittelwert einen Z-Wert von -1,5.

Bei der Darstellung eines Elements mit der Z-Wert-Skalierung wird der Wert des Elements Z-Wert im Featurevektor. Die folgende Abbildung zeigt beispielsweise zwei Histogramme:

  • Links eine klassische Normalverteilung.
  • Auf der rechten Seite die gleiche Verteilung normalisiert durch die Z-Wert-Skalierung.
Abbildung 4: Zwei Histogramme, die Normalverteilungen mit
           identischer Verteilung. Das erste Histogramm, das die Rohdaten
           hat einen Mittelwert von 200 und eine Standardabweichung von 30. Die zweite
           Histogramm, das die Z-Score-Version des ersten
           hat einen Mittelwert von 0 und eine Standardabweichung von 1.
Abbildung 4: Rohdaten (links) im Vergleich zum Z-Wert (rechts) für eine normale Verteilung.

Die Skalierung anhand des Z-Scores ist auch eine gute Wahl für Daten wie die in die folgende Abbildung zeigt, die nur eine vage Normalverteilung aufweist.

Abbildung 5: Zwei Histogramme mit identischer Form, die jeweils einen steilen
            auf einem Plateau aufsteigen und dann ein relativ schneller Abstieg, gefolgt von
            allmählich ab. Ein Histogramm zeigt,
            die Verteilung der Rohdaten, das andere Histogramm,
            Verteilung der Rohdaten bei Normalisierung durch die Z-Score-Skalierung.
            Die Werte auf der X-Achse der beiden Histogramme sind sehr unterschiedlich.
            Das Rohdaten-Histogramm erstreckt sich über den Bereich
0 bis 29.000, während
            Das skalierte Histogramm für den Z-Wert reicht von -1 bis etwa +4,8.
Abbildung 5: Rohdaten (links) im Vergleich zu Z-Score-Skalierung (rechts) für eine nicht der klassischen Normalverteilung.

Der Z-Score ist eine gute Wahl, wenn die Daten einer Normalverteilung oder ähnlich einer Normalverteilung.

Beachten Sie, dass einige Verteilungen innerhalb der aber extreme Ausreißer enthalten. Fast alle Punkte in einem net_worth-Element lassen sich gut in drei Standardabweichungen aber Hunderte Standardabweichungen können vom Mittelwert entfernt. In diesen Situationen können Sie die Z-Wert-Skalierung mit eine andere Form der Normalisierung (normalerweise Clipping) zur Bewältigung dieser Situation.

Übung: Wissenstest

Angenommen, Ihr Modell wird mit einem Feature namens height trainiert, das die erwachsene Höhen von zehn Millionen Frauen. Wäre die Skalierung mit dem Z-Wert eine gute Normalisierung? für „height“? Warum bzw. warum nicht?

Logskalierung

Bei der logarithmischen Skalierung wird der Logarithmus des Rohwerts berechnet. Theoretisch Logarithmus kann eine beliebige Basis sein; In der Praxis berechnet die logarithmische Skalierung in der Regel den natürlichen Logarithmus (ln).

Die Log-Skalierung ist hilfreich, wenn die Daten einer Potenzgesetz-Verteilung entsprechen. Einfach ausgedrückt sieht eine Potenzgesetzverteilung so aus:

  • Niedrige Werte von X haben sehr hohe Werte von Y.
  • Wenn die Werte von X steigen, nehmen die Werte von Y schnell ab. Daher haben hohe Werte für X sehr niedrige Werte von Y.

Altersfreigaben für Filme sind ein gutes Beispiel für die Verteilung des Stromgesetzes. Im Folgenden Abbildung, Hinweis:

  • Einige Filme haben viele Nutzerbewertungen. (Niedrige Werte von X haben hohe Y-Werten)
  • Die meisten Filme haben nur sehr wenige Nutzerbewertungen. (Hohe Werte von X haben niedrige Werte) Y-Werten)

Durch die Log-Skalierung wird die Verteilung geändert. Dadurch wird ein Modell trainiert, bessere Vorhersagen zu treffen.

Abbildung 6. Zwei Diagramme, die Rohdaten mit dem Protokoll der Rohdaten vergleichen.
            Die Rohdatengrafik zeigt viele Nutzerbewertungen im Kopf, gefolgt von
            mit einem langen Schwanz. Das Logdiagramm hat eine gleichmäßigere Verteilung.
Abbildung 6: Vergleich einer Rohverteilung mit dem zugehörigen Log

Ein zweites Beispiel: Buchverkäufe entsprechen der Verteilung des Stromgesetzes aus folgenden Gründen:

  • Die meisten veröffentlichten Bücher verkaufen nur eine sehr kleine Anzahl von Exemplaren, vielleicht ein oder zweihundert.
  • Von einigen Büchern werden durchschnittlich bis zu Tausenden Exemplare verkauft.
  • Nur wenige Bestseller werden mehr als eine Million Exemplare verkaufen.

Angenommen, Sie trainieren ein lineares Modell, um die Beziehung zu ermitteln. von Buchcovern bis zu Buchverkäufen. Ein lineares Modell, das mit Rohwerten trainiert wird, müssen etwas über Buchcover bei Büchern finden, die sich in Millionenhöhe befinden Das ist 10.000 leistungsfähiger als Buchcover,die nur 100 Exemplare verkaufen. Die logarithmische Skalierung aller Verkaufszahlen macht die Aufgabe jedoch weitaus einfacher. Das Log von 100 lautet beispielsweise:

  ~4.6 = ln(100)

während das Log von 1.000.000 so aussieht:

  ~13.8 = ln(1,000,000)

Der Logarithmus von 1.000.000 ist also nur etwa dreimal größer als der Logarithmus von 100. Wahrscheinlich könnten Sie sich vorstellen, dass ein Buchcover des Bestsellers etwa dreimal so groß ist wie (in irgendeiner Weise) viel stärker als das Cover eines Buchcovers, das nur sehr klein verkauft wird.

Abschneiden

Mit dem Zuschneiden den Einfluss extremer Ausreißer minimieren. Kurz gesagt: Die Beschneidung von Großbuchstaben (verringert) den Wert von Ausreißern auf einen bestimmten Maximalwert. Clipping ist ein und trotzdem sehr effektiv ist.

Stellen Sie sich beispielsweise ein Dataset vor, das ein Feature mit dem Namen roomsPerPerson, die die Anzahl der Räume darstellt (Gesamtzahl der Räume geteilt durch nach Anzahl der Bewohner) für verschiedene Häuser. Das folgende Diagramm zeigt, 99% der Featurewerte entsprechen einer Normalverteilung (ungefähr ein Mittelwert von 1,8 und eine Standardabweichung von 0,7). Die Funktion enthält jedoch einige Ausreißer, einige davon extreme:

Abbildung 7. Ein Diagramm mit Zimmern pro Person, in dem fast alle Werte
            Cluster zwischen 0 und 4, aber es gibt einen verrrry langen Schwanz
            bis zu 17 Räume pro Person
Abbildung 7: Hauptsächlich normal, aber nicht ganz normal.

Wie können Sie den Einfluss dieser extremen Ausreißer minimieren? Nun, die Ein Histogramm ist keine gleichmäßige Verteilung, keine Normalverteilung oder ein Potenzgesetz. Verteilung. Was wäre, wenn Sie den Maximalwert eines roomsPerPerson bei einem beliebigen Wert, z. B. 4,0?

Ein Diagramm mit ZimmernProPerson, in dem alle Werte zwischen 0 und
            4.0 Das Diagramm ist glockenförmig, aber es gibt einen ungewöhnlichen Hügel bei 4,0
Abbildung 8: Featurewerte bei 4.0 werden gekürzt.

Das Abschneiden des Featurewerts auf 4.0 bedeutet nicht, dass Ihr Modell alle Werte größer als 4,0. Es bedeutet vielmehr, dass alle Werte, als 4.0 ist jetzt 4.0. Das erklärt die seltsame Steigung von 4,0. Trotz ist der skalierte Feature-Satz nun nützlicher als die Originaldaten.

Einen Moment! Können Sie jeden Ausreißerwert wirklich auf einen beliebigen Grenzwert? Ja.

Sie können Werte auch nach Anwendung anderer Normalisierungsformen abschneiden. Angenommen, Sie verwenden die Z-Faktor-Skalierung, aber bei einigen Ausreißern absolute Werte weit über 3 liegen. In diesem Fall haben Sie folgende Möglichkeiten:

  • Z-Werte des Clips, die größer als 3 sind, werden zu exakt 3.
  • Die Z-Werte des Clips müssen kleiner als -3 sein, um exakt -3 zu erhalten.

Clipping verhindert, dass Ihr Modell bei unwichtigen Daten überindexiert wird. Sie können jedoch Einige Ausreißer sind tatsächlich wichtig, beschneiden Sie die Werte daher sorgfältig.

Zusammenfassung der Normalisierungstechniken

NormalisierungstechnikFormelAnwendung
Lineare Skalierung $$ x' = \frac{x - x_{min}}{x_{max} - x_{min}} $$ Wenn das Feature gleichmäßig über einem festen Bereich.
Z-Faktor-Skalierung $$ x' = \frac{x - μ}{σ}$$ Wenn die Featureverteilung keine extremen Ausreißer enthält.
Logskalierung $$ x' = log(x)$$ Wenn die Funktion den geltenden Energiegesetzen entspricht.
Abschneiden Wenn x € > max$, $x festlegen = max$
Wenn $x < min$, $x' einstellen = Min.$
Wenn das Feature extreme Ausreißer enthält.

Übung: Testen Sie Ihr Wissen

Welche Technik eignet sich am besten für die Normalisierung eines Features mit die folgende Verteilung?

Ein Histogramm, das einen Datencluster mit Werten im Bereich von 0 bis 0 zeigt
          200.000. Die Anzahl der Datenpunkte nimmt für den Bereich allmählich zu
          von 0 auf 100.000 und sinkt dann allmählich von 100.000 auf
          200.000.

Z-Faktor-Skalierung
Die Datenpunkte entsprechen im Allgemeinen einer Normalverteilung, sodass der Z-Wert Durch Skalierung werden sie im Bereich –3 bis +3 – erzwungen.
Lineare Skalierung
Lesen Sie die Erläuterungen zu den Normalisierungstechniken auf dieser Seite. und versuchen Sie es noch einmal.
Logskalierung
Lesen Sie die Erläuterungen zu den Normalisierungstechniken auf dieser Seite. und versuchen Sie es noch einmal.
Abschneiden
Lesen Sie die Erläuterungen zu den Normalisierungstechniken auf dieser Seite. und versuchen Sie es noch einmal.

Angenommen, Sie entwickeln ein Modell, basierend auf der im Rechenzentrum gemessenen Temperatur. Fast alle temperature-Werte in Ihrem Dataset fallen zwischen 15 und 30 (Celsius), mit folgenden Ausnahmen:

  • Ein- oder zweimal im Jahr, an extrem heißen Tagen, liegen einige Werte zwischen 31 und 45 wurden in temperature aufgezeichnet.
  • Jeder 1.000. Punkt in temperature ist auf 1.000 festgelegt und nicht auf die tatsächliche Temperatur.

Was wäre eine sinnvolle Normalisierungstechnik für temperature?

Schneiden Sie die Ausreißerwerte zwischen 31 und 45 zu, aber löschen Sie die Ausreißer mit im Wert von 1.000

Die Werte von 1.000 sind Fehler und sollten lieber gelöscht werden, abgeschnitten.

Die Werte zwischen 31 und 45 sind legitime Datenpunkte. Für diese Werte wäre Clipping wahrscheinlich eine gute Idee, vorausgesetzt, dass das Dataset nicht genügend Beispiele in diesem Temperaturbereich enthält, das Modell trainieren, um gute Vorhersagen zu treffen. Während der Inferenz dass das beschnittene Modell daher die gleiche Vorhersage für bei einer Temperatur von 35.

Schneide alle Ausreißer zu
Lesen Sie die Erläuterungen zu den Normalisierungstechniken auf dieser Seite. und versuchen Sie es noch einmal.
Alle Ausreißer löschen
Lesen Sie die Erläuterungen zu den Normalisierungstechniken auf dieser Seite. und versuchen Sie es noch einmal.
Löschen Sie die Ausreißerwerte zwischen 31 und 45, aber kürzen Sie die und Ausreißer mit einem Wert von 1.000.
Lesen Sie die Erläuterungen zu den Normalisierungstechniken auf dieser Seite. und versuchen Sie es noch einmal.