Eine gängige Vorgehensweise beim maschinellen Lernen ist die Merkmalsnormalisierung oder Datenstandardisierung der Prädiktorvariablen. Das ist es, die Daten zu zentrieren, wobei der Mittelwert abgezogen wird, und die Division durch die Varianz (oder auch die Standardabweichung) zu normalisieren. Aus Gründen der Selbstbeherrschung und meines Verständnisses tun wir dies, um zwei Hauptziele zu erreichen:
- Vermeiden Sie aus Gründen der numerischen Stabilität besonders kleine Modellgewichte.
- Stellen Sie eine schnelle Konvergenz von Optimierungsalgorithmen wie z. B. Conjugate Gradient sicher, damit die große Größe einer Prädiktor-Dimension gegenüber den anderen nicht zu einer langsamen Konvergenz führt.
Wir teilen die Daten normalerweise in Trainings-, Validierungs- und Testsätze auf. In der Literatur sehen wir normalerweise, dass zur Merkmalsnormalisierung der Mittelwert und die Varianz (oder die Standardabweichung) über den gesamten Satz von Prädiktorvariablen hinweg berechnet werden. Der große Fehler, den ich hier sehe, ist, dass Sie, wenn Sie das tun, tatsächlich zukünftige Informationen in die Trainingsprädiktorvariablen einführen, nämlich die zukünftigen Informationen, die im Mittelwert und in der Varianz enthalten sind.
Aus diesem Grund normalisiere ich die Trainingsdaten und speichere den Mittelwert und die Varianz. Dann wende ich eine Merkmalsnormalisierung auf die Prädiktorvariablen der Validierungs- und Testdatensätze unter Verwendung des Trainingsmittels und der Varianzen an. Gibt es dabei grundsätzliche Mängel? kann mir jemand eine bessere alternative empfehlen?
Antworten:
Ihr Ansatz ist völlig richtig. Obwohl Datentransformationen häufig als "Vorverarbeitung" unterbewertet werden, kann man nicht genug betonen, dass Transformationen zur Optimierung der Modellleistung als Teil des Modellbildungsprozesses behandelt werden können und sollten.
Begründung: Ein Modell soll auf unsichtbare Daten angewendet werden, die zum Zeitpunkt der Erstellung des Modells im Allgemeinen nicht verfügbar sind. Der Validierungsprozess (einschließlich Datenaufteilung) simuliert dies. Um eine gute Schätzung der Modellqualität (und der Generalisierungskraft) zu erhalten, muss die Berechnung der Normalisierungsparameter (Mittelwert und Varianz) auf den Trainingssatz beschränkt werden.
Ich kann nur raten, warum dies in der Literatur nicht immer der Fall ist. Ein Argument könnte sein, dass die Berechnung von Mittelwert und Varianz nicht so empfindlich für kleine Datenschwankungen ist (aber auch dies gilt nur, wenn die Grundstichprobe groß genug ist und die Daten ohne extreme Ausreißer ungefähr normal verteilt sind).
quelle
Bei der Feature-Normalisierung werden verschiedene Features im gleichen Maßstab erstellt. Die Skalierung beschleunigt den Gradientenabstieg, indem viele zusätzliche Iterationen vermieden werden, die erforderlich sind, wenn ein oder mehrere Features viel größere Werte als die übrigen annehmen (ohne Skalierung weist die dargestellte Kostenfunktion eine große Asymmetrie auf).
Ich halte es für sinnvoll, den Mittelwert und den Var aus dem Trainingssatz zu verwenden, wenn Testdaten vorliegen. Wenn die Datenmenge jedoch sehr groß ist, können sowohl Trainings- als auch Validierungssätze ungefähr als Normalverteilung angesehen werden, sodass sie ungefähr den Mittelwert und die Var teilen.
quelle
Die von Ihnen beschriebene Methode ist, wie andere gesagt haben, solide. Sie sollten für Ihre Test-Set-Features genau die gleiche Transformation durchführen wie für Features aus Ihrem Training-Set.
Ich denke, es ist erwähnenswert, dass ein weiterer Grund für die Normalisierung von Features darin besteht, die Leistung bestimmter Prozesse zu verbessern, die empfindlich auf Unterschiede im Maßstab bestimmter Variablen reagieren. Beispielsweise zielt die Hauptkomponentenanalyse (PCA) darauf ab, den größten Anteil der Varianz zu erfassen, und als Folge davon werden Variablen, die die größte Varianz aufweisen, stärker gewichtet, wenn die Merkmalsnormalisierung anfangs nicht durchgeführt wird.
quelle