Was ist der Unterschied zwischen Test- und Validierungssatz?

431

Ich fand das verwirrend, wenn ich die Toolbox für neuronale Netze in Matlab verwende.
Der Rohdatensatz wurde in drei Teile geteilt:

  1. Trainingsset
  2. Validierungssatz
  3. Test-Set

Ich stelle bei vielen Trainings- oder Lernalgorithmen fest, dass die Daten häufig in zwei Teile unterteilt sind, den Trainingssatz und den Testsatz.

Meine Fragen sind:

  1. Was ist der Unterschied zwischen Validierungs- und Test-Set?
  2. Ist der Validierungssatz wirklich spezifisch für das neuronale Netzwerk? Oder es ist optional.
  3. Gibt es einen Unterschied zwischen Validierung und Testen im Zusammenhang mit maschinellem Lernen?
xiaohan2012
quelle
56
Die Frage wird im Buch Elemente des statistischen Lernens auf Seite 222 beantwortet . Der Validierungssatz wird für die Modellauswahl verwendet, der Testsatz für den Vorhersagefehler des endgültigen Modells (das Modell, das durch den Auswahlprozess ausgewählt wurde).
mpiktas
@mpiktas Beziehen Sie sich auf das Kapitel "Modellbewertung und -auswahl"?
Celdor
2
Ja. Die Seitenzahl war von der 5. Druckausgabe.
mpiktas
13
@mpiktas ist genau richtig. Hier ist der aktuelle Text:The training set is used to fit the models; the validation set is used to estimate prediction error for model selection; the test set is used for assessment of the generalization error of the final chosen model. Ideally, the test set should be kept in a “vault,” and be brought out only at the end of the data analysis.
Arun
1
Ich mag auch die Erklärung von Jason Brownlee .
Delrocco

Antworten:

254

Normalerweise benötigen Sie zwei Arten von Datensätzen, um überwachtes Lernen durchzuführen:

  1. In einem Datensatz (Ihrem "Goldstandard") haben Sie die Eingabedaten zusammen mit der korrekten / erwarteten Ausgabe. Dieser Datensatz wird normalerweise ordnungsgemäß von Menschen erstellt oder indem einige Daten auf halbautomatische Weise gesammelt werden. Es ist jedoch wichtig, dass Sie für jede Datenzeile hier die erwartete Ausgabe haben, da Sie diese für überwachtes Lernen benötigen.

  2. Die Daten, auf die Sie Ihr Modell anwenden möchten. In vielen Fällen sind dies die Daten, an denen Sie für die Ausgabe Ihres Modells interessiert sind und daher haben Sie hier noch keine "erwartete" Ausgabe.

Während Sie maschinelles Lernen durchführen, gehen Sie wie folgt vor:

  1. Trainingsphase: Sie präsentieren Ihre Daten aus Ihrem "Goldstandard" und trainieren Ihr Modell, indem Sie die Eingabe mit der erwarteten Ausgabe koppeln.
  2. Validierungs- / Testphase: Um abzuschätzen, wie gut Ihr Modell trainiert wurde (dies hängt von der Größe Ihrer Daten, dem Wert ab, den Sie vorhersagen, eingeben usw.), und um Modelleigenschaften abzuschätzen (mittlerer Fehler für numerische Prädiktoren, Klassifizierungsfehler für Klassifizierer, Rückruf und Genauigkeit für IR-Modelle usw.)
  3. Anwendungsphase: Jetzt wenden Sie Ihr frisch entwickeltes Modell auf die realen Daten an und erhalten die Ergebnisse. Da Sie normalerweise keinen Referenzwert für diese Art von Daten haben (andernfalls, warum würden Sie Ihr Modell benötigen?), Können Sie nur anhand der Ergebnisse Ihrer Validierungsphase über die Qualität Ihrer Modellausgabe spekulieren.

Die Validierungsphase besteht häufig aus zwei Teilen :

  1. Im ersten Teil sehen Sie sich nur Ihre Modelle an und wählen anhand der Validierungsdaten den Ansatz mit der besten Leistung aus (= Validierung).
  2. Dann schätzen Sie die Genauigkeit des gewählten Ansatzes (= Test).

