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 einsetzen. Ziel der Normalisierung ist es, die Funktionen auf eine ähnliche Skala zu transformieren. Betrachten Sie beispielsweise die folgenden beiden Funktionen:

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

Diese beiden Funktionen haben 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 Funktionen unterschiedliche Bereiche haben, kann der Gradientenabstieg „abprallen“ und die Konvergenz verlangsamen. Fortgeschrittenere Optimierer wie Adagrad und Adam schützen jedoch vor diesem Problem, indem sie die effektive Lernrate im Laufe der Zeit ändern.
  • Hilft Modellen, bessere Vorhersagen zu treffen. Wenn verschiedene Funktionen unterschiedliche Bereiche haben, sind die Vorhersagen des resultierenden Modells möglicherweise weniger nützlich.
  • Hilft, den „NaN-Trap“ zu vermeiden, wenn die Featurewerte sehr hoch sind. NaN ist eine Abkürzung für Not a Number (keine Zahl). Wenn ein Wert in einem Modell die Gleitkommazahl ist, setzt das System den Wert stattdessen auf NaN. einer Zahl. Wenn eine Zahl im Modell zu einem NaN wird, werden auch andere Zahlen im Modell irgendwann zu einem NaN.
  • Hilft dem Modell, angemessene Gewichtungen für jedes Feature zu erkennen. Ohne Merkmalskalierung schenkt das Modell Merkmalen mit großen Bereichen zu viel Aufmerksamkeit und Merkmalen mit schmalen Bereichen zu wenig.

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 für das Element B ist −5,0 und der höchste Wert ist +5,0.

Die Spannweite von Feature A und Feature B ist relativ gering. Die Spanne von Element B ist jedoch zehnmal so breit wie die von Element 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 es sollte.
  • Das resultierende Modell ist möglicherweise nicht optimal.

Die Gesamtauswirkungen der fehlenden Normalisierung sind relativ gering. Wir empfehlen jedoch, Merkmal A und Merkmal B auf dieselbe Skala zu normalisieren, z. B. -1,0 bis +1,0.

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

  • Der niedrigste Wert für das Element C ist −1 und der höchste Wert ist +1.
  • Der niedrigste Wert für das Element D ist +5.000 und der höchste Wert ist +1.000.000.000.

Wenn Sie das Attribut C und das Attribut D nicht normalisieren, ist Ihr Modell wahrscheinlich nicht optimal. Außerdem dauert das Training wesentlich länger, konvergieren oder gar nicht konvergieren.

In diesem Abschnitt werden drei gängige Normalisierungsmethoden behandelt:

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

In diesem Abschnitt werden außerdem clipping Obwohl dies kein echtes Normalisierungsverfahren ist, werden unruhige numerische Merkmale durch das Zuschneiden in Bereiche gebracht, die bessere Modelle ergeben.

Lineare Skalierung

Bei der linearen Skalierung (häufig auch nur Skalierung genannt) werden Gleitkommawerte aus ihrem natürlichen Bereich in einen Standardbereich umgewandelt, in der Regel 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 nicht viel.
  • Das Merkmal enthält nur wenige oder gar keine Ausreißer und diese Ausreißer sind nicht extrem.
  • Die Merkmale sind im gesamten Bereich ungefähr gleichmäßig verteilt. Das bedeutet, dass in einem Histogramm für die meisten Werte ungefähr gleichmäßige Balken angezeigt werden.

Angenommen, age ist ein Element. Die lineare Skalierung ist eine gute Normalisierungstechnik für age, weil:

  • Die ungefähren Unter- und Obergrenzen sind 0 bis 100.
  • age enthält einen relativ kleinen Prozentsatz an Ausreißern. Nur etwa 0,3 % der Bevölkerung sind älter als 100 Jahre.
  • Bestimmte Altersgruppen sind zwar etwas besser vertreten als andere, ein großer Datensatz sollte jedoch genügend Beispiele für alle Altersgruppen enthalten.

