Я заметил , что есть несколько реализаций случайного леса , такие как ALGLIB, вафли и некоторые R пакеты , например randomForest
. Кто-нибудь может сказать мне, высоко ли оптимизированы эти библиотеки? Являются ли они в основном эквивалентными случайным лесам, как подробно описано в «Элементах статистического обучения», или добавлено много дополнительных уловок?
Я надеюсь, что этот вопрос достаточно конкретен. В качестве иллюстрации типа ответа, который я ищу, если бы кто-нибудь спросил меня, был ли пакет BLAS с линейной алгеброй сильно оптимизирован, я бы сказал, что он был чрезвычайно высокооптимизирован и его не стоит пытаться улучшить, кроме как в очень специализированных приложениях.
random-forest
algorithms
model-evaluation
Генри Б.
источник
источник
Ответы:
(Обновлено 6 IX 2015 с предложениями от комментариев, также сделано CW)
Для R есть два новых хороших пакета, которые довольно хорошо оптимизированы для определенных условий:
Другие реализации РФ:
Бумага Ranger имеет некоторые сравнения скорости / памяти, но нет никакого тщательного теста.
источник
Насколько я знаю, R-версия randomForest вызывает тот же код на Фортране, что и оригинальная версия. Кроме того, распараллелить функцию randomForest тривиально. На самом деле это один из примеров, представленных в документации foreach .
Принимая во внимание, что случайные леса смущающе параллельны, самая большая оптимизация, которую вы можете сделать, это запустить их параллельно. После этого я не думаю, что в алгоритме есть какие-то другие низко висящие фрукты, но я могу ошибаться.
Единственная проблема заключается в том, что в комбинированном лесу вы теряете оценку погрешности «вне пакета», но, вероятно, существует простой способ ее вычисления (мне бы очень хотелось узнать, как это сделать).
источник
ELSII используется RandomForest (смотри , например, сноска 3 p.591), который является реализацией R от Breiman и Катлер Fortran код из Salford. Код Энди Лиу находится в C.
Есть еще одна реализация RF, предложенная в пакете party (в C), которая опирается на R / Lapack, который имеет некоторые зависимости от BLAS (см.
/include/R_ext/Lapack.h
В вашем базовом каталоге R).Что касается упаковки, то не должно быть слишком сложно распараллелить ее, но я позволю более специализированным пользователям ответить на этот аспект.
источник
Группа разработчиков randomJungle утверждает, что она на порядок быстрее, чем реализация R randomForest, и использует на порядок меньше памяти. Пакет для randomJungle разрабатывается для R, но я пока не могу его собрать.
https://r-forge.r-project.org/projects/rjungler/
источник
Для реализации Javascript пройдите через эту демонстрацию.
Если вы похожи на ребенка, который жаждет шоколада, вот ваш шоколад из случайного леса http://cs.stanford.edu/people/karpathy/svmjs/demo/demoforest.html
источник