Warum unterschätzt die CV-Schätzung des Testfehlers den tatsächlichen Testfehler?


10

Nach meinem Verständnis unterschätzt die k-fache Kreuzvalidierungsschätzung des Testfehlers normalerweise den tatsächlichen Testfehler. Ich bin verwirrt, warum dies der Fall ist. Ich verstehe, warum der Trainingsfehler normalerweise niedriger ist als der Testfehler - weil Sie das Modell mit denselben Daten trainieren, auf denen Sie den Fehler schätzen! Bei der Kreuzvalidierung ist dies jedoch nicht der Fall. Die Falte, an der Sie den Fehler messen, wird während des Trainingsprozesses ausdrücklich weggelassen.

Ist es auch richtig zu sagen, dass die Kreuzvalidierungsschätzung des Testfehlers nach unten verzerrt ist?


1
Wo sehen Sie das angegeben? Können Sie einige Referenzen geben?
HoraceT

1
(+1) Ich habe die gleiche Aussage gesehen und glaube, dass sie richtig ist, aber ich verstehe auch die Logik nicht
KevinKim

Antworten:


9

Um ein Beispiel zu geben: die Berichterstattung nur die CV Fehler eines Modell im Fall problematisch haben Sie ursprünglich mehr Modelle ( die jeweils einen bestimmten CV Fehler und Fehler Varianz), dann diesen Fehler verwenden , um wählen das am besten geeignete Modell für Ihre Anwendung. Dies ist problematisch, da Sie bei jedem Modell immer noch eine gewisse Chance haben, Glück / Pech zu haben (und bessere / schlechtere Ergebnisse zu erzielen) - und durch die Auswahl eines Modells haben Sie wahrscheinlich auch das Modell ausgewählt, bei dem Sie mehr Glück hatten. Daher ist die Meldung dieses Fehlers als endgültige Fehlerschätzung tendenziell zu optimistisch.

Wenn Sie sich eingehender mit den Details befassen möchten: Diese Antwort enthält Links zu leicht lesbaren Artikeln zu diesem Problem: Missbrauch durch Kreuzvalidierung (Berichtsleistung für den besten Hyperparameterwert)

Wie @cbeleites hervorhebt: Dies ist problematisch, wenn man den erhaltenen k-fachen CV-Fehler verwendet, um z. B. a) aus mehreren Modellen ein bestes Modell aus z. B. verschiedenen Hyperparametern auszuwählen, was Teil des Trainingsprozesses ist, und b) dann meldet den gleichen Fehler wie der Testfehler, anstatt einen separaten, zurückgehaltenen Testsatz zu verwenden. Wenn Sie stattdessen nach dem reinen Lebenslauffehler selbst fragen wollten - ohne ihn zur Auswahl eines Modells zu verwenden -, ist die Antwort von @cbeleites wahrscheinlicher, wonach Sie suchen.


Auch hier geht es darum, einen Trainingsfehler (Training wie in: Diese Schätzung wird beim Erhalten des einen endgültigen Modells verwendet) für einen Generalisierungsfehler zu melden - unabhängig davon, ob dieser Fehler durch Kreuzvalidierung, Hold-out oder was auch immer berechnet wurde andere Fehlerschätzungsmethode.
cbeleites unglücklich mit SX

1
@cbeleites Nochmals, wahrer Punkt - ich gehe normalerweise davon aus, dass die CV-Ergebnisse irgendwie für die Modellauswahl verwendet werden (was für einige der Grund ist, warum CV überhaupt verwendet wird) - weisen Sie daher darauf hin. Ich habe meine Antwort entsprechend aktualisiert.
Geekoverdose

9

Nein, wenn es richtig gemacht wird, neigt die fache Kreuzvalidierung dazu, den Generalisierungsfehler zu überschätzen , dh sie hat eine (normalerweise leichte) pessimistische Tendenz. Das heißt, es gibt eine unvoreingenommene Schätzung des Generalisierungsfehlers für das fragliche Ersatzmodell. Da jedoch der Fehler des Modells mit zunehmender Größe der Trainingsstichprobe (auch als Lernkurve bezeichnet) abnimmt, weist das Ersatzmodell im Durchschnitt einen (geringfügig) höheren tatsächlichen Generalisierungsfehler auf als das Modell, das für den gesamten Datensatz trainiert wurde - dies ist das Modell, dessen Fehler angenähert wird durch die Kreuzvalidierung.k

