Rastersuche zur k-fachen Kreuzvalidierung

16

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?

user13420
quelle
Diese Frage benötigt weitere Informationen. Welches Modell passen Sie? Was ist Gamma und C in diesem Modell? Könnten Sie diese Informationen weitergeben, indem Sie die Frage bearbeiten und nicht mit Kommentaren.
Wahrscheinlichkeitslogik

Antworten:

14

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.

Dikran Beuteltier
quelle
1
Meine persönlichen Erfahrungen haben mich auch in Bezug auf solche Überanpassungsquellen sehr zurückhaltend gemacht.
cbeleites unterstützt Monica
6

Nachdem Sie die Rastersuche für jedes Ersatzmodell durchgeführt haben, können und sollten Sie ein paar Dinge überprüfen:

  • Variation der optimierten Parameter (hier und C ). Sind die optimalen Parameter stabil? Wenn nicht, sind Sie sehr wahrscheinlich in Schwierigkeiten.γC
  • Vergleichen Sie die gemeldete Leistung der inneren und äußeren Kreuzvalidierung.
    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.
  • Wie stark ist das Optimum? Verschlechtert sich die Leistung bei suboptimalen Parametern schnell? Wie gut ist die optimale Leistung?

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

  • Varianz bedeutet, dass Sie versehentlich ziemlich weit von den wirklich optimalen Hyperparametern entfernt sind.
  • Aber auch Voreingenommenheit kann schaden: Wenn Sie übermäßig fit sind, können Sie in Situationen geraten, in denen viele Modelle für die innere Kreuzvalidierung perfekt aussehen (was aber nicht wirklich der Fall ist). In diesem Fall kann die Abstimmung fehlschlagen, da die Unterschiede zwischen den Modellen nicht erkannt werden.
  • Wenn der Bias von den Hyperparametern abhängt, haben Sie große Probleme.

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:

  • Berichten Sie, dass bei der Optimierung ein Problem mit der Überanpassung aufgetreten ist, Sie jedoch eine ordnungsgemäße äußere Validierung durchgeführt haben, die zu ... geführt hat (Ergebnisse der äußeren Kreuzvalidierung).
  • die Komplexität des Modells einschränken. Eine Möglichkeit, dies zu tun, besteht darin, Hyperparameter zu korrigieren:

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

  • schlechtere Leistung aufgrund weiterer Fälle für die Parameteroptimierung (kleinere Stichprobengröße => schlechteres Modell, aber "optimale" Parameter)
  • schlechtere Leistung aufgrund suboptimaler Parameterfixierung durch den Experten (jedoch bei größeren Trainingsdaten).

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:

  • wir nehmen Daten von einer Reihe von Zellen (wollen verschiedene Zelllinien unterscheiden).
  • Die Spektren werden analysiert, eine iterierte doppelte Kreuzvalidierung (SVM) wird ausgeführt (ein oder zwei Nächte auf dem Berechnungsserver verbracht).

    • γC
    • Ich beobachte auch eine gewisse Überanpassung: Die äußere Kreuzvalidierung ist nicht ganz so gut wie die Abstimmungsergebnisse. Das ist wie erwartet.
    • Dennoch gibt es Unterschiede in der Leistung über den Abstimmungsbereich der Hyperparameter, und die Leistung über das Abstimmungsraster sieht einigermaßen gleichmäßig aus. Gut.
  • 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?

  • Wie oben erwähnt, gehe ich das Risiko ein, dass diese vorher festgelegten Hyperparameter nicht optimal sind.
  • Aber ich kann auch nicht sicher sein, dass ich durch die innere (Tuning-) Cross-Validierung wirklich optimale Hyperparameter erhalte.
  • Die Abstimmung auf die alten Daten war jedoch stabil.
  • Bei der Optimierung trainiere ich weniger Proben: Da ich sowieso zu wenige Proben (TM) habe, muss ich damit rechnen, schlechtere Modelle zu erhalten, wenn ich mehr Proben für eine zweite Runde der Kreuzvalidierung beiseite lege.

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.

