Berechnung des Verhältnisses der für die Modellanpassung / Schulung und Validierung verwendeten Probendaten


9

Bereitstellung einer Stichprobengröße "N", die ich zur Vorhersage von Daten verwenden möchte. Wie kann ich die Daten so unterteilen, dass ich einige davon zum Erstellen eines Modells und die restlichen Daten zum Validieren des Modells verwende?

Ich weiß, dass es keine Schwarz-Weiß-Antwort darauf gibt, aber es wäre interessant, einige "Faustregeln" oder normalerweise verwendete Verhältnisse zu kennen. Ich weiß, dass einer unserer Professoren an der Universität bei 60% Modell sagte und bei 40% validierte.

Antworten:


7

Wie Sie sagten, gibt es keine Schwarz-Weiß-Antwort. Im Allgemeinen teile ich die Daten nicht in zwei Teile, sondern verwende stattdessen Methoden wie die k-fache Kreuzvalidierung.

Bei der k-fachen Kreuzvalidierung teilen Sie Ihre Daten zufällig in k Teile auf, passen Ihr Modell an k-1 Teile an und testen die Fehler am ausgelassenen Teil. Sie wiederholen den Vorgang k-mal und lassen jedes Teil einzeln nicht mehr passen. Sie können den mittleren Fehler aus jeder der k Iterationen als Hinweis auf den Modellfehler nehmen. Dies funktioniert sehr gut, wenn Sie die Vorhersagekraft verschiedener Modelle vergleichen möchten.

Eine extreme Form der k-fachen Kreuzvalidierung ist die verallgemeinerte Kreuzvalidierung, bei der Sie nur einen Datenpunkt zum Testen weglassen und das Modell an alle verbleibenden Punkte anpassen. Wiederholen Sie den Vorgang dann n Mal und lassen Sie jeden Datenpunkt einzeln weg. Im Allgemeinen bevorzuge ich die k-fache Kreuzvalidierung gegenüber der allgemeinen Kreuzvalidierung ... nur eine persönliche Entscheidung


2
Lebenslauf mit vollständigem Satz für die Modellauswahl, oder? Es ist ein häufiger Fehler (noch erwähnt Wikipedia ihn), weil es sich um eine versteckte Überanpassung handelt. Sie müssen einen höheren Lebenslauf erstellen oder einen Test hinterlassen, um dies richtig zu machen.

5

Es hängt wirklich von der Datenmenge ab, über die spezifischen Kosten der Methoden und davon, wie genau Ihr Ergebnis sein soll.

Einige Beispiele:

Wenn Sie nur wenige Daten haben, möchten Sie wahrscheinlich eine Kreuzvalidierung verwenden (k-fach, auslassen usw.). Ihr Modell benötigt wahrscheinlich ohnehin nicht viel Ressourcen, um zu trainieren und zu testen. Dies sind gute Möglichkeiten, um Ihre Daten optimal zu nutzen

Sie haben viele Daten: Sie möchten wahrscheinlich einen relativ großen Testsatz durchführen, um sicherzustellen, dass es kaum möglich ist, dass einige seltsame Stichproben zu großen Abweichungen von Ihren Ergebnissen führen. Wie viele Daten sollten Sie nehmen? Es hängt vollständig von Ihren Daten und Ihrem Modell ab. Wenn Sie beispielsweise bei der Spracherkennung zu viele Daten (z. B. 3000 Sätze) verwenden würden, würden Ihre Experimente Tage dauern, da ein Echtzeitfaktor von 7 bis 10 üblich ist. Wenn Sie zu wenig nehmen würden, hängt dies zu stark von den ausgewählten Lautsprechern ab (die im Trainingssatz nicht zulässig sind).

Denken Sie auch daran, dass es in vielen Fällen gut ist, auch ein Validierungs- / Entwicklungsset zu haben!


5

1:10 Test: Zugverhältnis ist beliebt, weil es rund aussieht, 1: 9 ist beliebt wegen des 10-fachen Lebenslaufs, 1: 2 ist beliebt, weil es auch rund ist und den Bootstrap wieder zusammenbaut. Manchmal erhält man einen Test nach bestimmten datenbezogenen Kriterien, zum Beispiel letztes Jahr zum Testen, Jahre zuvor zum Training.

Die allgemeine Regel lautet: Der Zug muss groß genug sein, damit die Genauigkeit nicht wesentlich abfällt, und der Test muss groß genug sein, um zufällige Schwankungen auszuschalten.

Trotzdem bevorzuge ich den Lebenslauf, da er Ihnen auch eine Fehlerverteilung gibt.


4

Als Erweiterung der k-fachen Antwort ist die "übliche" Wahl von k entweder 5 oder 10. Die Methode des Auslassens hat die Tendenz, Modelle zu erzeugen, die zu konservativ sind. Zu Ihrer Information, hier ist ein Hinweis auf diese Tatsache:

Shao, J. (1993), Lineare Modellauswahl durch Kreuzvalidierung, Journal of the American Statistical Association, Vol. 3, No. 88, Nr. 422, S. 486-494


Hast du dieses Papier überhaupt gelesen? Trotzdem funktioniert es nur für lineare Modelle (selbst der Titel zeigt es!), Es geht um asymptotisches Verhalten für unendlich viele Objekte. 100 ist übrigens nicht genug.

1
Und ich wünsche Ihnen viel Glück bei der 10-fachen Kreuzvalidierung am Set mit 9 Objekten.

@mbq: Ich sage die "übliche" Wahl. Bedeutet nicht jede Wahl
Albort

@mbq: Ich habe die Zeitung gelesen; Shao berichtet über eine Simulationsstudie mit nur 40 Beobachtungen und zeigt, dass LOOCV den Monte-Carlo-CV nicht erfüllt, außer in dem Fall, in dem keine Unterauswahl angemessen ist (der vollständige Funktionsumfang ist optimal). 100 ist weit mehr als genug, zumindest für die Auswahl von Teilmengen in linearen Modellen.
Shabbychef

@shabbychef Du hast mich hier; Das zweite Argument in meinem ersten Kommentar ist natürlich ein Müll, ich hatte einige andere Arbeiten im Sinn und übergeneralisiert. Trotzdem werde ich immer noch argumentieren, dass Shaos Artikel keine gute Referenz für das allgemeine "LOO schlägt für großes N fehl" ist, da sein Umfang auf lineare Modelle reduziert ist.
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.