Daher die Trennung zu 50/25/25.

Falls Sie nicht aus mehreren konkurrierenden Ansätzen ein geeignetes Modell auswählen müssen, können Sie Ihr Set einfach neu partitionieren, da Sie im Grunde nur Trainings- und Test-Sets haben, ohne die Validierung Ihres trainierten Modells durchzuführen. Ich persönlich teile sie dann auf 70/30.

Siehe auch diese Frage .

Alexander Galkin
quelle
21
Warum würde ich nicht das Modell mit der besten Leistung basierend auf dem Testsatz auswählen und den Validierungssatz insgesamt entfernen?
Sebastian Graf
4
Liegt es an Überanpassung? Oder weil wir eine unabhängige Statistik basierend auf dem Testergebnis wollen, nur zur Fehlerschätzung?
Sebastian Graf
12
@Sebastian [Wenn Sie nur das Test-Set verwenden:] "Der Test-Set-Fehler des endgültig ausgewählten Modells wird den wahren Test-Fehler manchmal erheblich unterschätzen" [Hastie et al]
user695652
23
Der Validierungssatz wird häufig zum Einstellen von Hyperparametern verwendet. In der Deep-Learning-Community hängt die Einstellung der Netzwerkschichtgröße, der Anzahl der verborgenen Einheiten und des Regularisierungsterms (L1 oder L2) beispielsweise vom Validierungssatz ab
xiaohan2012,
2
Wie werden die Sets richtig aufgeteilt? Sollte die Auswahl zufällig sein? Was ist, wenn Sie ähnliche Bilder haben? Wird dies Ihrer Fähigkeit zur Verallgemeinerung nicht schaden? Wenn Sie zwei Sets an verschiedenen Orten haben, ist es dann nicht besser, eines als Trainingsset und das andere als Testset zu nehmen?
Yonatan Simson
263

Trainingsset: Eine Reihe von Beispielen, die zum Lernen verwendet werden: um die Parameter des Klassifikators anzupassen. Im Fall von Multilayer Perceptron (MLP) würden wir das Trainingsset verwenden, um die „optimalen“ Gewichte mit der Backprop-Regel zu finden

Validierungssatz: eine Reihe von Beispielen zur Optimierung der Parameter eines Klassifikators Im MLP-Fall würden wir den Validierungssatz verwenden, um die „optimale“ Anzahl von versteckten Einheiten zu ermitteln oder einen Haltepunkt für den Backpropagation-Algorithmus zu bestimmen

Testset: Eine Reihe von Beispielen, die nur zur Beurteilung der Leistung eines voll ausgebildeten Klassifikators verwendet werden. Im MLP-Fall würden wir den Test verwenden, um die Fehlerrate zu schätzen, nachdem wir das endgültige Modell (MLP-Größe und tatsächliches Gewicht) ausgewählt haben das endgültige Modell auf dem Test-Set, Sie dürfen das Modell nicht weiter abstimmen!

Warum separate Test- und Validierungssätze? Die Fehlerratenschätzung des endgültigen Modells anhand der Validierungsdaten ist verzerrt (kleiner als die tatsächliche Fehlerrate), da der Validierungssatz zur Auswahl des endgültigen Modells verwendet wird. Nach der Bewertung des endgültigen Modells anhand des Testsatzes DÜRFEN SIE KEINE Anpassungen am Modell vornehmen des Weiteren!

Quelle: Einführung in die Musteranalyse, Ricardo Gutierrez-OsunaTexas A & M University, Texas A & M University

