Jetzt habe ich einen R
Datenrahmen (Training). Kann mir jemand sagen, wie ich diesen Datensatz zufällig aufteilen soll, um eine 10-fache Kreuzvalidierung durchzuführen?
cross-validation
user22062
quelle
quelle
Antworten:
caret
hat eine Funktion dafür:Dann ist jedes Element von
flds
eine Liste von Indizes für jeden Datensatz. Wenn Ihr Datensatz aufgerufen wirddat
, erhaltendat[flds$train,]
Sie den Trainingssatz,dat[ flds[[2]], ]
den zweiten Falzsatz usw.quelle
Hier ist eine einfache Möglichkeit, das 10-fache ohne Pakete auszuführen:
quelle
Wahrscheinlich nicht der beste Weg, aber hier ist ein Weg, es zu tun. Ich bin mir ziemlich sicher, dass ich mir beim Schreiben dieses Codes einen Trick von einer anderen Antwort hier ausgeliehen hatte, aber ich konnte keinen Link dazu finden.
quelle
Nachfolgend finden Sie einen anderen Code, den ich verwende (ausgeliehen und aus einer anderen Quelle angepasst). Kopierte es direkt aus einem Skript, das ich gerade selbst verwendet habe, und blieb in der Routine rpart. Der wahrscheinlich am meisten interessierende Teil sind die Linien zur Erzeugung der Falten. Alternativ können Sie die Funktion crossval aus dem Bootstrap-Paket verwenden.
quelle
Alles in einer Codezeile für Sie erledigt!
quelle
Da ich in dieser Liste nicht auf meine Vorgehensweise eingegangen bin, dachte ich, ich könnte eine andere Option für Personen empfehlen, die keine Lust haben, Pakete für eine schnelle Gegenüberstellung zu installieren
Beachten Sie, dass der obige Code davon ausgeht, dass die Daten bereits gemischt sind. Wenn dies nicht der Fall wäre, könnten Sie etwas wie hinzufügen
quelle