Ich frage mich, wie ich ein Vorhersagemodell auswählen soll, nachdem ich die K-fache Kreuzvalidierung durchgeführt habe.
Dies mag umständlich formuliert sein. Lassen Sie mich dies näher erläutern: Wenn ich eine K-fache Kreuzvalidierung durchführe, verwende ich K Teilmengen der Trainingsdaten und erhalte K verschiedene Modelle.
Ich würde gerne wissen, wie man eines der K-Modelle auswählt, damit ich es jemandem vorstellen und sagen kann: "Dies ist das beste Modell, das wir produzieren können."
Ist es in Ordnung, eines der K-Modelle auszuwählen? Oder handelt es sich um eine bewährte Methode, z. B. die Auswahl des Modells, mit dem der Median-Testfehler erzielt wird?
cross-validation
model-selection
Berk U.
quelle
quelle
Antworten:
Ich denke, dass Ihnen noch etwas im Verständnis des Zwecks der gegenseitigen Validierung fehlt.
Lassen Sie uns einige Begriffe klarstellen. Wenn wir "ein Modell" sagen, beziehen wir uns auf eine bestimmte Methode, um zu beschreiben, wie sich einige Eingabedaten auf das beziehen, was wir vorherzusagen versuchen. Wir bezeichnen bestimmte Instanzen dieser Methode im Allgemeinen nicht als unterschiedliche Modelle. Sie könnten also sagen, dass ich ein lineares Regressionsmodell habe, aber Sie würden nicht zwei verschiedene Mengen der trainierten Koeffizienten als verschiedene Modelle bezeichnen. Zumindest nicht im Rahmen der Modellauswahl.
Wenn Sie also eine K-fach Kreuzvalidierung durchführen, testen Sie, wie gut Ihr Modell durch einige Daten trainiert werden kann, und sagen dann Daten voraus, die es nicht gesehen hat. Wir verwenden hierfür die Kreuzvalidierung, da Sie, wenn Sie mit allen Ihnen zur Verfügung stehenden Daten trainieren, keine zum Testen mehr haben. Sie könnten dies einmal tun, indem Sie beispielsweise 80% der Daten zum Trainieren und 20% zum Testen verwenden, aber was passiert, wenn die 20%, die Sie zum Testen ausgewählt haben, eine Reihe von Punkten enthalten, die besonders einfach (oder besonders schwer) sind? zu prognostizieren? Wir werden nicht die bestmögliche Schätzung der Lern- und Vorhersagemöglichkeiten des Modells erhalten haben.
Wir wollen alle Daten nutzen. Um das obige Beispiel einer 80/20-Aufteilung fortzusetzen, würden wir eine fünffache Kreuzvalidierung durchführen, indem wir das Modell fünfmal auf 80% der Daten trainieren und auf 20% testen. Wir stellen sicher, dass jeder Datenpunkt genau einmal im 20% -Testset endet. Wir haben daher jeden Datenpunkt verwendet, um zu verstehen, wie gut unser Modell die Aufgabe erfüllt, aus einigen Daten zu lernen und einige neue Daten vorherzusagen.
Der Zweck der Kreuzvalidierung besteht jedoch nicht darin, unser endgültiges Modell zu entwickeln. Wir verwenden diese 5 Instanzen unseres trainierten Modells nicht, um echte Vorhersagen zu treffen. Dafür wollen wir alle Daten nutzen, um das bestmögliche Modell zu finden. Der Zweck der Kreuzvalidierung ist die Modellprüfung, nicht die Modellbildung.
Nehmen wir an, wir haben zwei Modelle, ein lineares Regressionsmodell und ein neuronales Netzwerk. Wie können wir sagen, welches Modell besser ist? Wir können eine K-fache Kreuzvalidierung durchführen und sehen, welche sich bei der Vorhersage der Testsollwerte als besser erweist. Sobald wir jedoch die Kreuzvalidierung zur Auswahl des leistungsstärkeren Modells verwendet haben, trainieren wir dieses Modell (sei es die lineare Regression oder das neuronale Netzwerk) für alle Daten. Wir verwenden nicht die tatsächlichen Modellinstanzen, die wir während der Kreuzvalidierung trainiert haben, für unser endgültiges Vorhersagemodell.
Beachten Sie, dass es eine als Bootstrap-Aggregation bezeichnete Technik gibt (in der Regel auf "Bagging" abgekürzt), bei der Modellinstanzen verwendet werden, die auf ähnliche Weise wie bei der Kreuzvalidierung erstellt wurden, um ein Ensemble-Modell aufzubauen von deiner frage hier.
quelle
For that we want to use all the data we have to come up with the best model possible.
- Bedeutet dies, dass Sie bei einer Rastersuche mit K-facher Kreuzvalidierung die besten durch Rastersuche gefundenen Parameter verwenden und ein Modell auf die gesamten Trainingsdaten anwenden und dann die Generalisierungsleistung mithilfe des Testsets bewerten würden?Lassen Sie mich zusätzlich zu Bogdanovists Antwort einige Punkte ansprechen
Nun gibt es einige Annahmen in diesem Prozess.
Die endliche Anzahl von Fällen bedeutet, dass die Leistungsmessung aufgrund der endlichen Anzahl von Testfällen einem zufälligen Fehler (Varianz) unterliegt. Diese Varianzquelle unterscheidet sich von der Modellinstabilitätsvarianz (und erhöht diese somit).
Die Unterschiede in der beobachteten Leistung sind auf diese beiden Varianzquellen zurückzuführen.
Die "Auswahl", über die Sie nachdenken, ist eine Datensatzauswahl: Wenn Sie eines der Ersatzmodelle auswählen, müssen Sie eine Teilmenge der Trainingsmuster auswählen und behaupten, dass diese Teilmenge der Trainingsmuster zu einem überlegenen Modell führt. Während dies der Fall sein mag, ist die "Überlegenheit" gewöhnlich falsch. In jedem Fall müssen Sie dieses ausgewählte Modell mit neuen unbekannten Daten validieren (die Leistung messen), da die Auswahl des "besten" Ersatzmodells eine datengesteuerte Optimierung ist. Der Testsatz innerhalb dieser Kreuzvalidierung ist nicht unabhängig, da er zur Auswahl des Ersatzmodells verwendet wurde.
Vielleicht möchten Sie sich unsere Arbeit ansehen, es geht um eine Klassifizierung, bei der die Dinge normalerweise schlechter sind als bei einer Regression. Es wird jedoch gezeigt, wie sich diese Ursachen für Varianz und Verzerrung addieren.
Beleites, C. und Neugebauer, U. und Bocklitz, T. und Krafft, C. und Popp, J .: Stichprobenplanung für Klassifizierungsmodelle. Anal Chim Acta, 2013, 760, 25 & ndash; 33.
DOI: 10.1016 / j.aca.2012.11.007
akzeptiertes Manuskript auf arXiv: 1211.1323
quelle
picking "the best" of the surrogate models is a data-driven optimization, you'd need to validate (measure performance) this picked model with new unknown data. The test set within this cross validation is not independent as it was used to select the surrogate model.
But once we have used cross-validation to select the better performing model, we train that model (whether it be the linear regression or the neural network) on all the data.
Ich fand diesen hervorragenden Artikel, wie man ein letztes Modell des maschinellen Lernens trainiert, sehr hilfreich, um alle Unklarheiten zu beseitigen, die ich in Bezug auf die Verwendung des Lebenslaufs beim maschinellen Lernen habe.
Grundsätzlich verwenden wir CV (z. B. 80/20 Split, k-fach usw.), um abzuschätzen, wie gut Ihre gesamte Prozedur (einschließlich des Daten-Engineerings, der Wahl des Modells (dh des Algorithmus) und der Hyperparameter usw.) in Zukunft ungesehen abschneiden wird Daten. Und sobald Sie das Siegerverfahren ausgewählt haben, haben die angepassten Modelle von CV ihren Zweck erfüllt und können nun verworfen werden. Anschließend verwenden Sie das gleiche "Gewinnverfahren" und trainieren Ihr endgültiges Modell mit dem gesamten Datensatz.
quelle
Das ist eine sehr interessante Frage. Um dies zu verdeutlichen, sollten wir den Unterschied zwischen Modell und Modellbewertung verstehen. Wir verwenden den vollständigen Trainingssatz, um ein Modell zu erstellen, und wir gehen davon aus, dass dieses Modell endlich verwendet wird.
Eine K-fache Kreuzbewertung würde K-Modelle erstellen, aber alle würden fallengelassen. Die K-Modelle werden nur zur Auswertung herangezogen. und es wurden nur Messdaten erstellt, die Ihnen zeigen, wie gut dieses Modell mit Ihren Daten übereinstimmt.
Beispielsweise wählen Sie LinearRegression algo und führen zwei Operationen mit demselben Trainingssatz durch: eine mit 10-facher Kreuzvalidierung und die andere mit 20-facher. Das Regressions- (oder Klassifikator-) Modell sollte dasselbe sein, aber der Korrelationskoeffizient und der relative Quadratfehler der Wurzel sind unterschiedlich.
Nachfolgend finden Sie zwei Läufe für die 10-fache und 20-fache Kreuzvalidierung mit weka
1. Lauf mit 10-fach
2. Lauf mit 20-fach
quelle
Ich bin nicht sicher, ob die obige Diskussion völlig richtig ist. Bei der Kreuzvalidierung können wir die Daten für jeden Lauf in Training und Testen aufteilen. Nur anhand der Trainingsdaten muss das Modell angepasst und die Optimierungsparameter für jede Modellklasse ausgewählt werden. In neuronalen Netzen sind die Abstimmungsparameter beispielsweise die Anzahl der Neuronen und die Auswahlmöglichkeiten für die Aktivierungsfunktion. Zu diesem Zweck werden nur die Trainingsdaten quervalidiert .
Sobald das beste Modell in jeder Klasse gefunden ist, wird das am besten passende Modell unter Verwendung der Testdaten bewertet. Die "äußere" Kreuzvalidierungsschleife kann verwendet werden, um eine bessere Schätzung der Testdatenleistung sowie eine Schätzung der Variabilität zu geben. Eine Diskussion kann dann die Testleistung für verschiedene Klassen vergleichen, z. B. Neuronale Netze vs. SVM. Es wird eine Modellklasse mit fester Modellgröße ausgewählt, und jetzt werden die gesamten Daten verwendet, um das beste Modell zu lernen.
Wenn Sie nun im Rahmen Ihres maschinellen Lernalgorithmus ständig die beste Modellklasse auswählen möchten (etwa jede Woche), muss auch diese Auswahl in den Trainingsdaten ausgewertet werden! Die Messung von Testdaten kann nicht verwendet werden, um die Auswahl der Modellklasse zu beurteilen, wenn es sich um eine dynamische Option handelt.
quelle
Warum verwenden wir die k-fache Kreuzvalidierung?
Die Kreuzvalidierung ist eine Methode zur Schätzung des Könnens einer Methode anhand nicht sichtbarer Daten. Wie bei einem Zugtest-Split.
Durch die Kreuzvalidierung werden systematisch mehrere Modelle für mehrere Teilmengen des Datensatzes erstellt und ausgewertet. Dies liefert wiederum eine Population von Leistungsmaßstäben .
Dies ist auch hilfreich, um einen differenzierteren Vergleich von Verfahren zu Verfahren zu ermöglichen, wenn Sie versuchen, den zu verwendenden Algorithmus und die zu verwendenden Datenvorbereitungsverfahren auszuwählen.
Außerdem sind diese Informationen von unschätzbarem Wert, da Sie den Mittelwert und die Streuung verwenden können, um ein Konfidenzintervall für die erwartete Leistung bei einem maschinellen Lernvorgang in der Praxis anzugeben.
Referenz
quelle