1.2 Статистическая среда R и ее использование в Data Mining

“Программное обеспечение системы R, которое постоянно совершенствуется совместными усилиями сотен энтузиастов и находится в открытом доступе в хранилище CRAN, – это выдающийся пример духа сотрудничества и кооперации в статистической науке.”
(Myers, Patil, 2012)

Необходимым условием современного статистического анализа данных является эффективное использование компьютерных программ, от функциональной полноты и алгоритмической продуманности которых зависит итоговая интерпретация результатов исследования и надежность выводов. И здесь есть прямой смысл обратиться к свободно распространяемой системе R, которая является наиболее полной, надежной и динамично развивающейся статистической средой, объединяющей язык программирования высокого уровня и мощные библиотеки программных модулей для вычислительной и графической обработки данных.

Сегодня статистическая среда R (http://www.r-project.org) является безусловным лидером среди некоммерческих систем статистического анализа и постепенно становится незаменимой при проведении научно-технических расчетов в большинстве западных университетских центров и многих ведущих фирмах. Расширение библиотек программных модулей за счет усилий множества разработчиков привело к возникновению распределенной системы хранения и распространения пакетов R, то есть “CRAN” (от «Comprehensive R Archive Network»; http://cran.r-project.org), которая обладает также развитой системой информационной поддержки.

Всемерная поддержка научным сообществом данного проекта и широкое преподавание статистики на базе R обусловили то, что приведение скриптов на этом языке постепенно становится общепризнанным мировым “стандартом” как в журнальных публикациях, так и при неформальном общении ученых всего мира. Для уверенного пользования языком R и быстрой ориентировки в богатом наборе функций этой статистической среды можно порекомендовать всегда иметь под рукой справочные карты, составленные разными авторами: “R Reference Card” (перевод на русский язык см. на странице http://r-analytics.blogspot.ru/p/blog-page_06.html), “R Reference Card by Jonathan Baron”, “Time series Reference Card” и “Regression Reference Card” (https://cran.r-project.org/other-docs.html).

Значительный раздел среды R посвящен машинному обучению и собственно статистической обработке массивов данных. Хорошим путеводителем к поиску того, какие ресурсы, пакеты и библиотеки могут быть использованы для решения тех или иных задач пользователя, является страница CRAN Task Views (http://cran.r-project.org/web/views). Там представлено, например, описание следующих коллекций пакетов по тематике Data Mining:

  • Machine Learning and Statistical Learning (статистическое обучение);
  • Cluster Analysis and Finite Mixture Models (кластерный анализ и модели с ограниченным числом латентных переменных);
  • Time Series Analysis (анализ временных рядов);
  • Multivariate Statistics (многомерная статистика);
  • Analysis of Spatial Data (мнализ пространственных данных).

Для реализации этих методов разработаны десятки “пакетов” (т.е. тематически обобщенных наборов функций), из которых мы рекомендуем обратить внимание на следующие, поскольку они будут фигурировать в скриптах последующих глав книги:

  • mgcv, nlme, car, Hims – обобщенные линейные и аддитивные модели, модели со смешанными эффектами и проч. функции;
  • lars, glmnet - модели с регуляризацией (гребневая, лассо);
  • pls, ppls - регрессия на главные компоненты, метод регуляризованных частных наименьших квадратов;
  • data.tree, rpart, party, mvpart - построение деревьев решений;
  • randomForest, gbm, bst, Boruta - бэггинг, случайные леса, бустинг, ранжирование предикторов;
  • MASS, klaR, kknn, binda - дискриминантный анализ, kNN-регрессия;
  • e1071, kernlab - метод опорных векторов с разными ядрами;
  • nnet, neuralnet, kohonen - нейронные сети;
  • VGAM, mlogit - мультиноминальный логит;
  • pscl, MASS - модели счетных данных;
  • vegan, labdsv, FactoMineR - многомерные методы и ординация;
  • outliers - анализ выбросов в данных;
  • pROC - анализ ROC-кривых;
  • boot, cvTools - бутстреп, перекрестная проверка;
  • ForecastCombinations, caretEnsemble - построение коллективных прогнозов;
  • cluster, pvclust, dendextend - кластерный анализ;
  • arules - выделение ассоциативных правил;
  • TraMineR - поиск закономерных последовательностей объектов или событий.

Наряду с характерным для R прогрессирующим “размножением” пакетов, наблюдается, к счастью, и своего рода обратная тенденция: а) создание комплексных пакетов с графическим интерфейсом в стиле кнопочного меню R Commander и б) интеграция функций из разных пакетов в рамках некоторой единой надстройки.

Прекрасным примером приложения с графическим интерфейсом и открытым исходным кодом, основанном на использовании ресурсов R, является Rattle (Williams, 2009). Для его инсталляции достаточно обычным образом установить пакет rattle. В состав этого пакета входят функции, которые выполняют трансформацию и визуализацию данных, кластеризацию, построение моделей опорных векторов, деревьев решений, бустинг-моделей и случайных лесов, нейронных сетей, выделение ассоциативных правил и т.д., а также развитые средства отображения и представления полученных результатов.

Эффективным средством интеграции десятков функций из различных пакетов для построении моделей классификации и регрессии является caret. Этот пакет автоматически осуществляет загрузку соответствующих функций, учитывает имеющиеся синтаксические различия между ними и выполняет комплексное тестирование качества моделей. Пакет caret особенно эффективен для оптимизации настраиваемых коэффициентов и параметров многих из этих моделей с использованием интеллектуальных подходов и алгоритмов ресэмплинга.

Я. Джао (Zhao, 2013) составил прекрасную карту ссылок “Reference Card for Data Mining”, которая обеспечивает всестороннюю индексацию пакетов и функций R в соответствии с их категориями и функциональными возможностями. Ее последняя версия доступна по адресу http://www.rdatamining.com/docs, а перевод на русский язык с незначительными изменениями представлен нами в Приложении. В этом справочнике автор приводит не только способы реализации традиционных методов Data Mining и Text Mining, но и функции для доступа к серверам с исходной информацией через различные протоколы обмена, преобразования массивов данных, организации параллельных вычислений, формирования итоговых отчетов в разных форматах и т.д. Приведены функции доступа к библиотеке алгоритмов машинного обучения Weka (Waikato Environment for Knowledge Analysis) и интерфейс с другими языками программирования.

В карте даны также ссылки, касающиеся свободно распространяемого набора утилит и библиотек (Hadoop MapReduce, Apache Spark и т.д.) для организации распределённых вычислений в задачах обработки данных очень большого объема на компьютерах, объединенных в вычислительные “кластеры”. Все перечисленные выше пакеты подробно документированы и снабжены иллюстративным материалом. Кроме этого, в среде Интернет имеется большое количество различных методических пособий и консультационных пунктов по проблемам использования алгоритмов Data Mining в R. Например, Wikibook Data Mining Algorithms In R стремится интегрировать три блока информации для каждого метода: математическое описание и обоснование, детали выполнения, и примеры использования. Справочник по школе данных School of Data Handbook - хороший пример демонстрации веб-интерфейса связи с серверами, на которых формируются массивы информации, интересный тем, кто хочет узнать больше о процедурах обработки данных.

Список только признанных фундаментальных монографий типа “Используем R!” (Use R!) насчитывает уже несколько сотен томов. В многочисленных фундаментальных руководствах детально описаны функции и пакеты R, использующие широкий набор статистических методов, таких как классические линейные и нелинейные регрессионные модели, различные формы дисперсионного анализа, алгоритмы иерархической кластеризации, анализ временных рядов, деревья классификации и регрессии (Faraway, 2006; Fox, 2008; Zuur et al., 2009; Myers, Patil, 2012; Mount, Zumel, 2014, 2016; Kuhn, Johnson, 2013; Stanton, 2013; Кабаков, 2014; Сhiu, 2015, Kassambara, 2017). Отдельно можно отметить библиографические источники, в названии которых имеется термин “Data Mining”: Torgo (2011), Zhao (2012), Zhao, Cen (2014). Большинство из этих книг с разной степенью легальности доступно для скачивания в Интернете (список 9 свободно распространяемых пособий приводится, в частности, на www.kdnuggets.com).