Czy modelowanie za pomocą losowych lasów wymaga weryfikacji krzyżowej?

23

O ile widziałem, opinie na ten temat różnią się. Najlepsza praktyka z pewnością podyktowałaby zastosowanie weryfikacji krzyżowej (szczególnie przy porównywaniu RF z innymi algorytmami w tym samym zbiorze danych). Z drugiej strony oryginalne źródło stwierdza, że ​​błąd OOB obliczany podczas szkolenia modelu jest wystarczającym wskaźnikiem wydajności zestawu testowego. Nawet Trevor Hastie w stosunkowo niedawnych rozmowach mówi, że „Losowe lasy zapewniają bezpłatną weryfikację krzyżową”. Intuicyjnie ma to dla mnie sens, jeśli trenuję i próbuję ulepszyć model oparty na RF na jednym zbiorze danych.

Czy ktoś może przedstawić argumenty za i przeciw potrzebie walidacji krzyżowej z losowymi lasami?

neuron
źródło
Pytania wyraźnie szukające opinii są ogólnie odradzane na stronach wymiany stosów, datascience.stackexchange.com/help/dont-ask , być może mógłbyś przeformułować pytanie, aby wymagało przykładowych przykładów na poparcie doświadczeń użytkowników? Lub poszukaj teoretycznych podstaw dla jednego lub drugiego stanowiska.
image_doctor,
2
Lasy losowe rzadziej przeważają nad innymi algorytmami ML, ale nadal zaleca się weryfikację krzyżową (lub inną alternatywną formę oceny).
David
Myślę, że powinieneś zadać to pytanie statystykowi SO: stats.stackexchange.com
Marcin Kosiński
Chciałbym poprzeć @Davida ... w ten czy inny sposób, będziesz przeprowadzał walidację krzyżową.
Czy możesz podać odniesienie do żądanego oświadczenia Trevora Hastiego?
tipanverella

Odpowiedzi:

7

Domyślnie losowy las zbiera 2/3 danych do treningu i odpoczynku do testowania regresji oraz prawie 70% danych do treningu i odpoczynku do testowania podczas klasyfikacji. Zasadniczo, ponieważ losuje wybór zmiennych podczas każdego podziału drzewa, nie jest podatny na nadmierne dopasowanie inne modele. Jeśli jednak chcesz używać CV przy użyciu nfolds w sklearn, możesz nadal używać koncepcji trzymania zestawu, np. oob_score (po wyjęciu z torby) = Prawda, która pokazuje wydajność modelu z lub bez CV. Krótko mówiąc, używając oob_score = Prawda z nfoldsami lub bez może sama stwierdzić, czy użycie CV jest dobre dla twoich danych. Ogólnie, jeśli twój cel ma określoną dystrybucję i nie masz przy sobie wielu danych obserwacyjnych, wtedy użycie CV nie da dużo poprawy.

0xF
źródło
5

Jedną kluczową różnicą jest to, że krzyżowa walidacja zapewnia, że ​​wszystkie próbki pojawią się w zestawach szkoleniowych i testowych, dzięki czemu 100% danych zostanie w pewnym momencie wykorzystane do szkolenia i testów.

W zależności od rozmiaru zestawu danych ładowanie, próbkowanie z zastępowaniem, występujące w losowym lesie, nie gwarantuje, że podziały, które zobaczą drzewa, będą zawierać wszystkie wystąpienia. Jeśli masz wystarczająco dużo drzew w lesie, oszacowanie OOB powinno asymptotycznie zbliżyć się do najlepszej wartości oszacowania OOB.

Dokładność obu metod będzie do pewnego stopnia zależna od danych, dlatego rozsądne może być porównanie obu metod z konkretnymi danymi, które masz przed sobą i sprawdzenie, czy szacunki CV i RF OOB dają podobne wartości.

Jeśli nie, to warto zbadać dalsze szacunki prawdziwego poziomu błędu, być może dzięki znacznie wyższym wartościom K w CV.

image_doctor
źródło
3

Zrobiłem kilka testów na zestawie danych o wielkości 50 000 wierszy sklearn.RandomForestRegressor.

Otrzymuję znacząco różne wyniki - używam znormalizowanego gini dla metryki - w zależności od tego, czy używam rf.oob_prediction_(0,2927), czy KFold CV (0,3258 dla 7-krotności i 0,3236 dla 3-krotności).

W związku z tym wydaje się, że masz na myśli „zwłaszcza, jeśli porównanie RF z innymi algorytmami w tym samym zbiorze danych” jest silnym rozważeniem zastosowania ręcznego CV zamiast polegania na prognozie OOB.

odwrócenie
źródło