mohsen najafzadeh
quelle
42
+1 für "SIE DÜRFEN DAS MODELL NICHT WEITER STIMMEN!"
stmax
6
Was ist der Unterschied zwischen "Anpassen der Parameter" und "Einstellen der Parameter"?
Metariat
18
@stmax Um nicht umständlich zu sein, aber wenn wir unseren letzten Testfehler haben und mit dem Ergebnis NICHT zufrieden sind, was tun wir, wenn wir unser Modell nicht weiter abstimmen können? ... Ich habe mich oft über diesen Fall gewundert.
Spacey
5
@Tarantula Sie können das Modell weiter optimieren, müssen jedoch ein neues Testset sammeln. Natürlich macht das niemand;), aber wenn Sie dies missachten (besonders wenn Sie es mehrmals wiederholen), könnte dies dazu führen, dass Ihr Modell das Test-Set anpasst - was zu unrealistischen / zu optimistischen Ergebnissen führt.
stmax
4
Ich finde diese Nomenklatur verwirrend. Sie haben zu Recht gesagt, dass Sie das Modell nach Verwendung des Testsets NICHT weiter abstimmen dürfen, aber ... welchen Bereich wollten Sie tun? Hören Sie auf, daran zu arbeiten? In Wirklichkeit braucht man eine ganze Hierarchie von Testsätzen. 1: Validierungssatz - dient zum Optimieren eines Modells, 2: Testsatz, dient zum Bewerten eines Modells und zum Überprüfen, ob Sie zum Zeichenbrett zurückkehren sollten. 3: Supertestsatz, der für den Final-Final-Algorithmus verwendet wird, um zu ermitteln, wie Gut, es ist, 4: Hyper-Test-Set, verwendet, nachdem Forscher MNIST-Algorithmen für 10 Jahre entwickelt haben, um zu sehen, wie verrückt Overfit sie sind ... etc. etc.
Timmmm
66

Meine 5-jährige Erfahrung in der Informatik hat mich gelehrt, dass nichts besser ist als Einfachheit.

Das Konzept der Datensätze "Training / Cross-Validation / Test" ist so einfach. Wenn Sie einen großen Datensatz haben, wird empfohlen, ihn in drei Teile zu teilen:

++ Trainingssatz (60% des Originaldatensatzes): Dieser dient zum Aufbau unseres Vorhersagealgorithmus. Unser Algorithmus versucht, sich auf die Macken der Trainingsdatensätze abzustimmen. In dieser Phase erstellen wir normalerweise mehrere Algorithmen, um deren Leistung während der Cross-Validation-Phase zu vergleichen.

++ Cross-Validation-Satz (20% des ursprünglichen Datensatzes): Dieser Datensatz wird zum Vergleichen der Leistungen der Vorhersagealgorithmen verwendet, die auf der Grundlage des Trainingssatzes erstellt wurden. Wir wählen den Algorithmus mit der besten Leistung.

++ Testsatz (20% des Originaldatensatzes): Jetzt haben wir unseren bevorzugten Vorhersagealgorithmus ausgewählt, wissen aber noch nicht, wie er sich auf völlig unsichtbare Daten in der realen Welt auswirkt. Daher wenden wir unseren ausgewählten Vorhersagealgorithmus auf unser Test-Set an, um zu sehen, wie es sich verhält, damit wir eine Vorstellung von der Leistung unseres Algorithmus bei unsichtbaren Daten erhalten.

Anmerkungen:

-Es ist sehr wichtig zu beachten, dass das Überspringen der Testphase nicht empfohlen wird, da der Algorithmus, der während der Kreuzvalidierungsphase gut funktioniert hat, nicht wirklich bedeutet, dass er wirklich der beste ist, da die Algorithmen basierend auf dem Kreuz verglichen werden -Validierungsset und seine Macken und Geräusche ...

-Während der Testphase soll untersucht werden, wie sich unser endgültiges Modell in der Wildnis verhält. Wenn die Leistung also sehr schlecht ist, sollten wir den gesamten Prozess ab der Trainingsphase wiederholen.

innovIsmail
quelle
1
Es ist einfach und verwirrend, die Mengen als Phasen zu bezeichnen und umgekehrt.
Matt O'Brien
2
@innovIsmail Was ist, wenn ich den Überprüfungsschritt überspringe? Angenommen, ich habe viele Algorithmen und habe sie am Zug trainiert. Dann
wende
3
Es klingt für mich so, als würden Sie den Testschritt einfach überspringen.
Mihai Danila
1
> Vergleichen Sie die Leistungen der Vorhersagealgorithmen - was ist in diesem Zusammenhang "ein Algorithmus"? Ist Ihr Modell kein Algorithmus? Muss man mehrere Modelle bauen und separat trainieren, um mehrere Phasen für die Validierung zu erhalten?
Boppity Bop
2
Diese Einfachheit ist eine Illusion, denn in der Situation mit nicht sehr großen Stichproben wird es wesentlich andere Vorhersagealgorithmen und Validierungsergebnisse geben, wenn die zufälligen Teilungen wiederholt wurden.
Frank Harrell
33

