Stosuję algorytm losowego lasu jako klasyfikator w zestawie danych mikromacierzy, które są podzielone na dwie znane grupy z tysiącami funkcji. Po pierwszym uruchomieniu sprawdzam znaczenie funkcji i ponownie uruchamiam algorytm drzewa z 5, 10 i 20 najważniejszymi funkcjami. Uważam, że dla wszystkich funkcji, w pierwszej dziesiątce i 20, szacowany przez OOB poziom błędu wynosi 1,19%, podczas gdy w przypadku 5 najlepszych funkcji wynosi 0%. Wydaje mi się to sprzeczne z intuicją, więc zastanawiałem się, czy możesz wyjaśnić, czy czegoś mi brakuje, czy używam niewłaściwych danych.
I za pomocą pakietu randomForest w R z ntree = 1000, nodesize = 1 i mtry = sqrt (n)
r
machine-learning
classification
random-forest
danielsbrewer
źródło
źródło
Odpowiedzi:
Jest to strój wyboru funkcji i jest to dość znane - patrz Ambroise i McLachlan 2002 . Problem wynika z faktu, że RF jest zbyt inteligentny, a liczba obiektów jest zbyt mała. W tym drugim przypadku na ogół dość łatwo jest losowo utworzyć atrybut, który może mieć dobrą korelację z decyzją. A gdy liczba atrybutów jest duża, możesz być pewien, że niektóre z zupełnie nieistotnych będą bardzo dobrymi predyktorami, nawet na tyle, aby utworzyć klaster, który będzie w stanie odtworzyć decyzję w 100%, szczególnie gdy ogromna elastyczność RF jest brane pod uwagę. I tak staje się oczywiste, że po otrzymaniu instrukcji znalezienia najlepszego możliwego podzbioru atrybutów procedura FS znajduje ten klaster.
Jedno rozwiązanie (CV) podano w A & McL, możesz również przetestować nasze podejście do tematu,Algorytm Boruta , który zasadniczo rozszerza zestaw o „atrybuty cienia”, które zostały zaprojektowane losowo, i porównuje ich znaczenie RF z tym uzyskanym dla rzeczywistych atrybutów, aby ocenić, które z nich są rzeczywiście losowe i można je usunąć; jest to wielokrotnie powtarzane, aby być znaczącym. Boruta ma raczej nieco inne zadanie, ale o ile moje testy wykazały, wynikowy zestaw jest wolny od problemu nadmiaru FS.
źródło
Pomyślałem, że dodam intuicyjne wyjaśnienie tego wzoru.
W każdym drzewie decyzyjnym zawierającym losowy las dane są iteracyjnie dzielone wzdłuż pojedynczych wymiarów. Co najważniejsze, procedura ta obejmuje
1) biorąc pod uwagę tylko niewielki, losowo wybrany podzbiór wszystkich zmiennych objaśniających, oraz
2) wybranie najsilniej powiązanej zmiennej objaśniającej w tym losowo wybranym podzbiorze zmiennych, aby podzielić dane.
Dlatego prawdopodobieństwo wyboru n najważniejszych zmiennych w dowolnym węźle maleje wraz ze wzrostem liczby zmiennych objaśniających. Dlatego jeśli doda się dużą liczbę zmiennych, które w niewielkim stopniu przyczyniają się do wyjaśnienia, automatycznie prowadzi to do wzrostu wskaźnika błędów lasu. I odwrotnie, wybranie tylko najważniejszych zmiennych do włączenia najprawdopodobniej doprowadzi do obniżenia poziomu błędu.
Losowe lasy są do tego dość odporne i zwykle wymaga bardzo dużego dodania tych parametrów „hałasu”, aby znacznie zmniejszyć wydajność.
źródło