Walidacja krzyżowa: K-krotnie vs powtarzane losowe podpróbkowanie

10

Zastanawiam się, jaki rodzaj walidacji krzyżowej modelu wybrać dla problemu klasyfikacji: K-fold lub 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 nie będą nigdy wybierane do szkolenia / walidacji, a niektóre będą używane więcej niż jeden raz.

Zastosowane algorytmy klasyfikacji: losowa regresja leśna i logistyczna.

IharS
źródło
1
Wydaje mi się, że wcześniejsze pytanie brzmi: czy ten wybór nie zależy od ocenianego algorytmu (głównie jego zachowania)?
Rubens,
1
@Rubens, zaktualizowałem pytanie:
Interesuję się

Odpowiedzi:

7

Jeśli masz odpowiednią liczbę próbek i chcesz wykorzystać wszystkie dane, to sprawdzanie poprawności metodą krosowania jest dobrym rozwiązaniem. Posiadanie ~ 1500 wydaje się bardzo dużo, ale to, czy jest to wystarczające do k-krotnej 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.

Innym 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 jesteś 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.

bogatron
źródło
4

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 walidacji krzyżowej k-fold, możesz nieco zmodyfikować 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 pas 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 walidacji 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.

Rhand
źródło