Inwiefern unterscheidet sich die Quervalidierung vom Daten-Snooping?


13

Ich habe gerade "Eine Einführung in das statistische Lernen" abgeschlossen . Ich habe mich gefragt, ob sich die Verwendung der Kreuzvalidierung zum Ermitteln der besten Optimierungsparameter für verschiedene Techniken des maschinellen Lernens von Datenschnüffeln unterscheidet.

Wir überprüfen wiederholt, welcher Wert des Abstimmungsparameters zu einem besten Vorhersageergebnis im Testsatz führt. Was ist, wenn der Abstimmungsparameter, den wir erhalten, zufällig zu diesem speziellen Testsatz passt und bei zukünftigen Testmengen keine gute Leistung erbringt?

Bitte entschuldigen Sie mein unerfahrenes Verständnis des maschinellen Lernens, und ich bin gespannt darauf, ausgebildet zu werden.

BEARBEITEN: Siehe @AdamO-Antwort zur Definition von "Daten-Snooping". Ich habe den Begriff in meiner Frage sehr ungenau verwendet.


Ich freue mich so, dass ich morgen einen TC mit einigen Forschern habe, die etwas veröffentlicht haben. Leider leidet ich unter diesem Problem. Gute Frage!
pallevillesen

Antworten:


12

Ich habe mich gefragt, ob sich die Verwendung der Kreuzvalidierung zum Ermitteln der besten Optimierungsparameter für verschiedene Techniken des maschinellen Lernens von Datenschnüffeln unterscheidet.

Ihr Anliegen ist genau richtig, und es gibt eine ganze Menge Literatur zu diesem Thema, z

Das Problem ist, dass die Optimierung von Hyperparametern mit Kreuzvalidierung ein datengesteuerter Optimierungsprozess ist und immer noch dazu neigt, sich zu stark an Ihren Datensatz anzupassen (weniger als die Optimierung durch Wiedereinstellungsfehler, aber immer noch). Der Versuch, die Ergebnisse der Tuning-Cross-Validierung als "unabhängiges" Leistungsmaß zu verwenden, ähnelt dem Essen des Kuchens (= Tuning) und dem Beibehalten (= Messen der endgültigen Modellleistung).

Dies bedeutet nicht, dass Sie keine Kreuzvalidierung für die Optimierung von Hyperparametern verwenden sollten. Es bedeutet nur, dass Sie es nur für einen Zweck verwenden können. Optimieren oder messen Sie die Modellleistung zu Validierungszwecken.

Die Lösung besteht darin, dass Sie eine unabhängige Validierung durchführen müssen, um die Qualität des mit den abgestimmten Hyperparametern erhaltenen Modells zu messen. Dies wird als verschachtelte oder doppelte Validierung bezeichnet. Zu diesen Themen finden Sie hier eine Reihe von Fragen und Antworten

Konzeptionell möchte ich sagen, dass das Training alle Arten von Fantasieschritten umfasst, um nicht nur die "üblichen" Modellparameter anzupassen, sondern auch die Hyperparameter anzupassen (automatisch abzustimmen). Die datengetriebene Optimierung von λ ist also eindeutig Teil des Modelltrainings.

Als Faustregel können Sie auch sagen, dass das Modelltraining alles ist, was durchgeführt werden muss, bevor Sie eine einsatzbereite finale Black-Box-Funktion haben, mit der Vorhersagen für neue Fälle erstellt werden können.


PS: Ich finde die Terminologie "Testen gegen Validierung" sehr verwirrend, da in meinem Bereich "Validierung" bedeutet, dass das endgültige Modell für den Zweck geeignet ist, und dies wird von anderen eher als Testen als als Validierung bezeichnet. Ich bevorzuge es, das innere Test-Set "Tuning-Test-Set" und das äußere "Final Validation-Test-Set" oder dergleichen zu nennen.


Aktualisieren:

Also, wenn mein Modell (in diesem Fall mein Optimierungsparameter) die äußere Validierung nicht besteht, was soll ich dann tun?

In der Regel passiert nichts einfach so: Es gibt typische Situationen, die einen solchen Fehler verursachen können. Und alle Situationen, die mir bewusst sind, sind überpassende Situationen. Sie müssen sich darüber im Klaren sein, dass durch Regularisierung zwar die erforderliche Anzahl von Schulungsfällen verringert wird, durch datengesteuerte Optimierung jedoch große Datenmengen erforderlich sind.

Meine Empfehlungen:

  • In der Regel haben Sie (sollten) bereits grobe Erwartungen, z. B. welche Leistung erreichbar sein sollte, welche Leistung Sie als verdächtig gut betrachten würden. Oder legen Sie fest, welche Leistung Sie erzielen möchten, und legen Sie die Basisleistung fest. Berechnen Sie daraus und aus der Anzahl der verfügbaren Trainingsfälle (für das von Ihnen gewählte Aufteilungsschema) die erwartete Unsicherheit für die inneren (Tuning-) Tests. Wenn diese Unsicherheit darauf hindeutet, dass Sie keine aussagekräftigen Vergleiche erhalten, führen Sie keine datengesteuerte Optimierung durch.

  • Sie sollten überprüfen, wie stabil sowohl die erhaltenen Vorhersagen mit dem gewählten λ als auch das durch das Autotuning-Verfahren gefundene optimale λ sind. Wenn λ in Bezug auf unterschiedliche Aufteilungen Ihrer Daten nicht ausreichend stabil ist, hat die Optimierung nicht funktioniert.

  • Wenn Sie feststellen, dass Sie die datengetriebene Optimierung entweder nicht durchführen können oder dass sie doch nicht funktioniert hat, können Sie das λ anhand Ihres Fachwissens auswählen, z. B. aufgrund von Erfahrungen mit ähnlichen Daten. Oder aufgrund der Erkenntnis, dass eine stärkere Regularisierung erforderlich ist, wenn Sie feststellen, dass die Optimierung fehlgeschlagen ist: Die Überanpassung, die zum Ausfall führt, wirkt sich auf zu komplexe Modelle aus.