Bei jedem Schritt, bei dem Sie aufgefordert werden, eine Entscheidung zu treffen (dh eine Option unter mehreren Optionen zu wählen), müssen Sie über einen zusätzlichen Satz / eine zusätzliche Partition verfügen, um die Genauigkeit Ihrer Wahl zu messen, damit Sie nicht einfach das günstigste Ergebnis aus Zufall und Zufall auswählen Verwechseln Sie das hintere Ende der Verteilung mit der Mitte 1 . Die Linke ist der Pessimist. Das Recht ist der Optimist. Das Zentrum ist der Pragmatiker. Sei der Pragmatiker.

Bildbeschreibung hier eingeben

Schritt 1) ​​Training: Jede Art von Algorithmus verfügt über eigene Parameteroptionen (die Anzahl der Ebenen in einem neuronalen Netzwerk, die Anzahl der Bäume in einem zufälligen Wald usw.). Für jeden Ihrer Algorithmen müssen Sie eine Option auswählen. Deshalb haben Sie ein Trainingsset.

Schritt 2) Validierung: Sie haben jetzt eine Sammlung von Algorithmen. Sie müssen einen Algorithmus auswählen. Deshalb haben Sie ein Test-Set. Die meisten Leute wählen den Algorithmus, der am besten für den Validierungssatz geeignet ist (und das ist in Ordnung). Wenn Sie jedoch die Fehlerrate Ihres leistungsstärksten Algorithmus im Testsatz nicht messen und nur die Fehlerrate im Validierungssatz angeben, haben Sie das „bestmögliche Szenario“ blind für das „wahrscheinlichste Szenario“ gehalten. Das ist ein Rezept für eine Katastrophe.

Schritt 3) Testen: Ich nehme an, dass Sie keinen dritten Schritt benötigen würden, wenn Ihre Algorithmen keine Parameter hätten. In diesem Fall wäre Ihr Validierungsschritt Ihr Testschritt. Vielleicht fragt Matlab Sie nicht nach Parametern oder Sie haben sich dafür entschieden, diese nicht zu verwenden, und das ist die Ursache Ihrer Verwirrung.

1 Es ist oft hilfreich, in jedem Schritt davon auszugehen (Nullhypothese), dass alle Optionen gleich sind (z. B. sind alle Parameter gleich oder alle Algorithmen gleich), daher meine Bezugnahme auf die Verteilung.

2 Dieses Bild ist nicht mein eigenes. Ich habe es von dieser Seite genommen: http://www.teamten.com/lawrence/writings/bell-curve.png

