67
правок
Изменения
Нет описания правки
== Особенности написания кода на R ==
R изначально создавался как интерпретируемый мультипарадигменный язык программирования для статистической обработки данных и работы с графикой. R поддерживает широкий спектр статистических и численных методов, а также расширяется за счёт новых библиотек (пакетов).
Для использования любого из пакетов необходимо в начале файла прописать
install.packages("packageName")
require("packageName)
Среда статистических вычислений R отличается особенно высоким количеством реализованных в ней алгоритмов машинного обучения, на основе которых можно создавать подобные модели. Однако вместе с явным преимуществом наличия такого большого количества алгоритмов возникают и некоторые проблемы. В частности, для аналитика становится все сложнее помнить особенности применения и синтаксиса соответствующих R-функций. Кроме того, функции, позволяющие реализовать полный цикл разработки предсказательных моделей, часто "разбросаны" по разным пакетам, что требует времени для поиска необходимых функций и их освоения.
== Описание основных пакетов ==
===Пакеты для обработки данных===
==== pipelearner ====
Пакет предоставляет базовые возможности по разбивке для разбиения набора данных на блоки и для обучения моделей. В основе пакета лежит концепция конвейеров и аккуратных данных. Пакет хорошо документирован, все непонятные моменты можно прояснить, просто изучив структуру объекта с моделями на каждом этапе.
==== MICE ====
Пакет MICE используется для заполнения пропущенных значений в данных. При этом нет необходимости думать о типах значений: для каждого из них в пакете предусмотрено заполнение по умолчанию.
==== Caret ====
В данном пакете представлены модели для регрессии и классификации, реализовано достаточно много популярных метрик.
В состав caret входят функции, способствующие реализации полного цикла разработки предсказательных моделей. основные из них:
featurePlot, findCorrelation, preProcess.
train(): главная "рабочая лошадка" пакета caret, одновременно выполняющая обучение моделей, нахождение оптимальных гиперпараметров и оценку предсказательной силы моделей. Последние две задачи реализуются с использованием разнообразных методов создания повторных выборок (бутстреп, многократный бутстреп, несколько видов перекрестной проверки). Параметры процесса обучения задаются аргументом trControl, на который подается список с параметрами, предварительно созданный при помощи функции trainControl(). Оценка качества модели выполняется на основе критерия, задаваемого аргументом metric (в частности, общая верность классификации - "Accuracy", каппа-статистика - "Kappa", квадратный корень из среднеквадратичной ошибки - "RMSE" и коэффициент детерминации - "Rsquared"). Алгоритм, при помощи которого происходит обучение модели, указывается с помощью аргумента method. В настоящее время имеется возможность использовать более 180 различных алгоритмов.
Пакет более новый, материалов и примеров по нему меньше. Документирован хорошо, разобраться в любом вопросе можно без проблем.
Количество моделей меньше, чем для caret, но список более разнообразен. В частности, можно использовать модели для кластеризации и анализа выживаемости, чего нет в caret. Более широкие возможности для оценки качества, в том числе функции для анализа ROC-кривых.
Есть поддержка параллельных вычислений, см. Parallelization.
Сильная сторона этой библиотеки – работа с большими объемами данных, есть поддержка многопоточных вычислений.
== Примеры алгоритмов ==
=== Регрессия ===
=== Кластеризация ===