Kreuzvalidierung (Verallgemeinerung von Fehlern) nach Modellauswahl

21

Hinweis: Groß- / Kleinschreibung ist n >> p

Ich lese Elemente des statistischen Lernens und es gibt verschiedene Erwähnungen über den "richtigen" Weg zur Kreuzvalidierung (z. B. Seite 60, Seite 245). Insbesondere ist meine Frage, wie das endgültige Modell (ohne einen separaten Testsatz) mit einem k-fach CV oder einem Bootstrapping ausgewertet werden kann, wenn eine Modellsuche durchgeführt wurde. Es scheint, dass es in den meisten Fällen (ML-Algorithmen ohne eingebettete Merkmalsauswahl) geben wird

  1. Ein Funktionsauswahlschritt
  2. Ein Schritt zur Auswahl von Metaparametern (z. B. der Kostenparameter in SVM).

Meine Fragen:

  1. Ich habe gesehen, dass der Merkmalsauswahlschritt durchgeführt werden kann, wenn die Merkmalsauswahl für den gesamten Trainingssatz durchgeführt und beiseite gehalten wird. Dann wird unter Verwendung des k-fachen CV der Merkmalsauswahlalgorithmus in jeder Falte verwendet (wobei jedes Mal möglicherweise unterschiedliche Merkmale ausgewählt werden) und der Fehler gemittelt. Dann würden Sie die ausgewählten Funktionen unter Verwendung aller Daten (die beiseite gelegt wurden) verwenden, um den endgültigen Modus zu trainieren, aber den Fehler aus der Kreuzvalidierung als Schätzung der zukünftigen Leistung des Modells verwenden. IST DAS RICHTIG?
  2. Wenn Sie zur Auswahl von Modellparametern die Kreuzvalidierung verwenden, wie kann die Modellleistung anschließend geschätzt werden? IST ES DAS GLEICHE VERFAHREN, WIE OBEN NUMMER 1, ODER SOLLTEN SIE NESTED CV WIE AUF SEITE 54 ( pdf ) ODER ETWAS ANDERES VERWENDEN ?
  3. Wenn Sie beide Schritte ausführen (Funktions- und Parametereinstellung) ..... Was tun Sie dann? komplexe verschachtelte Schleifen?
  4. Wenn Sie eine separate Holdout-Stichprobe haben, verschwindet das Problem, und Sie können mithilfe der Kreuzvalidierung Funktionen und Parameter auswählen (ohne sich Sorgen zu machen, da Ihre Leistungsschätzung aus einem Holdout-Satz stammt).
B_Miner
quelle
@ user2040 (+1) Diese Fragen sind in der Tat sehr gut! Eine etwas verwandte Frage ist hier zu finden: Merkmalsauswahl für das „endgültige“ Modell bei der Durchführung einer Kreuzvalidierung beim maschinellen Lernen .
chl
@chi Danke, ich hatte diesen Beitrag gesehen. Glaubst du, ich bin zumindest mit meinem Denkprozess auf dem richtigen Weg? Es scheint, dass ein unabhängiger Testsatz es uns ermöglicht, die Verwendung des Lebenslaufs für die Auswahl von Merkmalen und die Optimierung / Auswahl von Modellen liberaler zu gestalten. Andernfalls erscheinen verschachtelte Schleifen erforderlich, um die Generalisierung von Fehlern zu trainieren, abzustimmen und zu schätzen, wobei alle dieselben Trainingsdaten verwenden.
B_Miner

Antworten:

18

Der Schlüssel zum Erinnern ist, dass zur Kreuzvalidierung, um eine (fast) unvoreingenommene Leistungsschätzung zu erhalten, jeder Schritt, der mit der Anpassung des Modells verbunden ist, in jeder Falte des Kreuzvalidierungsverfahrens unabhängig durchgeführt werden muss. Das Beste, was Sie tun können, ist, die Featureauswahl, die Einstellung von Meta- / Hyperparametern und die Optimierung der Parameter als integrale Bestandteile der Modellanpassung anzuzeigen. Führen Sie keinen dieser Schritte aus, ohne die anderen beiden Schritte auszuführen.

