Varianzschätzungen in der k-fachen Kreuzvalidierung


27

Die K-fache Kreuzvalidierung kann verwendet werden, um die Verallgemeinerungsfähigkeit eines gegebenen Klassifikators abzuschätzen. Kann (oder sollte) ich aus allen Validierungsläufen auch eine gepoolte Varianz berechnen, um eine bessere Schätzung der Varianz zu erhalten?

Wenn nein, warum?

Ich habe Papiere gefunden, die die gepoolte Standardabweichung über Kreuzvalidierungsläufe verwenden . Ich habe auch Aufsätze gefunden, in denen explizit festgestellt wurde, dass es keinen universellen Schätzer für die Validierungsvarianz gibt . Ich habe jedoch auch Artikel gefunden, die einige Varianzschätzer für den Generalisierungsfehler zeigen (ich lese noch und versuche, diesen zu verstehen). Was tun (oder berichten) die Menschen in der Praxis?

BEARBEITEN: Wenn CV zur Messung des groben Klassifizierungsfehlers verwendet wird (dh eine Probe wurde entweder korrekt gekennzeichnet oder nicht; z. B. wahr oder falsch), ist es möglicherweise nicht sinnvoll, von einer gepoolten Varianz zu sprechen. Ich spreche jedoch von dem Fall, in dem für die von uns geschätzte Statistik eine Varianz definiert ist. Für eine gegebene Falte können wir also sowohl einen Wert für die Statistik als auch eine Varianzschätzung erhalten. Es erscheint nicht richtig, diese Informationen zu verwerfen und nur die Durchschnittsstatistik zu berücksichtigen. Und obwohl mir bewusst ist, dass ich mithilfe von Bootstrap-Methoden eine Varianzschätzung erstellen könnte, würde dies (wenn ich nicht sehr falsch liege) immer noch die Falzvarianzen ignorieren und nur die statistischen Schätzungen berücksichtigen (und viel mehr Rechenleistung erfordern).


Haben Sie die Varianz unter Berücksichtigung der beiden möglichen Unterschiede berechnet?
Zeferino

Ja, habe ich. In einigen Experimenten gab es eine Änderung von ungefähr einer Größenordnung zwischen der Varianz und der gepoolten Varianz für Trainingsproben. Es gab keinen großen Unterschied für die Validierungsmuster. Die größeren Änderungen schienen mit weniger genauen Modellen verbunden zu sein.
Cesar

1
@Cesar: nette Beobachtung: Ihre Modelle sind sehr instabil (hohe Varianz zwischen den Iterationen). Bei der Klassifizierung (es sei denn, der Klassifizierer ist schlechter als das Erraten) führen instabile Vorhersagen zu falschen Vorhersagen. Ein anschaulicher Gedanke dafür ist, dass eine Abweichung von einer korrekten Vorhersage immer in Richtung "falsch" geht, es gibt kein zu hohes, was sich mit zu gering aufheben würde.
cbeleites unterstützt Monica

1
@cbeleites: wäre das dann nicht etwas zu erwarten, da die großen Varianzänderungen meist bei Modellen mit höheren Fehlerraten auftreten? Übrigens schönes Update auf deine Antwort. Ich muss es noch genauer lesen, bin aber schon sehr dankbar. Vielen Dank.
Cesar

1
@Cesar: Thx. Sicher ist zu erwarten, dass die Varianzformel für die Proportionen weniger anschaulich ist (siehe meine Antwort): Je extremer die wahre Fehlerrate ist, desto geringer ist die Varianz, desto größer ist die maximale Varianz bei einer Fehlerrate von 50%.
cbeleites unterstützt Monica

Antworten:


13

Sehr interessante Frage, ich muss die Papiere lesen, die du gibst ... Aber vielleicht beginnt uns das in Richtung einer Antwort:

Normalerweise gehe ich dieses Problem sehr pragmatisch an: Ich iteriere die k-fache Kreuzvalidierung mit neuen zufälligen Teilungen und berechne die Leistung für jede Iteration wie gewohnt. Die gesamten Teststichproben sind dann für jede Iteration gleich, und die Unterschiede ergeben sich aus unterschiedlichen Aufteilungen der Daten.

