Nie znalazłem żadnej literatury na temat zastosowania Losowych Lasów do MNIST, CIFAR, STL-10 itp., Więc pomyślałem, że sam spróbuję ich z MNIST niezmienniczymi permutacjami.
W R próbowałem:
randomForest(train$x, factor(train$y), test$x, factor(test$y), ntree=500)
Trwało to 2 godziny i wystąpił błąd testu 2,8%.
Próbowałem też scikit-learn , z
RandomForestClassifier(n_estimators=2000,
max_features="auto",
max_depth=None)
Po 70 minutach otrzymałem błąd testowy 2,9%, ale zamiast n_estimators = 200, otrzymałem błąd testowy 2,8% już po 7 minutach.
Z OpenCV próbowałem
rf.train(images.reshape(-1, 28**2),
cv2.CV_ROW_SAMPLE,
labels.astype('int'))
Trwało to 6,5 minuty, a użycie rf
do prognozowania dało błąd testowy 15%. Nie wiem, ile drzew wyszkolił, ponieważ ich powiązanie w Pythonie dla Losowych Lasów wydaje się ignorować params
argument, przynajmniej w wersji 2.3.1. Nie mogłem też wymyślić, jak wyjaśnić OpenCV, że chcę rozwiązać problem klasyfikacji, a nie regresję - mam wątpliwości, ponieważ zastąpienie astype('int')
go astype('float32')
daje ten sam rezultat.
W sieciach neuronowych , dla testu niezmienniczego permutacji MNIST, aktualny stan techniki wynosi 0,8% błędu testowego, chociaż szkolenie prawdopodobnie zająłoby więcej niż 2 godziny na jednym procesorze.
Czy można zrobić znacznie lepiej niż błąd testu 2,8% na MNIST przy użyciu Losowych lasów? Myślałem, że ogólny konsensus jest taki, że Lasy Losowe są zwykle co najmniej tak dobre, jak SVM jądra, które, jak sądzę, mogą otrzymać błąd testowy 1,4%.
Odpowiedzi:
Prawdopodobnie tak. Ale to nie znaczy, że będziesz używać tych samych funkcji, które otrzymujesz domyślnie. Drzewa decyzyjne na ogół nie działają dobrze w przypadku takich problemów o dużych wymiarach, ponieważ dzielisz tylko jedną funkcję na raz. Losowy las zwiększa użyteczność drzew decyzyjnych, ale wciąż mają ten sam problem. Pokonanie RF o 2,8% prawdopodobnie będzie wymagać wstępnego przetworzenia funkcji i przekształcenia funkcji w bardziej użyteczny podzbiór.
Sieci neuronowe i maszyny SVM jądra domyślnie dokonują transformacji / inżynierii cech. Tak więc w pewnym sensie imponujące jest to, że Losowy Las zbliża się przyzwoicie bez dodatkowej pracy (rzeczywiście prawdziwym powodem popularności RF było to, że głupio łatwo było uzyskać „wystarczająco dobre” wyniki).
Nie ma takiego konsensusu. Często mają podobne wyniki pod względem dokładności - ale są to bardzo różne algorytmy o różnych mocnych / słabych stronach. W wielu problemach dokładności są podobne, w innych SVM wygrywa z dobrym marginesem, w niektórych RF wygrywa z dobrym marginesem.
źródło