Die optimistische Verzerrung, die durch Abweichung von diesem Rezept eingeführt werden kann, kann überraschend groß sein, wie Cawley und Talbot zeigten , bei denen die Verzerrung, die durch eine anscheinend harmlose Abweichung eingeführt wurde, größer war als der Leistungsunterschied zwischen konkurrierenden Klassifikatoren. Schlimmer noch, voreingenommene Protokolle bevorzugen schlechte Modelle am stärksten, da sie empfindlicher auf die Anpassung von Hyperparametern reagieren und daher anfälliger für eine Überanpassung des Modellauswahlkriteriums sind!

Antworten auf spezifische Fragen:

Das Verfahren in Schritt 1 ist gültig, da die Merkmalsauswahl in jeder Falte separat durchgeführt wird. Bei der Kreuzvalidierung handelt es sich also um das gesamte Verfahren, das zum Anpassen des endgültigen Modells verwendet wird. Die Kreuzvalidierungsschätzung weist eine leichte pessimistische Tendenz auf, da der Datensatz für jede Falte geringfügig kleiner ist als der gesamte für das endgültige Modell verwendete Datensatz.

Für 2 müssen Sie diesen Vorgang unabhängig von der für die Leistungsschätzung verwendeten Kreuzvalidierung für jede Falte der Kreuzvalidierung wiederholen, da für die Auswahl der Modellparameter eine Kreuzvalidierung verwendet wird. Dies führt zu einer verschachtelten Kreuzvalidierung.

Für 3 müssen Sie im Wesentlichen eine verschachtelte Kreuzvalidierung durchführen. Im Wesentlichen müssen Sie in jeder Falte der äußersten Kreuzvalidierung (die für die Leistungsschätzung verwendet wird) alles wiederholen Sie tun möchten, um das endgültige Modell anzupassen.

Für 4 - Ja, wenn Sie über ein separates Hold-Out-Set verfügen, liefert dies eine unvoreingenommene Schätzung der Leistung, ohne dass eine zusätzliche Gegenprüfung erforderlich ist.

Dikran Beuteltier
quelle
Re Ihre Antwort auf Q1. Das ist das Problem, nicht wahr? Sehr oft denken wir, wir validieren das Modell gegenseitig, während wir das Modellierungsverfahren gegenseitig validieren. Der Unterschied könnte philosophischer Natur sein, denn wenn Sie die Mathematik aufschreiben, könnte das f für das Modell oder die Modellierungsprozedur stehen. Aber dann könnte man fragen, ob man die Prozedur, die wir wollen, oder das Modell kreuzvalidiert. Was denkst du?
Qoheleth
Sie können ein Modell nicht gegenseitig validieren, da das Modell von der Datenstichprobe abhängt, auf der es trainiert wurde. Sobald Sie es an eine andere Datenstichprobe anpassen, handelt es sich um ein anderes Modell. Der Punkt, den ich hier wirklich angesprochen habe, ist, dass die Kreuzvalidierung eine optimistische Schätzung der Verallgemeinerung ergibt, wenn Sie das Modell in irgendeiner Weise auf der gesamten Datenprobe optimieren (z. B. durch Ausführen einer Featureauswahl), da die Testpartitionen zur Optimierung verwendet wurden Aspekte des Modells (dh der verwendete Funktionsumfang). HTH.
Dikran Marsupial
Ich weiß nicht, ob es in Ordnung ist, unsere Diskussion im Kommentarbereich fortzusetzen, aber bis jemand etwas anderes sagt ... Ja, ich verstehe, dass Ihre Aussage zum Lebenslauf auf der äußersten Ebene erfolgen muss und ich bin nicht dagegen. Tatsächlich habe ich gestern meinem Kollegen den gleichen Rat gegeben. Ich möchte nur darauf hinweisen, dass wir uns oft nicht sicher sind, was wir gegenseitig validieren. Gleichzeitig frage ich mich, ob wir tatsächlich eine Bewertung des Modells anstelle des Modellierungsverfahrens wünschen. Eine Abhilfe könnte sein, dass man denken kann, dass er Prozedurfehler verwendet, um den Modellfehler abzuschätzen. Vielleicht klappt das ja.
Qoheleth
Wir können die Leistung eines bestimmten Modells nicht direkt abschätzen, ohne einen externen Testsatz zu haben. Die Leistung der Methode zur Erstellung eines Modells ist jedoch ein angemessener Indikator für die Leistung des Modells selbst, vorausgesetzt, es handelt sich um die gesamte Methode, die einer Kreuzvalidierung unterzogen wird. Mit anderen Worten, ich stimme der Zusammenfassung in Ihrem letzten Satz zu!
Dikran Marsupial
5