Dies melde ich zB als 5. bis 95. Perzentil der beobachteten Leistung bezogen auf. Tausche bis zu Proben gegen neue Proben aus und diskutiere es als Maß für die Instabilität des Modells.nk1

Randnotiz: Ich kann sowieso keine Formeln verwenden, die die Stichprobengröße benötigen. Da meine Daten gruppiert oder hierarchisch strukturiert sind (viele ähnliche, aber nicht wiederholte Messungen desselben Falls, normalerweise mehrere [hundert] verschiedene Stellen derselben Probe), kenne ich die effektive Stichprobengröße nicht.

Vergleich zum Bootstrapping:

  • Iterationen verwenden neue zufällige Teilungen.

  • Der Hauptunterschied ist das Resampling mit (Bootstrap) oder ohne (CV) -Ersetzung.

  • Der Rechenaufwand ist ungefähr gleich, da ich keine Iterationen von cv keine Bootstrap-Iterationen / k wählen würde , dh die gleiche Gesamtzahl von Modellen berechnen würde.

  • bootstrap hat Vorteile gegenüber cv in Bezug auf einige statistische Eigenschaften (asymptotisch korrekt, möglicherweise benötigen Sie weniger Iterationen, um eine gute Schätzung zu erhalten)

  • Mit cv haben Sie jedoch den Vorteil, dass Ihnen dies garantiert ist

    • Die Anzahl der verschiedenen Trainingsmuster ist für alle Modelle gleich (wichtig, wenn Sie Lernkurven berechnen möchten).
    • Jede Probe wird in jeder Iteration genau einmal getestet
  • Einige Klassifizierungsmethoden verwerfen wiederholte Samples, so dass Bootstrapping keinen Sinn ergibt

Varianz für die Leistung

Kurze Antwort: Ja, es ist sinnvoll, von Varianz in Situationen zu sprechen, in denen nur {0,1} Ergebnisse vorliegen.

Schauen Sie sich die Binomialverteilung an (k = Erfolge, n = Tests, p = wahre Erfolgswahrscheinlichkeit = durchschnittliches k / n):

σ2(k)=np(1p)

Die Varianz der Proportionen (wie Trefferrate, Fehlerrate, Empfindlichkeit, TPR, ..., ich verwende ab jetzt und für den beobachteten Wert in einem Test) ist ein Thema, das ganze Bücher füllt. .ppp^

  • Fleiss: Statistische Methoden für Kurse und Anteile
  • Forthofer und Lee: Biostatistik hat eine schöne Einführung.

Nun ist und deshalb:p^=kn

σ2(p^)=p(1p)n

Dies bedeutet, dass die Unsicherheit für die Messung der Klassifikatorleistung nur von der tatsächlichen Leistung p des getesteten Modells und der Anzahl der Testproben abhängt.

Bei der Kreuzvalidierung gehen Sie davon aus

  1. dass die k "Surrogat" -Modelle die gleiche wahre Leistung haben wie das "echte" Modell, das Sie normalerweise aus allen Beispielen erstellen. (Die Aufschlüsselung dieser Annahme ist die bekannte pessimistische Tendenz).

  2. dass die k "Ersatz" -Modelle die gleiche wahre Leistung haben (äquivalent sind, stabile Vorhersagen haben), so dass Sie die Ergebnisse der k Tests bündeln dürfen.
    Natürlich können dann nicht nur die k "Surrogat" -Modelle einer Iteration von Lebenslauf zusammengefasst werden, sondern auch die ki-Modelle von Iterationen von k-fachem Lebenslauf.

Warum iterieren?

Die Hauptursache der Iterationen ist die Instabilität des Modells (Vorhersage), dh die Varianz der Vorhersagen verschiedener Modelle für dieselbe Stichprobe.

Sie können Instabilität direkt als z. B. die Varianz in der Vorhersage eines bestimmten Testfalls angeben, unabhängig davon, ob die Vorhersage korrekt ist, oder etwas indirekter als die Varianz von für verschiedene Lebenslaufiterationen.p^

Und ja, das sind wichtige Informationen.