Richtig gemacht bedeutet grob, dass die Aufteilung in Test- und Trainingssätze innerhalb der Kreuzvalidierung tatsächlich zu Testfällen führt, die wirklich unabhängig vom Modell sind.

Es gibt jedoch eine Reihe von Fallstricken, die diese Unabhängigkeit gefährden . Abhängig davon, wie stark die Testdaten kompromittiert sind und wie stark das Modell überpasst ist, führt dieser Mangel an Unabhängigkeit dazu, dass der Kreuzvalidierungsfehler tatsächlich zu einem Trainingsfehler wird. Alles in allem kann dies zu einer starken optimistischen Tendenz führen (Unterschätzung des tatsächlichen Generalisierungsfehlers).
IMHO ist es wichtig zu verstehen, dass die meisten dieser Fallstricke nicht nur für die Kreuzvalidierung gelten, sondern besser als falsche Aufteilung in Zug und Testsatz charakterisiert werden : Sie können (und können) genauso mit anderen Validierungsschemata wie Hold-Out oder Independent geschehen Testsätze, die tatsächlich nicht so unabhängig sind, wie man annimmt.

Hier sind Beispiele für die häufigsten Fehler beim Aufteilen, die ich sehe:

  • Die Antwort von @ geekoverdose gibt ein Beispiel für die offensichtliche Verwendung einer internen Trainingsfehlerschätzung (!) als Testfehler .
    Allgemeiner ist jede Art von Fehlerschätzung, die für die datengesteuerte Modelloptimierung verwendet wird, ein Trainingsfehler, da mit dieser Fehlerschätzung noch Schulungen durchgeführt werden.
  • Störgrößen, die bei der Aufteilung nicht berücksichtigt werden.
    Eine Zeile in der Datenmatrix stellt nicht unbedingt einen unabhängigen Fall dar, z
    • Behandlung wiederholter Messungen desselben Falls / Subjekts / Patienten als "unabhängig"
    • im Allgemeinen starkes Clustering in den Daten übersehen / ignorieren
    • sich der anhaltenden Drift im Datenerzeugungsprozess nicht bewusst sein (zukünftige unbekannte Fälle vs. nur unbekannte Fälle), ...


0

Lassen Sie mich zunächst die in der Frage verwendeten Begriffe klarstellen, so wie ich sie verstehe. Normalerweise beginnen wir mit einem Trainingsdatensatz, verwenden die k-fache Kreuzvalidierung, um verschiedene Modelle (oder Sätze von Hyperparametern) zu testen, und wählen das beste Modell mit dem niedrigsten CV-Fehler aus. Die "Kreuzvalidierungsschätzung des Testfehlers" bedeutet also, den niedrigsten CV-Fehler als Testfehler zu verwenden, nicht nur den CV-Fehler eines Zufallsmodells (was der Fall von cbeleites diskutiert wird, aber es ist nicht das, was wir normalerweise tun). Der fragliche 'tatsächliche Testfehler' ist ein Fehler, den wir erhalten, wenn wir das beste CV-Modell auf einen unendlichen Testdatensatz anwenden, vorausgesetzt, wir können diesen erhalten. Der CV-Fehler hängt von dem jeweiligen Datensatz ab, und der tatsächliche Testfehler hängt vom besten ausgewählten CV-Modell ab, das auch vom Trainingsdatensatz abhängt. Der Unterschied zwischen dem CV-Fehler und dem Testfehler hängt also von verschiedenen Trainingsdatensätzen ab. Dann stellt sich die Frage: Wenn wir den obigen Vorgang viele Male mit unterschiedlichen Trainingsdatensätzen wiederholen und die beiden Fehler mitteln, warum ist der durchschnittliche CV-Fehler niedriger als der durchschnittliche Testfehler, dh der CV-Fehler ist nach unten vorgespannt? Aber passiert das vorher immer?

