Wandle ich alle meine Daten oder Falze (wenn der Lebenslauf angewendet wird) gleichzeitig um? z.B
(allData - mean(allData)) / sd(allData)
Wandle ich Zugset und Testset getrennt um? z.B
(trainData - mean(trainData)) / sd(trainData)
(testData - mean(testData)) / sd(testData)
Oder transformiere ich Triebzüge und verwende Berechnungen auf dem Testsatz? z.B
(trainData - mean(trainData)) / sd(trainData)
(testData - mean(trainData)) / sd(trainData)
Ich glaube 3 ist der richtige Weg. Wenn 3 richtig ist, muss ich mir Sorgen machen, dass der Mittelwert nicht 0 ist oder der Bereich nicht zwischen [0; 1] oder [-1; 1] (Normalisierung) des Testsatzes?
R
? Sehen Sie diese Frage: stackoverflow.com/questions/49260862/...Antworten:
Der dritte Weg ist richtig. Genau, warum dies in den Elementen des statistischen Lernens ausführlich behandelt wird , erfahren Sie im Abschnitt "Die falsche und richtige Art der Kreuzvalidierung" und im letzten Kapitel des Lernens aus Daten im Börsenbeispiel.
Im Wesentlichen geben die Prozeduren 1 und 2 Informationen über die Reaktion oder die Zukunft Ihres Hold-out-Datensatzes in das Training oder die Evaluierung Ihres Modells weiter. Dies kann zu erheblichen Optimismusverzerrungen bei Ihrer Modellbewertung führen.
Die Idee bei der Modellvalidierung besteht darin, die Situation nachzuahmen, in der sich Ihr Modell befindet, wenn Sie Produktionsentscheidungen treffen und keinen Zugriff auf die echte Antwort haben. Die Folge ist, dass Sie die Antwort im Testset nur für den Vergleich mit Ihren vorhergesagten Werten verwenden können.
Eine andere Möglichkeit besteht darin, sich vorzustellen, dass Sie jeweils nur auf einen Datenpunkt aus Ihrer Warteschleife zugreifen können (eine für Produktionsmodelle übliche Situation). Alles, was Sie unter dieser Annahme nicht tun können, sollten Sie mit großem Argwohn behandeln. Eine Sache, die Sie nicht tun können, ist die Zusammenfassung aller vergangenen und zukünftigen neuen Datenpunkte, um Ihren Produktionsdatenstrom zu normalisieren. Dasselbe gilt für die Modellvalidierung.
Sie müssen sich keine Sorgen machen, dass der Mittelwert Ihres Testsatzes ungleich Null ist. Dies ist eine bessere Situation, als Ihre Einschätzungen der Durchhalteleistung zu beeinflussen. Wenn der Test jedoch tatsächlich aus derselben zugrunde liegenden Verteilung wie Ihr Zug stammt (eine wesentliche Voraussetzung für das statistische Lernen), sollte der Mittelwert bei ungefähr Null liegen.
quelle
Clearly, one thing you cannot do is aggregate over all new data-points past and future to normalize your production stream of data
. Warum nicht?