Teraz mam R
ramkę danych (szkolenie). Czy ktoś może mi powiedzieć, jak losowo podzielić ten zestaw danych, aby wykonać 10-krotną weryfikację krzyżową?
cross-validation
użytkownik22062
źródło
źródło
Odpowiedzi:
caret
ma do tego funkcję:Następnie każdy element
flds
jest listą indeksów dla każdego zestawu danych. Jeśli Twój zestaw danych zostanie wywołanydat
,dat[flds$train,]
otrzymasz zestaw treningowy, zestawdat[ flds[[2]], ]
drugiego pasowania itp.źródło
Oto prosty sposób na wykonanie 10-krotności bez użycia pakietów:
źródło
Prawdopodobnie nie najlepszy sposób, ale tutaj jest jeden sposób, aby to zrobić. Jestem prawie pewien, że kiedy napisałem ten kod, pożyczyłem sztuczkę z innej odpowiedzi tutaj, ale nie mogłem znaleźć linku.
źródło
poniżej znajdziesz inny kod, którego używam (pożyczony i przystosowany z innego źródła). Skopiowałem go prosto ze skryptu, którego sam używałem, pozostawionego w procedurze rpart. Częścią, która prawdopodobnie najbardziej interesuje, są linie tworzenia zagięć. Alternatywnie - możesz użyć funkcji crossval z pakietu bootstrap.
źródło
Wszystko zrobione dla Ciebie w jednym wierszu kodu!
źródło
Ponieważ nie podjąłem takiego podejścia na tej liście, pomyślałem, że mogę udostępnić inną opcję osobom, które nie chcą instalować pakietów w celu szybkiej weryfikacji krzyżowej
Zauważ, że powyższy kod zakłada, że dane są już tasowane. Jeśli tak nie jest, możesz rozważyć dodanie czegoś takiego
źródło