В обзоре « Прикладное прогнозирующее моделирование » рецензент заявляет :
Одна критика, которую я имею в отношении педагогики статистического обучения (SL), - это отсутствие соображений производительности вычислений при оценке различных методов моделирования. С его акцентом на начальной загрузке и перекрестной проверке для настройки / тестирования моделей, SL довольно интенсивно использует вычислительные ресурсы. Добавьте к этому повторную выборку, встроенную в такие методы, как пакетирование и бустинг, и у вас появится призрак вычислений для контролируемого изучения больших наборов данных. Фактически, ограничения памяти R накладывают довольно жесткие ограничения на размер моделей, которые можно уместить с помощью самых эффективных методов, таких как случайные леса. Хотя SL хорошо справляется с калибровкой производительности модели по небольшим наборам данных, было бы неплохо понять производительность в сравнении с вычислительными затратами для больших данных.
Каковы ограничения памяти R, и накладывают ли они жесткие ограничения на размер моделей, которые могут быть приспособлены наиболее эффективными методами, такими как случайные леса ?
источник
Ответы:
Как указал Константин, R выполняет все свои вычисления в системной памяти, т.е. в оперативной памяти. Следовательно, объем оперативной памяти является очень важным ограничением для ресурсоемких операций в R. Преодолев это ограничение, в наши дни данные хранятся в системах HDFS, где данные не загружаются в память и вместо этого запускается программа, программа переходит к данным и выполняет операции, тем самым преодолевая ограничения памяти. RHadoop ( https://github.com/RevolutionAnalytics/RHadoop/wiki ) - это разъем, который вы ищете.
В связи с воздействием на алгоритмы, которые требуют значительных вычислительных ресурсов, метод случайных лесов / деревьев решений / ансамблей для значительного объема данных (минимум 50 000 наблюдений в моем опыте) занимает много памяти и значительно медленнее. Чтобы ускорить процесс, распараллеливание - это путь, а распараллеливание изначально доступно в Hadoop! Вот где Hadoop действительно эффективен.
Так что, если вы собираетесь использовать ансамблевые методы, которые требуют значительных вычислительных ресурсов и работают медленно, вам нужно попробовать систему HDFS, которая дает значительное улучшение производительности.
источник
R выполняет все вычисления в памяти, поэтому вы не можете выполнять операции с набором данных, размер которого превышает объем доступной памяти. Однако есть некоторые библиотеки, которые позволяют обработку больших данных с использованием R, и одна из популярных библиотек для обработки больших данных, таких как Hadoop.
источник
Эта критика больше не оправдана:
Хотя верно, что большинство стандартных и наиболее уважаемых библиотек R были ограничены вычислениями в памяти, растет число специализированных библиотек для работы с данными, которые не помещаются в память.
Например, для случайных лесов в больших наборах данных у вас есть библиотека
bigrf
. Более подробная информация здесь: http://cran.r-project.org/web/packages/bigrf/Другая область роста - это связь R с такими средами больших данных, как hadoop, что открывает еще один мир возможностей.
источник