Ryan Zotti
quelle
3
Ich denke, der erste Satz fängt die grundlegende Antwort auf diese Frage besser als jede andere Antwort ein. "Bei jedem Schritt, bei dem Sie aufgefordert werden, eine Entscheidung zu treffen (dh eine Option unter mehreren Optionen auszuwählen), müssen Sie über einen zusätzlichen Satz / eine zusätzliche Partition verfügen, um die Genauigkeit Ihrer Wahl zu messen ..."
kobejohn
Zur Frage: Wenn ich den besten RandomForest (RF) finden und so tun möchte, als gäbe es nur einen Hyperparameter von RF, nämlich die Anzahl der Bäume (N), dann führe ich in Schritt 1 viele RF mit verschiedenen N aus, um den Wald zu erstellen ; Wenden Sie sie in Schritt 2 auf den Validierungstest an und wählen Sie die RF mit N * aus, die den niedrigsten Fehler gegenüber dem Validierungstest ergibt. In Schritt 3 wende ich RF mit N * auf den Testsatz an und erhalte eine unvoreingenommene Schätzung des wahren Testfehlers dieser RF mit N *. Aber ich könnte alle meine RFs auf das Test-Set anwenden und das mit dem niedrigsten Testfehler auswählen, der möglicherweise nicht N * ist. Dann ist das der Punkt für die Validierung von Schritt 2?
KevinKim
1
@ KevinKim: Wenn Sie Ihr Testset auf alle RFs anwenden und anhand der Ergebnisse eine weitere Auswahl treffen (ein anderes Modell auswählen), haben Sie gerade den Validierungsschritt wiederholt. Sie haben sich entschieden: "Ich muss mit einem Modell den niedrigsten Fehler erzielen!". Das ist der Punkt des Trainings und der Validierung, NICHT des Testens. Beim Testen geht es nur darum: Ich habe ein Modell trainiert und ausgewählt, und jetzt wollen wir sehen, wie es sich "allgemein" verhält. Offensichtlich ist der "allgemeine" Testsatz nur ein weiterer Teil der Daten, der möglicherweise überpasst wird oder nicht, aber der Punkt ist, dass SIE Ihr Modell nicht wissentlich durch Auswahlmöglichkeiten überpasst haben.
Honeybear
Die dreiteilige Aufteilung ist nur ein sehr gebräuchlicher Ansatz (A), um Ihnen eine Vorstellung davon zu geben, wie das Modell (B) mit begrenztem Aufwand und (C) begrenzten beobachteten Daten verallgemeinert. Wenn Sie in Bezug auf (B) besser abschneiden möchten, können Sie das tun, was Sie vorschlagen: Verwenden Sie verschiedene Validierungssätze, um die Generalisierung zu optimieren. Bei begrenzten Daten, die als Kreuzvalidierung bezeichnet werden: Wiederholen Sie das Training und die Validierung mit verschiedenen Trainings- und Testsätzen (für neuronale Netze, bei denen das Training Wochen dauern kann, ist dies keine Sache).
Honeybear
1
ABER: Wie das Modell "in der realen Welt" abschneiden wird, ist noch unbekannt. Es handelt sich lediglich um eine validierte und getestete Annahme, dass die Leistung von unsichtbaren Daten gut ist, und für wissenschaftliche Zwecke wird dies normalerweise als ausreichend angesehen. Wenn Sie jetzt erneut Modelle generieren und auswählen, bis eines zu Validierungssatz UND Testsatz passt, haben Sie Ihren Testsatz zu einem Validierungssatz entartet. Besser machen Sie eine Quervalidierung dafür. Falls Ihre Leistung auf dem Test-Set ständig erheblich schlechter ist, ist es immer eine Option, dass Ihre Daten nur schlecht aufgeteilt sind und Sie mit neu gemischten Sets neu starten möchten.
Honeybear
21

Daraus folgt nicht, dass Sie die Daten in irgendeiner Weise aufteilen müssen. Der Bootstrap kann kleinere mittlere quadratische Fehlerabschätzungen der Vorhersagegenauigkeit unter Verwendung der gesamten Stichprobe sowohl zum Entwickeln als auch zum Testen des Modells bereitstellen.

Frank Harrell
quelle
1
Sie befürworten also keine Kreuzvalidierung durch Aufteilung großer Datenmengen für das Testen / Validieren von Vorhersagemodellen?
OFish
9
Nein, es sei denn, der Datensatz ist riesig oder das Signal-Rausch-Verhältnis ist hoch. Die Kreuzvalidierung ist nach meiner Erfahrung nicht so präzise wie der Bootstrap und verwendet nicht die gesamte Stichprobengröße. In vielen Fällen müssen Sie die Kreuzvalidierung 50-100 Mal wiederholen, um eine ausreichende Präzision zu erzielen. Aber in Ihren Datensätzen mit mehr als 20.000 Probanden sind einfache Ansätze wie die Validierung aufgeteilter Stichproben häufig in Ordnung.
Frank Harrell
2
Das ist wirklich gut zu wissen! Vielen Dank. Und das ist eine großartige "Informationsquelle", die von Ihnen kommt. Prost!
OFish
1
Bei der Split-Sample-Validierung ist die Leistung oft schlechter als bei einem rigorosen Bootstrapping. Erstellen Sie einen äußeren Bootstrap-Look, der alle überwachten Lernschritte (alle Schritte, die Y verwenden) wiederholt. Der Efron-Gong-Optimismus-Bootstrap schätzt, um wie viel das Vorhersagemodell in Daten auseinanderfällt, die vom Algorithmus nicht erkannt werden, ohne dass Daten zurückgehalten werden.
Frank Harrell
1
Ja, mit Schwerpunkt auf Wiederholung . Es ist der Single-Split, der problematisch ist.
Frank Harrell
13

