Ich verstehe die Gründe für die Aufteilung der Daten in einen Test- und einen Validierungssatz. Ich verstehe auch, dass die Größe des Split von der Situation abhängen wird, aber im Allgemeinen von 50/50 bis 90/10 variieren wird.
Ich habe eine RNN erstellt, um die Rechtschreibung zu korrigieren und mit einem Datensatz von ~ 5 m Sätzen zu beginnen. Ich rasiere 500k Sätze ab und trainiere dann mit den restlichen ~ 4,5m Sätzen. Wenn das Training beendet ist, nehme ich meinen Validierungssatz und berechne die Genauigkeit.
Das Interessante ist, dass ich nach nur 4% meines Validierungssatzes eine Genauigkeit von 69,4% habe und dieser Prozentsatz sich in keiner Richtung um mehr als 0,1% ändert. Irgendwann habe ich die Validierung einfach abgebrochen, weil die Zahl bei 69,5% steckt.
Warum also 10% für die Validierung einsparen, wenn ich wahrscheinlich mit 1% davonkommen könnte? Ist das wichtig?
quelle
Antworten:
Größere Validierungssätze liefern genauere Schätzungen der Leistung außerhalb der Stichprobe. Aber wie Sie bemerkt haben, kann diese Schätzung zu einem bestimmten Zeitpunkt so genau sein, wie Sie es benötigen, und Sie können grobe Vorhersagen darüber treffen, wie groß die Validierungsstichprobe sein muss, um diesen Punkt zu erreichen.
Für eine einfache korrekte / inkorrekte Klassifikationsgenauigkeit können Sie den Standardfehler der Schätzung als (Standardabweichung einer Bernouilli - Variablen) berechnen, wobei die Wahrscheinlichkeit einer korrekten Klassifikation ist, und ist die Größe des Validierungssatzes. Natürlich weißt du , aber du könntest eine Vorstellung von seiner Reichweite haben. Angenommen, Sie erwarten eine Genauigkeit zwischen 60 und 80% und möchten, dass Ihre Schätzungen einen Standardfehler von weniger als 0,1% aufweisen: Wie groß sollte (die Größe von das validierungsset) sein? Für wir: Für pnp √p(1−p)/n−−−−−−−−−√ p n p np=0,6n> 0,6 - 0,6 2
Diese Berechnungen zeigen auch, dass Tim in seiner Antwort darauf hingewiesen hat, dass die Genauigkeit Ihrer Schätzungen von der absoluten Größe Ihres Validierungssatzes (dh von ) abhängt und nicht von seiner Größe im Verhältnis zum Trainingssatz.n
(Ich könnte auch hinzufügen, dass ich hier eine repräsentative Stichprobe annehme. Wenn Ihre Daten sehr heterogen sind, müssen Sie möglicherweise größere Validierungssätze verwenden, um sicherzustellen, dass die Validierungsdaten dieselben Bedingungen usw. wie Ihre Zug- und Testdaten enthalten. )
quelle
Eine nette Diskussion über dieses Problem bietet Andrew Ng in seinem Deep Learning-Kurs auf Coursera.org . Wie er bemerkt, sind die Standardaufteilungen wie 8: 2 oder 9: 1 gültig, wenn Ihre Daten klein bis mäßig groß sind, aber viele der heutigen Probleme beim maschinellen Lernen große Datenmengen verwenden (z. B. Millionen von Beobachtungen wie in Ihrem Fall). und in einem solchen Szenario könnten Sie 2%, 1% oder sogar weniger der Daten als Testsatz belassen und alle verbleibenden Daten für Ihren Trainingssatz verwenden (er argumentiert tatsächlich, auch einen Entwicklungssatz zu verwenden). Je mehr Daten Sie Ihrem Algorithmus zur Verfügung stellen, desto besser ist die Leistung. Dies gilt insbesondere für Deep Learning * (er weist auch darauf hin, dass dies bei nicht-Deep Learning-Algorithmen für maschinelles Lernen nicht der Fall sein darf).
Wie bereits in einem Kommentar von Alex Burn bemerkt , geht es nicht wirklich um die Größe Ihres Testsets, sondern um die Repräsentativität für Ihr Problem. Normalerweise hoffen wir bei größeren Datenmengen, dass diese repräsentativer sind, aber dies muss nicht der Fall sein. Dies ist immer ein Kompromiss und Sie müssen problemspezifische Überlegungen anstellen. Es gibt keine Regeln, die besagen, dass der Testsatz nicht weniger als X Fälle oder weniger als Y% Ihrer Daten sein sollte.
* - Haftungsausschluss: Ich wiederhole hier die Argumente von Andrew Ng, ich würde mich nicht als Spezialist für tiefes Lernen betrachten.
quelle
In dem Artikel1/2N−−−√ N N=5⋅106 ≈0.00032=0.032%
Asymptotic Statistical Theory of Overtraining and Cross-Validation
von Shun-ichi Amari et al. [1] Sie untersuchen die optimale Menge an Proben, die als Validierungssatz ausgelassen werden soll (zum Zweck des vorzeitigen Stopps), und kommen zu dem Schluss, dass die optimale Aufteilung beträgt[1] https://www.ncbi.nlm.nih.gov/pubmed/18255701
quelle