PYTANIE : K-krotnie vs powtarzane losowe podpróbkowanie. Zastanawiam się, jaki rodzaj krzyżowej walidacji modelu wybrać dla problemu klasyfikacji: Kfold czy losowe podpróbkowanie (próbkowanie bootstrap)? Moje najlepsze przypuszczenie to użycie 2/3 zbioru danych (około ~ 1000 pozycji) do treningu i 1/3 do walidacji. W tym przypadku K-fold daje tylko trzy iteracje (fałdy), co nie wystarczy, aby zobaczyć stabilny średni błąd. Z drugiej strony nie podoba mi się funkcja losowego podpróbkowania: niektóre elementy nigdy nie zostaną wybrane do szkolenia / walidacji, a niektóre zostaną użyte więcej niż jeden raz. Zastosowane algorytmy klasyfikacji: losowa regresja leśna i logistyczna.
ODPOWIEDŹ : Jeśli masz wystarczającą liczbę próbek i chcesz wykorzystać wszystkie dane, to dobrym wyborem jest cross-walidacja k-fold. Posiadanie ~ 1500 wydaje się bardzo dużo, ale to, czy jest to wystarczające do k-fols walidacji krzyżowej, zależy również od wymiarów danych (liczby atrybutów i liczby wartości atrybutów). Na przykład, jeśli każda obserwacja ma 100 atrybutów, wówczas 1500 obserwacji jest niska. Kolejnym potencjalnym minusem k-krotnej walidacji krzyżowej jest możliwość pojedynczego, skrajnego odchylenia wypaczającego wyniki. Na przykład, jeśli masz jedną skrajną wartość odstającą, która może mocno wpłynąć na twój klasyfikator, to w 10-krotnej walidacji krzyżowej wpłynie to na 9 z 10 partycji (chociaż w przypadku losowych lasów nie sądzę, abyś miał ten problem ). Losowe podpróbkowanie (np. Próbkowanie bootstrap) jest preferowane, gdy masz niedoświadczony lub gdy masz powyższą sytuację, w której nie chcesz, aby każda obserwacja pojawiała się w fałdach k-1.
ODPOWIEDŹ : Wydaje mi się, że mówisz, że chcesz zastosować 3-krotną walidację krzyżową, ponieważ wiesz coś o swoich danych (że użycie k = 10 spowodowałoby nadmierne dopasowanie? Jestem ciekaw twojego rozumowania). Nie jestem pewien, czy o tym wiesz, jeśli nie, możesz po prostu użyć większego k. Jeśli nadal uważasz, że nie możesz użyć standardowej krzyżowej weryfikacji k-fold, to możesz zmodyfikować nieco algorytm: powiedz, że podzieliłeś dane na 30 krotności i za każdym razem użyj 20 do treningu i 10 do oceny (a następnie przesuń w górę jeden krotnie i użyj pierwszej i ostatniej 9 jako oceny, a resztę jako treningu). Oznacza to, że możesz korzystać ze wszystkich swoich danych. Kiedy używam k-krotnej weryfikacji krzyżowej, zwykle uruchamiam ten proces wielokrotnie z inną randomizacją, aby upewnić się, że mam wystarczającą ilość danych, jeśli nie, zobaczysz różne wyniki w zależności od randomizacji. W takich przypadkach sugerowałbym pobieranie próbek. Sztuka polega na tym, aby robić to wystarczająco często.