1
Ich stimme zu, die Terminologie Zug / Test / Validierung ist nicht sehr intuitiv
M. Berk

3

k

λλ

"Data Snooping" oder, wie ich es nennen könnte, "Exploratory Data Analysis" befasst sich nicht mit einer vorgegebenen Frage. Sie führen eine Reihe möglicher, plausibel interessanter Ergebnisse auf und bewerten sie einzeln. Sie können beliebig viele explorative Analysen durchführen und müssen sich normalerweise nicht um mehrere Tests kümmern. Sie können jede explorative Analyse einzeln anhand der Kreuzvalidierung bewerten. Bei mehr als einer explorativen Analyse werden jedoch nicht automatisch mehrere Tests durchgeführt. Die Hypothesen in diesem Umfeld können recht weitreichend sein: "Welche Faktoren sind mit Prostatakrebs verbunden?" (von dem Kaffeetrinken, Vasektomiegebrauch usw. usw. in einer Kohorte gemessen wurden). Signifikante Ergebnisse werden als "hypothesenerzeugend" angesehen und liefern keine bestätigenden Beweise.

k


λλ

1
@Anh: Die Abstimmung von λ durch Kreuzvalidierung ist an sich nicht schlecht. Damit haben Sie jedoch diese Quervalidierung für die Optimierung von λ "aufgebraucht", und Sie benötigen eine andere Validierung, die unabhängig von der Modellierung ist, einschließlich des Optimierungsprozesses von λ. Nicht diese äußere Validierung ist schlecht. Wenn dieses bestimmte λ nicht "wieder" funktioniert (z. B. bei einem anderen Teil der Daten), hat Ihre Optimierung nicht funktioniert. In dieser Situation werden Sie normalerweise auch einen großen Unterschied zwischen den Ergebnissen der äußeren Validierung und der beobachteten "besten" Leistung während der Optimierung feststellen.
cbeleites unterstützt Monica

@cbeleites Also, wenn mein Modell (in diesem Fall mein Optimierungsparameter) die äußere Validierung nicht besteht, was soll ich dann tun? Ich kann nicht zurückgehen und einen anderen Tuning-Parameter finden, weil das im Wesentlichen die äußere Validierung in das Tuning-Test-Set verwandeln würde. Also, was ist zu tun?
Heisenberg

λ

λk

1

Tatsächlich versuchen Sie während des Lebenslaufs, die besten Parameter in einem Validierungssatz zu finden , der sich vom Testsatz unterscheidet. Sie teilen Ihre gesamten Daten in drei Sätze auf: Trainingssatz, Validierungssatz und Testsatz. Wenn Sie die Kreuzvalidierung ordnungsgemäß durchführen, schauen Sie nie bis zum Ende auf das Testende, sodass überhaupt kein Snooping stattfindet. Eine Kreuzvalidierung des Testsets ist ein schwerwiegender (und dennoch häufiger) methodischer Fehler.


Wenn Validierungssatz und Testsatz unterschiedlich sind, ist dies für mich sinnvoll. In dem Buch, das ich gelesen habe (von Hastie et al., Nicht weniger), argumentieren sie jedoch, dass die Verwendung von Hold-out-Tests teuer ist (wir verwenden nicht viele Daten zum Trainieren). in dem ich glaube nicht, dass es einen separaten testsatz gibt.
Heisenberg

1
@Anh: Beide Aufteilungen können durch erneutes Abtasten (z. B. wiederholte Kreuzvalidierung) durchgeführt werden, anstatt nur einen kleinen Datensatz beiseite zu legen.
cbeleites unterstützt Monica

@Anh: Bei der k-fachen Kreuzvalidierung teilen Sie das k-fache des ursprünglichen Trainingssatzes in einen kleineren Trainingssatz und einen Validierungssatz auf. Das ursprüngliche Test-Set ist nicht beteiligt und wird nur am Ende verwendet.
Jerorx

0

Wenn Sie sich beispielsweise Seite 225 von "Einführung in das statistische Lernen" mit Lasso-Beispiel ansehen, werden Sie feststellen, dass sie tatsächlich eine verschachtelte Kreuzvalidierung durchführen. Dh die Modellauswahl erfolgt in cv.glmneteinem trainSet, das vom cv.glmnetPaket in Zug-Test-Paare aufgeteilt wird. Die Modellvalidierung erfolgt bei aktivierter Validierung (" test"), dh es handelt sich um eine unabhängige Validierung.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.