Ich weiß, dass ich die Daten in Trainings- / Testsätze aufteilen muss, um auf die Leistung des Klassifikators zugreifen zu können. Aber dies zu lesen :
Bei der Auswertung verschiedener Einstellungen („Hyperparameter“) für Schätzer, z. B. der C-Einstellung, die für eine SVM manuell festgelegt werden muss, besteht weiterhin die Gefahr einer Überanpassung des Testsets, da die Parameter so lange angepasst werden können, bis der Schätzer eine optimale Leistung erbringt. Auf diese Weise kann das Wissen über den Testsatz in das Modell „eindringen“, und Auswertungsmetriken geben keinen Hinweis mehr auf die Generalisierungsleistung. Um dieses Problem zu lösen, kann ein weiterer Teil des Datensatzes als sogenannter "Validierungssatz" ausgegeben werden: Das Training wird mit dem Trainingssatz fortgesetzt, wonach die Auswertung mit dem Validierungssatz erfolgt und wann das Experiment erfolgreich zu sein scheint Die endgültige Bewertung kann am Testgerät vorgenommen werden.
Ich sehe, dass ein weiterer (dritter) Validierungssatz eingeführt wird, der durch eine Überanpassung des Testsatzes während der Hyperparametertuning gerechtfertigt ist.
Das Problem ist, dass ich nicht verstehen kann, wie diese Überanpassung aussehen kann und daher die Rechtfertigung der dritten Menge nicht verstehen kann.
quelle
Antworten:
Auch wenn Sie Modelle ausschließlich anhand der Trainingsdaten trainieren, optimieren Sie Hyperparameter (z. B. für eine SVM) basierend auf dem Testsatz. Daher kann Ihre Leistungsschätzung optimistisch sein, da Sie im Wesentlichen Best-Case-Ergebnisse melden. Wie einige auf dieser Website bereits erwähnt haben, ist die Optimierung die Wurzel allen Übels in der Statistik .C
Leistungsschätzungen sollten immer auf völlig unabhängigen Daten basieren. Wenn Sie einen Aspekt basierend auf Testdaten optimieren, sind Ihre Testdaten nicht mehr unabhängig und Sie benötigen einen Validierungssatz.
Ein anderer Weg, um damit umzugehen, ist die verschachtelte Kreuzvalidierung , die aus zwei umeinander gewickelten Kreuzvalidierungsprozeduren besteht. Die innere Kreuzvalidierung wird beim Optimieren verwendet (um die Leistung eines gegebenen Satzes von optimierten Hyperparametern abzuschätzen) und die äußere Kreuzvalidierung schätzt die Generalisierungsleistung der gesamten Pipeline für maschinelles Lernen (dh Optimieren von Hyperparametern + Trainieren des endgültigen Modells) ).
quelle
Ich denke, es ist am einfachsten, sich die Dinge so vorzustellen. Es gibt zwei Dinge, für die eine Kreuzvalidierung verwendet wird: das Optimieren der Hyperparameter eines Modells / Algorithmus und das Bewerten der Leistung eines Modells / Algorithmus.
Betrachten Sie die erste Verwendung als Teil des tatsächlichen Trainings des Algorithmus. Zum Beispiel ist eine Kreuzvalidierung zur Bestimmung der Regularisierungsstärke für einen GLM Teil der Ermittlung des Endergebnisses des GLM. Diese Verwendung wird normalerweise als interne Kreuzvalidierung bezeichnet . Da immer noch (Hyper-) Parameter eingestellt werden, ist der Verlust des Tuning-Sets kein gutes Maß für die tatsächliche Leistung des Algorithmus.
Die zweite Möglichkeit der Kreuzvalidierung besteht darin, Daten zu verwenden, die aus dem gesamten Prozess stammen, aus dem das Modell stammt, um seine Vorhersagekraft zu testen. Dieser Prozess wird als externe Quervalidierung bezeichnet .
Beachten Sie, dass die interne Validierung möglicherweise Teil des Prozesses war, der das Modell erstellt hat, sodass in vielen Fällen sowohl die interne als auch die externe Kreuzvalidierung erforderlich sind.
quelle
Während des Modellbaus trainieren Sie Ihre Modelle an einem Trainingsmuster . Beachten Sie, dass Sie verschiedene Modelle trainieren können (dh verschiedene Techniken wie SVM, LDA, Random Forest, ... oder dieselbe Technik mit unterschiedlichen Werten der Tuning-Parameter oder einer Mischung).
Unter allen verschiedenen Modellen, die Sie trainiert haben, müssen Sie eines auswählen. Daher verwenden Sie das Validierungsmuster , um das mit dem geringsten Fehler auf dem Testmuster zu finden.
Für dieses "endgültige" Modell müssen wir den Fehler noch abschätzen und verwenden daher das Testmuster .
quelle
Durch die Kreuzvalidierung wird das Problem der Überanpassung bei der Modellauswahl nicht vollständig gelöst, sondern nur reduziert. Der Kreuzvalidierungsfehler hängt von dem von Ihnen verwendeten Datensatz ab. Je kleiner der Datensatz ist, desto höher ist der Kreuzvalidierungsfehler.
Wenn Sie bei der Modellauswahl über große Freiheitsgrade verfügen, besteht außerdem die Gefahr, dass das Modell eine schlechte Leistung erbringt, da das Kreuzvalidierungskriterium überbewertet wird.
Wenn also die Daten in zwei Sätze aufgeteilt werden, auch Trainings- und Testsätze genannt, erfolgt die Aufteilung statisch. Es besteht also die Möglichkeit, dass das Trainingsset überarbeitet wird. Die Kreuzvalidierungssätze werden jedoch mit verschiedenen Methoden erstellt , wie z. B. der k-fachen Kreuzvalidierung, der Ein-Kreuz-Auslass-Validierung (LOOCV) usw., wodurch sichergestellt wird, dass die Belohnung für die exakte Anpassung des 2-Satz-Split eliminiert wird und somit wird die Wahrscheinlichkeit einer Überanpassung verringert.
Dies sind einige Ressourcen, die Ihnen helfen, besser zu verstehen.
Eine Kreuzvalidierung würde Ihnen also helfen, wenn Sie einen größeren als einen kleineren Datensatz haben.
quelle