Übung: Wissen testen

Angenommen, Ihr Modell hat ein Feature namens net_worth, das das Nettovermögen verschiedener Personen enthält. Wäre die lineare Skalierung eine gute Normalisierungstechnik für net_worth? Warum bzw. warum nicht?

Z-Score-Skalierung

Ein Z-Wert ist die Anzahl der Standardabweichungen eines Werts vom Mittelwert. Ein Wert, der beispielsweise 2 Standardabweichungen über dem Mittelwert liegt, hat einen Z-Wert von +2,0. Ein Wert, der 1,5 Standardabweichungen kleiner ist als hat der Mittelwert einen Z-Wert von -1,5.

Wenn ein Feature mit Z-Score-Skalierung dargestellt wird, wird der Z-Score dieses Features im Featurevektor gespeichert. Die folgende Abbildung zeigt beispielsweise zwei Histogramme:

  • Links sehen Sie eine klassische Normalverteilung.
  • Rechts ist dieselbe Verteilung zu sehen, die durch Z-Wert-Skalierung normalisiert wurde.
Abbildung 4: Zwei Histogramme, die Normalverteilungen mit
           identischer Verteilung. Das erste Histogramm, das Rohdaten enthält, hat einen Mittelwert von 200 und eine Standardabweichung von 30. Das zweite Histogramm, das eine Z-Wert-Version der ersten Verteilung enthält, 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 Anstieg zu einem Plateau und dann einen relativ schnellen Abstieg gefolgt von einem allmählichen Rückgang zeigen. 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 Histogramm der Rohdaten umfasst den Bereich von 0 bis 29.000, während das Histogramm mit Z-Score von −1 bis etwa +4,8 reicht.
Abbildung 5: Rohdaten (links) im Vergleich zur Z-Wert-Skalierung (rechts) für eine nicht klassische Normalverteilung.

Der Z-Wert eignet sich gut, wenn die Daten einer Normalverteilung oder einer Verteilung folgen, die einer Normalverteilung ähnelt.

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 Fällen können Sie die Z-Score-Skalierung mit einer anderen Form der Normalisierung (in der Regel Clipping) kombinieren, um diese Situation zu bewältigen.

Übung: Wissenstest

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

Logarithmische Skalierung

Bei der Logarithmusskala wird der Logarithmus des Rohwerts berechnet. Theoretisch Logarithmus kann eine beliebige Basis sein; In der Praxis berechnet die Log-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, sinken die Werte von Y schnell. Hohe Werte von X haben daher sehr niedrige Werte von Y.

Filmbewertungen sind ein gutes Beispiel für eine Potenzgesetzverteilung. Beachten Sie in der folgenden Abbildung Folgendes:

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

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

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

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

  • Die meisten veröffentlichten Bücher werden nur in sehr geringer Stückzahl verkauft, vielleicht ein bis zweihundert.
  • Einige Bücher werden in einer moderaten Anzahl von Exemplaren verkauft, in Tausenden.
  • Nur wenige Bestseller werden mehr als eine Million Exemplare verkaufen.

Angenommen, Sie trainieren ein lineares Modell, um die Beziehung zwischen Buchcovern und Buchverkäufen zu ermitteln. Ein lineares Modell, das mit Rohwerten trainiert würde, müssen etwas über Buchcover bei Büchern finden, die sich in Millionenhöhe befinden Das ist 10.000 leistungsfähiger als Buchcover,für die nur 100 Exemplare verkauft werden. Durch die Logarithmenskala aller Verkaufszahlen wird die Aufgabe jedoch wesentlich einfacher. Beispiel: Der Logarithmus von 100 ist:

  ~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. Sie können sich wahrscheinlich vorstellen, dass das Cover eines Bestsellers in gewisser Weise etwa dreimal wirkungsvoller ist als das Cover eines Buches, das nur wenige Verkäufe erzielt.