Eine typische maschinelle Lernaufgabe kann als folgende verschachtelte Schleife dargestellt werden:

while (error in validation set > X) {
    tune hyper-parameters
    while (error in training set > Y) {
        tune parameters
    }
}

Typischerweise wird die äußere Schleife vom Menschen am Validierungssatz und die innere Schleife von der Maschine am Trainingssatz ausgeführt . Sie benötigen dann ein drittes Testset , um die endgültige Leistung des Modells zu beurteilen.

Mit anderen Worten, der Validierungssatz ist der Trainingssatz für den Menschen.

Yu Zhou
quelle
9

Eine Möglichkeit, an diese drei Mengen zu denken, ist, dass zwei von ihnen ( trainingund validation) aus der Vergangenheit stammen, während die testMenge aus der "Zukunft" stammt. Das Modell sollte mit Daten aus der "Vergangenheit" ( training/ validationdata) erstellt und optimiert werden , jedoch niemals mit testDaten aus der "Zukunft".

Ein praktisches Beispiel: Wir bauen ein Modell auf, um vorherzusagen, wie gut Baseballspieler in Zukunft abschneiden werden. Wir werden Daten aus dem Zeitraum 1899-2014 verwenden, um eine testund eine validationMenge zu erstellen . Sobald das Modell auf diesen Daten aufgebaut und optimiert ist, werden wir Daten aus dem Jahr 2015 (tatsächlich in der Vergangenheit!) Als Testsatz verwenden, die aus der Perspektive des Modells als "zukünftige" Daten erscheinen und die Modellerstellung in keiner Weise beeinflussen . (Theoretisch könnten wir natürlich auf Daten von 2016 warten, wenn wir wirklich wollen!)

Offensichtlich verwende ich überall Anführungszeichen, da die tatsächliche zeitliche Reihenfolge der Daten möglicherweise nicht mit der tatsächlichen Zukunft übereinstimmt (per Definition fand die gesamte Datenerzeugung wahrscheinlich in der tatsächlichen Vergangenheit statt). In Wirklichkeit kann es sich bei der testMenge einfach um Daten handeln, die aus demselben Zeitraum stammen wie die training/ validationsets, die Sie "durchhalten". Auf diese Weise hatte es keinen Einfluss auf die Optimierung des Modells, aber diese Daten stammen eigentlich nicht aus der Zukunft.

thecity2
quelle
4
Nachdem ich alle anderen Antworten gelesen hatte, machte diese Antwort für mich "Klick"! Sie trainieren mit dem Zugset, stellen sicher, dass Sie mit dem Validierungsset nicht überfordert sind (und dass das Modell und die Hyperparameter mit "unbekannten Daten" funktionieren), und beurteilen dann mit dem Testset "neue Daten", ob Sie dies jetzt tun Vorhersagemöglichkeiten ..!
Stolsvik
Dies ist eine faire Sichtweise in dem Sinne, dass die testDaten niemals Teil des Trainingsprozesses sein sollten. Wenn wir sie als "zukünftige" Daten behandeln, wird dies zu einem unmöglichen Fehler.
Javadba
7

Die meisten überwachten Data Mining-Algorithmen folgen diesen drei Schritten:

  1. Das Trainingsset wird zum Erstellen des Modells verwendet. Dieser enthält einen Datensatz mit vorklassifizierten Ziel- und Prädiktorvariablen.
  2. In der Regel wird ein Hold-Out-Datensatz oder -Testsatz verwendet, um zu bewerten, wie gut das Modell mit Daten außerhalb des Trainingssatzes abschneidet. Der Testsatz enthält die vorklassifizierten Ergebnisdaten, sie werden jedoch nicht verwendet, wenn die Testsatzdaten bis zum Ende durch das Modell laufen und wenn die vorklassifizierten Daten mit den Modellergebnissen verglichen werden. Das Modell wird angepasst, um Fehler im Testset zu minimieren.
  3. Ein anderer Hold-Out-Datensatz oder Validierungssatz wird verwendet, um das angepasste Modell in Schritt 2 auszuwerten, wobei wiederum die Validierungssatzdaten mit dem angepassten Modell verglichen und die Ergebnisse mit den nicht verwendeten vorklassifizierten Daten verglichen werden.