Wenn Ihre Modelle nun vollkommen stabil sind, würden alle oder für eine gegebene Stichprobe genau dieselbe Vorhersage erzeugen. Mit anderen Worten, alle Iterationen hätten das gleiche Ergebnis. Die Varianz der Schätzung würde durch die Iteration nicht verringert (unter der Annahme von ). In diesem Fall ist die Annahme 2 von oben erfüllt und Sie unterliegen nur wobei n die Gesamtzahl der getesteten Proben ist k Falten des Lebenslaufs. In diesem Fall sind keine Iterationen erforderlich (außer zum Nachweis der Stabilität). k n i t e r . c v n - 1 n σ 2 ( p ) = p ( 1 - p )nbootstrapkniter. cvn1nσ2(p^)=p(1p)n

Sie können dann Konfidenzintervalle für die wahre Leistung aus der beobachteten Anzahl von Erfolgen in den Tests konstruieren . Daher ist es streng genommen nicht erforderlich, die Varianzunsicherheit zu melden, wenn und gemeldet werden. In meinem Fachgebiet sind sich jedoch nicht viele Menschen dessen bewusst oder haben sogar einen intuitiven Überblick darüber, wie groß die Unsicherheit bei welcher Stichprobengröße ist. Deshalb würde ich empfehlen, es trotzdem zu melden.k n p npknp^n

Wenn Sie Modellinstabilität beobachten, ist der gepoolte Durchschnitt eine bessere Schätzung der tatsächlichen Leistung. Die Varianz zwischen den Iterationen ist eine wichtige Information, und Sie können sie mit der erwarteten minimalen Varianz für eine Testmenge der Größe n mit der durchschnittlichen Leistung der tatsächlichen Leistung über alle Iterationen vergleichen.


Sie iterieren mit neuen zufälligen Splits, mit Ersetzung, wie in Bootstrap? Oder wiederholen Sie die k-fache Kreuzvalidierung mehrmals? Das ist interessant, weil es nicht wie Bootstrap aussieht, aber so funktionieren kann. Aber wie viele Replikationen führen Sie durch? Dies kann sehr teuer werden.
Cesar

@Cesar: Es ist sehr ähnlich zu Bootstrap, siehe die erweiterte Antwort.
cbeleites unterstützt Monica

Wie belässt der Lebenslauf für jedes Modell die "gleiche Anzahl unterschiedlicher Trainingsmuster", das Bootstrapping jedoch nicht? Ich folge nicht, da der Lebenslauf "Datensätze replizieren" eine andere Kombination von Beobachtungen darstellt - wie können sie möglicherweise die gleiche Anzahl unterschiedlicher Beobachtungen liefern? Vielleicht nehmen Sie an, dass jeder Datensatz im ursprünglichen Trainingssatz unterschiedlich ist?
Wahrscheinlichkeitslogik

@probabilityislogic: Die CV-Replikat-Datensätze sind kleiner als der ursprüngliche Datensatz. Somit können auch bei einem erneuten Abtasten ohne Ersatz verschiedene solche Wiederholungen erzeugt werden. Resampling mit Ersatz können Sie den gleichen Datensatz mehrmals zeichnen. Somit kann die Anzahl der eindeutigen Datensätze variieren. Ja, ich gehe davon aus, dass die ursprünglichen Aufzeichnungen unterschiedlich sind. Um die statistische Unabhängigkeit zu erhalten, die für viele Anwendungen von entscheidender Bedeutung ist, sollte die erneute Abtastung auf der höchsten Ebene der Datenhierarchie erfolgen. (ZB arbeite ich mit Patientendaten mit Hunderten von Zeilen für jeden Patienten => Patienten neu abtasten)
cbeleites unterstützt Monica

1
Das Problem beim Schätzen der Varianz (und dann der Konfidenzintervalle) besteht darin, dass die Kreuzvalidierungsmodelle und -tests (Überiterationen) nicht unabhängig sind: Am Ende gibt es nur unabhängige Fälle. Die Modelle sollten überhaupt nicht unabhängig sein - bei der üblichen Bewertung des Lebenslaufs wird davon ausgegangen, dass sie gleich sind. Unabhängig davon, wie viele Iterationen Sie haben, wurde jeder Fall bereits in der ersten Iteration getestet. Und es stellt sich immer die Frage, wie repräsentativ Ihr kleiner Datensatz ist. n
cbeleites unterstützt Monica

