Zauważyłem, że istnieje kilka implementacje losowej lasu, takich jak ALGLIB, gofry i kilka pakietów, takich jak R randomForest
. Czy ktoś może mi powiedzieć, czy te biblioteki są wysoce zoptymalizowane? Czy są one w zasadzie równoważne losowym lasom opisanym w Elementach statystycznego uczenia się, czy też dodano wiele dodatkowych sztuczek?
Mam nadzieję, że to pytanie jest wystarczająco szczegółowe. Jako ilustrację rodzaju odpowiedzi, której szukam, gdyby ktoś zapytał mnie, czy pakiet algebry liniowej BLAS był wysoce zoptymalizowany, powiedziałbym, że był bardzo wysoce zoptymalizowany i przeważnie nie warto próbować go ulepszać, z wyjątkiem bardzo wyspecjalizowanych aplikacji.
random-forest
algorithms
model-evaluation
Henry B.
źródło
źródło
Odpowiedzi:
(Zaktualizowano 6 IX 2015 z sugestiami z komentarzy, również CW)
Dostępne są dwa nowe, ładne pakiety dla R, które są dość dobrze zoptymalizowane do określonych warunków:
Inne wdrożenia RF:
Papier Ranger ma pewne porównania prędkości / pamięci, ale nie ma dokładnego testu porównawczego.
źródło
O ile mi wiadomo, wersja R randomForest wywołuje ten sam kod Fortran, co wersja oryginalna. Co więcej, zrównoleglenie funkcji randomForest jest banalne. To właściwie jeden z przykładów podanych w dokumentacji Foreach .
Biorąc pod uwagę, że losowe lasy są żenująco równoległe, największą optymalizacją, jaką możesz zrobić, jest ich równoległe uruchamianie. Po tym nie sądzę, że w algorytmie są inne nisko wiszące owoce, ale mogę się mylić.
Jedynym problemem jest to, że tracisz oszacowanie błędu braku torby w połączonym lesie, ale prawdopodobnie istnieje prosty sposób, aby go obliczyć (naprawdę chciałbym dowiedzieć się, jak to zrobić).
źródło
W ELSII zastosowano randomForest (patrz np. Przypis 3, s. 591), który jest implementacją R kodu Breiman i Cutlera Fortrana z Salford. Kod Andy'ego Liawa znajduje się w C.
Istnieje kolejna implementacja RF zaproponowana w pakiecie partyjnym (w C), który opiera się na R / Lapack, który ma pewne zależności od BLAS (patrz
/include/R_ext/Lapack.h
w twoim podstawowym katalogu R).Jeśli chodzi o pakowanie, to nie powinno być zbyt trudne do zrównoleglenia go, ale pozwolę bardziej wyspecjalizowanym użytkownikom odpowiedzieć na ten temat.
źródło
Zespół stojący za randomJungle twierdzi, że jest o rząd wielkości szybszy niż implementacja random random R i używa o rząd wielkości mniej pamięci. Pakiet dla randomJungle jest opracowywany dla R, ale nie mogę go jeszcze skompilować.
https://r-forge.r-project.org/projects/rjungler/
źródło
W celu wdrożenia Javascript przejdź przez to demo.
Jeśli jesteś jak dziecko spragnione czekolady, oto Twoja czekolada z przypadkowego lasu http://cs.stanford.edu/people/karpathy/svmjs/demo/demoforest.html
źródło