Normalerweise ist es unmöglich, viele Trainingsdatensätze und Testdatensätze mit unendlichen Zeilen abzurufen. Es ist jedoch möglich, Daten zu verwenden, die durch Simulation generiert wurden. In "Kapitel 7 Modellbewertung und -auswahl" des Buches "Die Elemente des statistischen Lernens" von Trevor Hastie et al. enthält es ein solches Simulationsexperiment.

Die Schlussfolgerung ist, dass unter Verwendung von CV oder Bootstrap "... die Schätzung des Testfehlers für einen bestimmten Trainingssatz im Allgemeinen nicht einfach ist, wenn nur die Daten aus demselben Trainingssatz verwendet werden". Mit "nicht einfach" ist gemeint, dass der CV-Fehler den tatsächlichen Testfehler abhängig von verschiedenen Trainingsdatensätzen entweder unterschätzen oder überschätzen kann, dh die durch verschiedene Trainingsdatensätze verursachte Varianz ist ziemlich groß. Wie wäre es mit Voreingenommenheit? Das von ihnen getestete kNN- und lineare Modell ist fast nicht voreingenommen: CV-Fehler überschätzen den wahren Testfehler um 0-4%, aber einige Modelle "wie Bäume, Kreuzvalidierung und Boot-Strap können den wahren Fehler um 10% unterschätzen, weil die Die Suche nach dem besten Baum wird stark vom Validierungssatz beeinflusst. "

Zusammenfassend kann der CV-Fehler für einen bestimmten Trainingsdatensatz höher oder niedriger sein als der wahre Testfehler. Für die Verzerrung kann der mittlere CV-Fehler in Abhängigkeit von den Modellierungsmethoden von etwas höher bis viel niedriger als der mittlere wahre Testfehler reichen.

Der Grund für die oben erwähnte Unterschätzung ist, dass die Auswahl der Hyperparameter für das beste Modell letztendlich von dem jeweiligen Trainingsdatensatz abhängt, den wir erhalten. Ein kleines Detail: Die besten Hyperparameter seien M1 in diesem speziellen Trainingsdatensatz. M1 könnte jedoch nicht der beste Hyperparameter in einem anderen Trainingsdatensatz sein, was bedeutet, dass der minimale CV-Fehler geringer ist als der CV-Fehler von M1. Daher ist der erwartete CV-Fehler, den wir aus dem Trainingsprozess erhalten, sehr wahrscheinlich geringer als der erwartete CV-Fehler von M1. Der minimale CV-Fehler eines bestimmten Trainingsdatensatzes wird nur dann nicht verzerrt, wenn das beste Modell unabhängig vom Trainingsdatensatz immer das beste ist. Andererseits könnte der CV-Fehler auch den tatsächlichen Testfehler ein wenig überschätzen, wie von cbeleites diskutiert. Dies liegt daran, dass ein k-facher CV-Fehler erhalten wird, indem ein wenig weniger Trainingsdaten zum Trainieren des Modells verwendet werden (für 10-fache Lebensläufe 90% Daten verwenden). Er ist gegen den tatsächlichen Fehler nach oben vorgespannt, aber nicht viel. Es gibt also zwei Vorurteile, die in verschiedene Richtungen gehen. Bei der Modellierungsmethode kann eine Überanpassung, wenn weniger CV verwendet wird, z. B. 5-fach gegenüber 10-fach, zu einer geringeren Verzerrung führen.

Alles in allem hilft es in der Praxis nicht allzu viel: Wir erhalten normalerweise nur einen "bestimmten" Datensatz. Wenn wir 15% bis 30% als Testdaten angeben und das beste Modell anhand des Lebenslaufs als Trainingsdaten auswählen, unterscheidet sich der CV-Fehler wahrscheinlich vom Testfehler, da beide vom erwarteten Testfehler abweichen. Wir sind möglicherweise misstrauisch, wenn der CV-Fehler viel niedriger als der Testfehler ist, aber wir werden nicht wissen, welcher näher am tatsächlichen Testfehler liegt. Die beste Vorgehensweise könnte darin bestehen, beide Metriken zu präsentieren.

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.