Ich habe eine umfassende Kreuzvalidierungsanalyse für einen Datensatz durchgeführt, dessen Erwerb Millionen gekostet hat, und es ist kein externer Validierungssatz verfügbar. In diesem Fall habe ich eine umfangreiche verschachtelte Kreuzvalidierung durchgeführt, um die Gültigkeit sicherzustellen. Ich habe Features und optimierte Parameter nur aus den jeweiligen Trainingssets ausgewählt. Dies ist für große Datenmengen rechenintensiv, aber ich musste es tun, um die Gültigkeit aufrechtzuerhalten. Es gibt jedoch Komplikationen, die damit einhergehen. Beispielsweise werden in jedem Trainingssatz unterschiedliche Funktionen ausgewählt.

Meine Antwort lautet also, dass dies in Fällen, in denen Sie keinen praktikablen Zugriff auf einen externen Datensatz haben, ein vernünftiger Weg ist. Wenn Sie einen externen Datensatz haben, können Sie so ziemlich in die Stadt fahren, wie Sie möchten, und dann den externen Datensatz einmal testen.

user2643
quelle
@ user2643: Haben Sie Verweise darauf, wie Sie den verschachtelten Lebenslauf erstellt haben? War es in der gleichen Richtung wie das PDF, auf das ich in meiner Frage verlinkt habe? Auch ..... sind diese Daten Marketingdaten zufällig?
B_Miner
@ user2643 Das Problem bei diesem Ansatz (der korrekt ist) ist, dass er nur ein einziges Kriterium für die Genauigkeit (Klassifizierung) oder Präzision (Regression) liefert. Sie werden nicht sagen können, dass dies die interessantesten Funktionen sind, da sie sich, wie Sie sagten, von einer Falte zur anderen unterscheiden. Ich habe mit genetischen Daten (600.000 Variablen) gearbeitet, bei denen wir einen 10-fachen Lebenslauf mit eingebetteter Merkmalsauswahl im Rahmen eines Permutationsschemas (k = 1000, um sich auf einem 5% -Niveau wohl zu fühlen) verwendet haben, um die Zuverlässigkeit der Ergebnisse zu bewerten. Auf diese Weise können wir sagen: "Unser Modell verallgemeinert sich gut oder nicht", mehr nicht.
chl
2
Wenn Features von Falz zu Falz variieren, bedeutet dies, dass nicht genügend Informationen zur Verfügung stehen, um die nützlichen Features sicher zu identifizieren. Daher würde ich dies als Vorteil der Kreuzvalidierung ansehen (da es wahrscheinlich ist, wenn Sie sich nur die Ergebnisse eines einzelnen Modells ansehen das Merkmalauswahlkriterium übererfüllt haben und daher irreführend sein). Bei Problemen mit vielen Features und wenigen Beobachtungen führt die Ridge-Regression häufig zu einer besseren Leistung. Daher ist es oft besser, keine Feature-Auswahl zu treffen, es sei denn, die Identifizierung von Features ist ein Hauptziel.
Dikran Beuteltier
np
@ user2040: Sorry für die verspätete Antwort. Ich habe meine eigene Softwareimplementierung des verschachtelten CV-Ansatzes erstellt. Da sich meine Forschung auf Bioinformatik bezieht, plane ich, demnächst eine Beschreibung der Software in einer Bioinformatik-Zeitschrift einzureichen. Es kann aber in jedem Forschungsbereich eingesetzt werden. Wenn Sie es ausprobieren möchten, lassen Sie es mich bitte wissen. goldfish1434 bei yahoo dot com
user2643