Clipping

Ausbrüche sind eine Methode, um den Einfluss extremer Ausreißer zu minimieren. Kurz gesagt: Beim Abrundungsverfahren wird der Wert von Ausreißern in der Regel auf einen bestimmten Maximalwert begrenzt (reduziert). Das Zuschneiden ist eine merkwürdige Idee, kann aber sehr effektiv sein.

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 der Anzahl der Bewohner) für verschiedene Häuser. Das folgende Diagramm zeigt, dass über 99 % der Merkmalswerte einer Normalverteilung entsprechen (ungefähr mit einem Mittelwert von 1,8 und einer Standardabweichung von 0,7). Die Funktion enthält jedoch einige Ausreißer, von denen einige extrem sind:

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: Im Großen und Ganzen 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 ist, wenn Sie den Maximalwert von roomsPerPerson einfach auf einen beliebigen Wert begrenzen, z. B. 4,0?

Ein Diagramm für „roomsPerPerson“, in dem alle Werte zwischen 0 und 4,0 liegen. Der Plot ist glockenförmig, aber bei 4,0 gibt es einen anomalen Anstieg.
Abbildung 8: Featurewerte bei 4.0 werden gekürzt.

Wenn Sie den Feature-Wert auf 4,0 begrenzen, bedeutet das nicht, dass Ihr Modell alle Werte über 4,0 ignoriert. 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 wirklich jeden Ausreißerwert auf einen beliebigen oberen Grenzwert reduzieren? Ja, beim Trainieren eines Modells.

Sie können Werte auch zuschneiden, nachdem Sie andere Formen der Normalisierung angewendet haben. Angenommen, Sie verwenden die Z-Score-Skalierung, aber einige Ausreißer haben absolute Werte, die weit über 3 liegen. In diesem Fall haben Sie folgende Möglichkeiten:

  • Z-Werte, die größer als 3 sind, werden auf genau 3 gekürzt.
  • Z-Werte unter -3 werden auf -3 gekürzt.

Clipping verhindert, dass Ihr Modell bei unwichtigen Daten überindexiert wird. Einige Ausreißer sind jedoch tatsächlich wichtig. Achten Sie also darauf, Werte mit Bedacht zu kürzen.

Zusammenfassung der Normalisierungstechniken

NormalisierungstechnikFormelAnwendung
Lineare Skalierung $$ x' = \frac{x - x_{min}}{x_{max} - x_{min}} $$ Wenn das Element gleichmäßig über einen festen Bereich verteilt ist.
Z-Score-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$, setzen Sie $x' = max$.
Wenn $x < min$, setzen Sie $x' = min$.
Wenn die Funktion extreme Ausreißer enthält.

Übung: Wissen testen

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 die 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.
Clipping
Lesen Sie die Informationen 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 Datensatz liegen zwischen 15 und 30 °C, mit folgenden Ausnahmen:

  • Ein- bis zweimal pro Jahr, an extrem heißen Tagen, werden in temperature einige Werte zwischen 31 und 45 erfasst.
  • Jeder 1.000. Punkt in temperature ist auf 1.000 festgelegt und nicht auf die tatsächliche Temperatur.

Welche Normalisierungstechnik wäre für temperature geeignet?

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 „1.000“ sind Fehler und sollten gelöscht und nicht gekürzt werden.

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

Alle Ausreißer abschneiden
Lesen Sie die Informationen zu den Normalisierungstechniken auf dieser Seite und versuchen Sie es noch einmal.
Alle Ausreißer löschen
Lesen Sie die Informationen zu den Normalisierungstechniken auf dieser Seite und versuchen Sie es noch einmal.
Löschen Sie die Ausreißerwerte zwischen 31 und 45, aber beschneiden Sie die Ausreißer mit einem Wert von 1.000.
Lesen Sie die Informationen zu den Normalisierungstechniken auf dieser Seite und versuchen Sie es noch einmal.