Изменения

Перейти к: навигация, поиск

Примеры кода на R

4672 байта убрано, 09:19, 20 апреля 2020
Рефакторинг информации об основных билиотеках
== Особенности написания кода на R ==
R изначально создавался как интерпретируемый мультипарадигменный язык программирования для работы с графикой и статистической обработки данных и работы с графикой. R поддерживает широкий спектр Поэтому он отличается большим количеством реализованных статистических алгоритмов, на основе которых можно создавать модели и численных методов, а также алгоритмы машинного обучения.  Язык постоянно расширяется за счёт новых библиотек (пакетов).Для их использования необходимо в начале файла прописать строки
Для использования любого из пакетов необходимо в начале файла прописать
install.packages("packageName")
require("packageName)
 
Среда статистических вычислений R отличается особенно высоким количеством реализованных в ней алгоритмов машинного обучения, на основе которых можно создавать подобные модели. Однако вместе с явным преимуществом наличия такого большого количества алгоритмов возникают и некоторые проблемы. В частности, для аналитика становится все сложнее помнить особенности применения и синтаксиса соответствующих R-функций. Кроме того, функции, позволяющие реализовать полный цикл разработки предсказательных моделей, часто "разбросаны" по разным пакетам, что требует времени для поиска необходимых функций и их освоения.
 
== Описание основных пакетов ==
 
===Пакеты для обработки данных===
 ==== pipelearner Pipelearner ====Пакет предоставляет базовые возможности для разбиения набора данных на блоки для обучения моделей. В основе пакета лежит концепция конвейеров и аккуратных данныхработы конвейера. Пакет хорошо документирован, все непонятные моменты можно прояснить, просто изучив структуру объекта с моделями на каждом этапеработы алгоритма
==== MICE ====
Пакет MICE используется для заполнения пропущенных значений в данных. При этом нет необходимости думать о типах значений: для каждого из них в пакете предусмотрено заполнение по умолчанию.
 
===Пакеты с реализованными алгоритмами машинного обучения===
 
==== Caret ====
В данном пакете представлены модели для регрессии и классификации, реализовано достаточно много а также большая часть популярных метрик.  Пакет caret обладает следующими отличительными особенностями:использование универсального синтаксиса команд, вне зависимости от синтаксиса исходной функции, реализующей тот или иной алгоритм;автоматизированное нахождение оптимальных значений гиперпараметров моделей ("tuning parameters"), которые обычно невозможно вычислить аналитически;В настоящее время имеется возможность организации параллельных вычислений, значительно ускоряющих процесс обучения моделей. В состав caret входят функции, способствующие реализации полного цикла разработки предсказательных моделей. основные из них:featurePlot, findCorrelation, preProcessиспользовать более 180 различных алгоритмов.Основная функция в составе Caret - функция train(): главная "рабочая лошадка" пакета caret, одновременно выполняющая обучение моделей, нахождение оптимальных гиперпараметров и оценку предсказательной силы моделей. Последние две задачи реализуются с использованием разнообразных методов создания повторных выборок (бутстреп, многократный бутстреп, несколько видов перекрестной проверки). Параметры процесса обучения в ней задаются аргументом trControl, на который подается список с параметрами, предварительно созданный при помощи функции trainControl(). Оценка а оценка качества модели выполняется на основе критерия, задаваемого - аргументом metric (в частности, общая верность классификации - "Accuracy", каппа-статистика - "Kappa", квадратный корень из среднеквадратичной ошибки - "RMSE" и коэффициент детерминации - "Rsquared"). АлгоритмОтличительными особенностями Caret является универсальность используемых команд, при помощи которого происходит обучение моделиналичие автоматического подбора гиперпараметров для алгоритмов, указывается с помощью аргумента methodв также наличие параллельных вычислений. В настоящее время имеется возможность использовать более 180 различных алгоритмов.   
==== Mlr ====
Пакет более новый, материалов и примеров по нему меньше. Документирован хорошо, разобраться в любом вопросе можно без проблем.Количество моделей меньше, чем В пакете Mlr представлены модели для caretрегрессии, но список более разнообразен. В частностиклассификации, можно использовать модели для кластеризации и анализа выживаемости, чего нет в caret. Более а также широкие возможности для оценки качества, (в том числе функции для анализа ROC-кривых.Широчайшие возможности по кастомизации: можно легко добавлять новые модели, метрики, способы импутации и методы отбора признаков.Все этапы можно объединять в цепочки (суть в том, чтобы операции предобработки выполнялись на каждой итерации перекрестной проверки, а не один раз для всего набора данных – это более корректный подход). Более того, можно использовать функцию preProcess() из caret. Отдельно хочу отметить наличие Nested Resampling.Есть возможность обучать метамодели при помощи makeStackedLearner (как просто на предсказаниях по всем данным, так и реализуя полноценный стекинг).Есть поддержка параллельных вычислений, см. Parallelizationи конвейерных операций.
==== H2O ====
Есть В пакете представлены линейные модели, "случайный лес", такие как градиентный бустинг, нейросети прямого распространения (включая автокодировщики), PCA, GLRM, KNN, Radom forest, наивный байесовский Байесовский классификатор и Word2vec. Также существует отдельная "обертка" для использования deep learning-библиотек, в т.ч. mxnet. Недостатком пакета можно считать невозможность задать параметры для используемых алгоритмов.  Сильная сторона этой библиотеки – работа с большими объемами данных, есть и поддержка многопоточных вычислений.Однако в ней нет возможности задавать параметры используемых алгоритмов
== Примеры алгоритмов ==
=== Регрессия ===
=== Кластеризация ===
67
правок

Навигация