cbeleites unterstützt Monica
quelle
Es tut uns leid, dass Sie diese Antwort ablehnen müssen, aber die Verwendung vordefinierter Werte für die Hyperparameter ist keine gute Praxis, da die optimale Verallgemeinerung von den entsprechenden Einstellungen für diese Parameter abhängt, die von Datensatz zu Datensatz variieren (und bei Problemen nur wenige Daten aus der Stichprobe zu probieren). Eine Rastersuche vor dem Experiment ist noch schlimmer, da sie genau die gleiche Art von Verzerrung ergibt, die in meinem Aufsatz diskutiert wurde. Bei SVMs tritt das Problem der zweimaligen Aufteilung der Daten nicht auf, da Sie die virtuelle, einmalige Kreuzvalidierung fast kostenlos als Modellauswahlkriterium im inneren Lebenslauf verwenden können.
Dikran Beuteltier
Die Überprüfung der Variation der optimierten Parameter ist jedoch ein ausgezeichneter Vorschlag. Wenn Sie über genügend Daten verfügen, um die Parameter und Hyperparameter zuverlässig aus den Daten abschätzen zu können, sind die in meinem Artikel erwähnten Verzerrungen wahrscheinlich kein allzu großes Problem. Wenn die optimierten Hyperparameterwerte jedoch aufgrund eines kleinen Datensatzes sehr variabel sind, ist dies die Art von Situation, in der eine verschachtelte Kreuzvalidierung und andere derart strenge Ansätze wirklich erforderlich sind, um erhebliche Abweichungen bei der Leistungsschätzung zu vermeiden.
Dikran Beuteltier
@DikranMarsupial: Ich habe meinen Hintergrund etwas klarer erklärt, schau mal. Außerdem habe ich Ihre Zeitung gründlicher gelesen. Ich denke, unsere Punkte sind nicht so weit voneinander entfernt. Wenn Sie
möchten
@DikranMarsupial: (Leider kann ich für die meisten meiner Daten die analytische Option nicht verwenden, da ich verschachtelte / hierarachische Datenstrukturen habe.) Außerdem habe ich einige hässliche Überraschungen mit Leave-One-Out erlebt, sodass ich die K-Fold- oder Out-of-Bootstrap-Validierung wiederholt habe. Dies ist jedoch bei dieser Frage kein Thema.
cbeleites unterstützt Monica
@DikranMarsupial: Wenn die optimierten Parameter nicht stabil sind, habe ich sowieso Probleme. Dann kann ich natürlich nicht schlussfolgern, dass ich diese Parameter für die neuen Daten verwenden kann. Aber ich würde sie auch nicht als optimal für das endgültige Modell bezeichnen (welche der vielen Parametersätze?) ... Ich habe gesehen, dass die Optimierung völlig wild lief, aber das ging immer mit sehr überoptimistischen Ergebnissen der inneren (Optimierungs-) Validierung einher . Und das kann ich messen, indem ich die äußere Kreuzvalidierung mit der inneren Kreuzvalidierungsschätzung des optimalen Modells vergleiche. Die Antwort wurde entsprechend aktualisiert.
cbeleites unterstützt Monica
5

γCkterr(γ,C)γCγ,C{2-nl,2-nl+1,,2nu}γ

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.

γ(pσ)-1pγCC

muratoa
quelle
Nehmen wir also an, ich habe einen Datensatz mit 120 Stichproben. Sollte ich Gamma und C anfänglich mit 120 Proben finden? Führen Sie dann eine 10-fache Kreuzvalidierung mit demselben Gamma und C für die k Holdouts durch, wenn Sie 90% der Daten zum Trainieren und 10% der Daten zum Testen verwenden? Bedeutet das nicht, dass ich das gleiche Trainingsset verwendet habe, um Gamma und C zu erhalten, und ein Teil der Proben auch auf dem Test-Set ist?
user13420
γC
(γ,C)(γ,C)(γ,C)
2
λβ
2
λβλββ(λ)