1

Denken Sie daran, dass der Lebenslauf nur eine Schätzung ist und niemals den „echten“ Generalisierungsfehler darstellen kann. Abhängig von Ihrer Stichprobengröße (die sich auf die Anzahl der Falten oder die Faltengröße auswirkt) sind Sie möglicherweise stark eingeschränkt in der Lage, Parameterschätzungen für die Verteilung des Generalisierungsfehlers zu berechnen. Meiner Meinung nach (und ich habe gesehen, dass es in verschiedenen Lehrbüchern behauptet wird, "Knowledge Discovery with Support Vector Machines" - Lutz Hamel) können Sie eine Bootstrapping-Variante des Lebenslaufs durchführen, um die Verteilung des Generalisierungsfehlers zu schätzen, 1 (zum Beispiel) einmaliger Lebenslauf gibt Ihnen nicht genügend Datenpunkte, um Rückschlüsse auf den wahren Gen-Fehler zu ziehen. Beim Bootstrapping müssen Sie mehrere Proben mit Ersatz aus Ihrem Training / Test / Wert entnehmen, um effektiv mehrere (z. B. 1000 oder so) 10-1 (oder was auch immer) CV-Tests durchzuführen. Sie nehmen dann Ihre Stichprobenverteilung der Mittelwerte für jeden CV-Test als Schätzung der Stichprobenverteilung des Mittelwerts für die Population der CV-Fehler und können daraus Verteilungsparameter abschätzen, dh Mittelwert, Median, Standard, Minimum, Maximum, Q1, Q3 usw. Es ist ein bisschen Arbeit und meiner Meinung nach nur dann wirklich erforderlich, wenn Ihre Bewerbung wichtig / riskant genug ist, um die zusätzliche Arbeit zu rechtfertigen. Das heißt, vielleicht in einem Marketingumfeld, in dem das Geschäft einfach gerne besser als zufällig ist, dann vielleicht nicht erforderlich. ABER wenn Sie versuchen, die Reaktionen der Patienten auf Hochrisikodrogen zu bewerten oder Einkommenserwartungen für große Investitionen vorherzusagen, sind Sie möglicherweise vorsichtig bei der Durchführung.


Es ist eine Schätzung, aber so könnte man über praktisch jede Verwendung einer Statistik sprechen. Wenn jedoch für jede Falte bereits eine Varianzschätzung vorliegt, erscheint es nicht richtig, diese Informationen zu verwerfen. Ich habe die Frage mit Klarstellungen aktualisiert.
Cesar

Vielleicht verstehe ich es nicht. Ich verstehe nicht wirklich, warum Sie über die Varianz einer einzelnen Falte quälen?
Clancy

Es ist nicht gerade billig, einen einzigen 10-fachen Lebenslauf zu führen, wenn ich ein bestimmtes Problem anpacke. Sie haben Recht, ich könnte die Varianz abschätzen, indem ich mehrere Stichproben mit Ersetzung wie beim Bootstrap nehme. Aber eine große Anzahl von Lebensläufen, sogar einige Hundert, könnte in meinem Fall sehr unpraktisch sein. Ich suche nach einer Möglichkeit (falls vorhanden), einzelne Falzabweichungsschätzungen zu kombinieren, damit ich zumindest die Anzahl der benötigten Bootstrap-Beispiele reduzieren kann. Und außerdem Neugier.
Cesar

ach okay Vielleicht wird die Varianz von jeder der 10 - fachen Mittel von der aus der Gesamtfaltung Mittelwert wird eine Zufallsvariable aus der Stichprobenverteilung für Varianzen ausgewählt sein ... (die ich denke , ist ein chi sq dist oder F dist)
Clancy

@clancy: meinst du mit 10-1 einen ausschließlichen Lebenslauf für n = 10 Proben? Beachten Sie, dass für das Auslassen von Iterationen kein Sinn besteht.
cbeleites unterstützt Monica
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.