Scott
quelle
4

Einige Leute haben Verwirrung darüber, warum wir einen Validierungssatz verwenden. Deshalb werde ich eine einfache, intuitive Erklärung geben, was passieren wird, wenn Sie keinen Validierungsdatensatz verwenden.

Wenn Sie keinen Validierungssatz verwenden, müssen Sie stattdessen Hyperparameter auswählen und anhand der Leistung des Modells im Testdatensatz entscheiden, wann das Training beendet werden soll. Wenn Sie basierend auf der Leistung des Modells im Testdatensatz entscheiden, wann Sie das Training beenden möchten, können Sie das Training einfach beenden, wenn das Modell im Testdatensatz zufriedenstellend abschneidet. Wenn Sie dann Ihre Ergebnisse melden, melden Sie die Genauigkeit im Testdatensatz. Das Problem dabei ist, dass Sie sagen können, dass Ihr Modell wirklich gut funktioniert hat, obwohl es sich nur um eine zufällige Variation handelte, die dazu führte, dass es nur im Testsatz besser lief.

Wenn Sie stattdessen einen Validierungssatz verwenden, um zu entscheiden, wann das Training beendet werden soll, spiegelt die Genauigkeit des Modells auf dem Testsatz eher vorurteilsfrei wider, wie gut es die Aufgabe im Allgemeinen erfüllt, und es zeigt, dass Sie das nicht optimiert haben Modell, nur um eine gute Leistung auf dem Testset zu erzielen.

dan dan
quelle
2

Ich möchte hier weitere sehr gute Antworten geben, indem ich auf einen relativ neuen Ansatz des maschinellen Lernens verweise, der als "Differential Privacy" bezeichnet wird (siehe Artikel von Dwork; der Win Vector Blog für weitere Informationen ). Die Idee erlaubt es, das Testset tatsächlich wiederzuverwenden, ohne die endgültige Modellleistung zu beeinträchtigen. In einer typischen Einstellung wird der Testsatz nur zur Schätzung der endgültigen Leistung verwendet; idealerweise darf man es nicht einmal anschauen.

Wie in diesem Win Vector-Blog beschrieben (siehe auch andere Einträge), ist es möglich, das Test-Set zu "verwenden", ohne die Leistung des Modells zu beeinträchtigen. Dies geschieht mit dem speziellen Verfahren "Differential Privacy". Der Lernende hat keinen direkten Zugriff auf das Test-Set.

Vladislavs Dovgalecs
quelle
-1

Meine Idee ist, dass diese Option in der Toolbox für neuronale Netzwerke dazu dient, eine Überanpassung zu vermeiden. In dieser Situation werden die Gewichte nur für die Trainingsdaten angegeben und zeigen nicht den globalen Trend an. Indem ein Validierungssatz festgelegt wird, können die Iterationen dahingehend angepasst werden, wo eine Verringerung des Trainingsdatenfehlers eine Verringerung der Validierungsdaten und eine Erhöhung des Validierungsdatenfehlers verursacht; Zusammen mit einer Verringerung des Trainingsdatenfehlers zeigt dies das Überanpassungsphänomen.

Azade
quelle
Ich wage zu behaupten, dass Test-Sets dem gesamten Prozess eine Überprüfung der Gesundheit hinzufügen. Sie können eine Trainingskurve erstellen, die die Validierungs- / Verlustkurve in jeder Epoche wiederholt. Aber wenn sich die Genauigkeit Ihres Testsatzes mit Epochen oder Panzern nicht verbessert, sind Sie bis dahin nicht gut. Du bist überanpassend.
Agcala