Ich habe einen Datensatz von 120 Proben in einer 10-fachen Kreuzvalidierungseinstellung. Derzeit wähle ich die Trainingsdaten des ersten Holdouts aus und führe eine 5-fache Kreuzvalidierung durch, um die Werte von Gamma und C durch Gittersuche zu ermitteln. Ich verwende SVM mit RBF-Kernel. Führen Sie diese Rastersuche in den Trainingsdaten jedes Holdouts durch (es gibt 10 Holdouts mit jeweils 10% Test- und 90% Trainingsdaten), da ich zehn Kreuzvalidierungen durchführe, um die Genauigkeit zu melden. Wäre das nicht zu zeitaufwändig?
Wenn ich das Gamma und C des ersten Holdouts verwende und es für die restlichen 9 Holdouts der k-fachen Kreuzvalidierung verwende, ist das ein Verstoß, weil ich die Zugdaten verwendet hätte, um Gamma und C zu erhalten und das wieder zu verwenden Teil der Zugdaten als Test im zweiten Holdout?
quelle
Antworten:
Ja, dies wäre ein Verstoß, da die Testdaten für die Faltungen 2-10 der äußeren Kreuzvalidierung Teil der Trainingsdaten für die Faltung 1 gewesen wären, die zur Bestimmung der Werte der Kernel- und Regularisierungsparameter verwendet wurden. Dies bedeutet, dass einige Informationen über die Testdaten möglicherweise in das Design des Modells eingedrungen sind, was möglicherweise zu einer optimistischen Tendenz bei der Leistungsbewertung führt. Dies ist am optimistischsten für Modelle, die sehr empfindlich auf die Einstellung der Hyperparameter reagieren (d. H am stärksten bevorzugt sie Modelle mit unerwünschten Merkmalen.
Diese Verzerrung ist wahrscheinlich für kleine Datensätze wie diesen am stärksten, da die Varianz des Modellauswahlkriteriums für kleine Datensätze am größten ist, was zu einer Überanpassung des Modellauswahlkriteriums führt, wodurch mehr Informationen über die Testdaten auslaufen können durch.
Ich habe vor ein oder zwei Jahren eine Abhandlung darüber geschrieben, da ich ziemlich erschrocken war, wie groß die Abweichungen von der vollständig verschachtelten Kreuzvalidierung sein können, die den Leistungsunterschied zwischen Klassifikatorsystemen leicht übersteigen können. Der Artikel lautet "Überanpassung bei der Modellauswahl und anschließende Auswahlverzerrung bei der Leistungsbewertung". Gavin C. Cawley, Nicola LC Talbot; JMLR 11 (Jul): 2079–2107, 2010.
Grundsätzlich sollte das Optimieren der Hyperparameter als integraler Bestandteil der Anpassung des Modells betrachtet werden. Wenn Sie also die SVM auf eine neue Datenprobe trainieren, müssen Sie die Hyperparameter für diese Probe unabhängig voneinander neu abstimmen. Wenn Sie diese Regel befolgen, können Sie wahrscheinlich nicht zu weit falsch liegen. Es ist den Rechenaufwand wert, eine unvoreingenommene Leistungsschätzung zu erhalten, da Sie sonst die Gefahr laufen, aus Ihrem Experiment die falschen Schlussfolgerungen zu ziehen.
quelle
Nachdem Sie die Rastersuche für jedes Ersatzmodell durchgeführt haben, können und sollten Sie ein paar Dinge überprüfen:
Wenn die innere (dh stimmende) Kreuzvalidierung viel besser aussieht als die äußere (Validierung des endgültigen Modells), dann steckt man auch in Schwierigkeiten: Sie sind überfordert. Es besteht ein erhebliches Risiko, dass die eingestellten Parameter überhaupt nicht optimal sind. Wenn die äußere Kreuzvalidierung jedoch ordnungsgemäß durchgeführt wird (alle Testsätze sind wirklich unabhängig von den jeweiligen Ersatzmodellen), haben Sie zumindest noch eine unvoreingenommene (!) Schätzung der Modellleistung. Sie können jedoch nicht sicher sein, ob es optimal ist.
Bei der Modellauswahl gibt es eine Menge zu sagen. Es ist jedoch gut zu bedenken, dass sowohl Varianz als auch optimistische Voreingenommenheit wirklich schaden können
Wenn Sie an einem Beispiel interessiert sind und Deutsch lesen können, könnte ich meine Diplomarbeit online stellen.
Nach meiner Erfahrung ist das Optimieren von Hyperparametern eine äußerst effektive Idee für die Überanpassung ...
Wenn Sie nun feststellen, dass Sie übermäßig fit sind, haben Sie hauptsächlich zwei Möglichkeiten:
Als Alternative zum Optimieren der Hyperparameter für jeden Trainingssatz können Sie (Hyper-) Parameter vorab festlegen (dh im Voraus korrigieren). Ich mache das so oft wie möglich für meine Modelle, da ich in der Regel noch weniger Fälle habe als Sie, siehe unten.
Diese Korrektur muss jedoch wirklich und ehrlich im Voraus erfolgen: Ich habe z. B. einen Kollegen nach seinen optimierten Parametern für einen ähnlichen Datensatz gefragt (unabhängiges Experiment) oder ein Vorexperiment mit Rastersuche für die Parameter durchgeführt. Dieses erste Experiment wird dann verwendet, um einige experimentelle Parameter sowie Modellparameter für das reale Experiment und die Datenanalyse festzulegen. Siehe unten für weitere Erklärungen.
Natürlich ist es möglich, ordnungsgemäße Tests für automatisch optimierte Modelle durchzuführen (doppelte oder verschachtelte Validierung), aber Ihre Stichprobengröße lässt möglicherweise keine doppelte Aufteilung der Daten zu .
In dieser Situation ist es IMHO Meinung nach viel besser, eine ehrliche Schätzung für ein Modell zu melden, das auf der Grundlage professioneller Erfahrung mit der Auswahl von Modellierungsparametern erstellt wurde, als eine überoptimistische Schätzung für eine Art automatisch optimiertes Modell.
Eine andere Sichtweise auf die Situation ist, dass Sie einen Kompromiss eingehen müssen
Einige ähnliche Gedanken zu einer ähnlichen Frage: /stats//a/27761/4598
Über die Festlegung von Parametern und die Kommentare von Dikran Marsupial
Ich benutze den Begriff Hyperparameter, wie ihn Dikran Marsupial in seiner Arbeit verwendet (Link in seiner Antwort).
Ich arbeite mit spektroskopischen Daten. Dies ist eine Art von Messung, bei der die Datenanalyse und -modellierung häufig eine gewisse Vorverarbeitung umfasst. Dies kann als Hyperparameter angesehen werden (z. B. welche Polynomreihenfolge sollte für die Grundlinie verwendet werden? Welche Messkanäle sollten einbezogen werden?). Es gibt andere Entscheidungen, die näher an Ihren SVM-Parametern liegen, z. B. wie viele Hauptkomponenten verwendet werden müssen, wenn eine PCA zur Dimensionsreduzierung durchgeführt wird, bevor das "echte" Modell trainiert wird? Und manchmal verwende ich auch die SVM-Klassifizierung, sodass ich mich für SVM-Parameter entscheiden muss.
Nun, meiner Meinung nach ist der beste Weg, Hyperparameter zu korrigieren, wenn Sie Gründe haben, die von der Anwendung herrühren. ZB entscheide ich mich in der Regel aus physikalischen / chemischen / biologischen Gründen für eine Basislinie (z. B. Kenntnisse über die Probe und das daraus resultierende spektroskopische Verhalten). Mir ist jedoch keine solche Argumentation bekannt, die bei SVM-Parametern hilft ...
Der oben erwähnte Fall von Vorversuchen sieht wie folgt aus:
Die Spektren werden analysiert, eine iterierte doppelte Kreuzvalidierung (SVM) wird ausgeführt (ein oder zwei Nächte auf dem Berechnungsserver verbracht).
Mein Fazit lautet: Obwohl ich nicht sicher sein kann, ob die endgültigen Hyperparameter optimal sind, gibt mir die äußere Kreuzvalidierung eine angemessene Schätzung der Leistung der Ersatzmodelle.
Während des experimentellen Teils haben wir einige Änderungen in der Versuchsanordnung beschlossen (Dinge, die das Signal-Rausch-Verhältnis der Daten nicht beeinflussen, aber bei der Automatisierung des Instruments noch einen Schritt weiter gehen).
Wir verbessern die experimentellen Einstellungen und gewinnen neue Spektren. Wie Zellen sind, müssen sie frisch gezüchtet werden. Dh der neue Datensatz sind auch unabhängige Kulturchargen.
Jetzt stehe ich vor der Entscheidung: Soll ich die innere Kreuzvalidierung "überspringen" und einfach mit den Hyperparametern fortfahren, die ich mit den alten Daten ermittelt habe?
In diesem Fall habe ich mich für feste Parameter entschieden (aufgrund der Erfahrung mit ähnlichen Daten und dem Wissen, dass wir in Zukunft unsere "Hausaufgaben" erledigen müssen, einschließlich unter anderem der Überprüfung dieser Entscheidungen mit großen Datenmengen).
Beachten Sie, dass das Wichtigste ist, dass ich das Innere ( Tuning Cross Validation) überspringe , nicht das Äußere. Mit festen Hyperparametern erhalte ich eine unvoreingenommene Schätzung der Leistung eines möglicherweise suboptimalen Modells. Es ist wahr, dass diese Schätzung einer hohen Varianz unterliegt, aber diese Varianz ist im Grunde die gleiche, ob ich die innere Abstimmung mache oder nicht.
Überspringt man die äußere Verzerrung, erhält man eine optimistisch verzerrte Schätzung eines abgestimmten Modells - was je nach Anwendung und Daten wertlos sein kann (wenn auch sehr viel zu optimistisch) und eine optimistische Verzerrung eindeutig inakzeptabel sein kann.
quelle
Der Schlüssel, den ich denke, ist es, auf eine gewisse Glätte der Oberfläche um die lokalen Minima (oder jede 1-Dim-Projektion) zu achten und nicht nur das globale Minimum zu nehmen.
quelle