Примеры кода на R — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Логистическая регрессия)
(создание новых разделов)
Строка 70: Строка 70:
 
</pre>
 
</pre>
  
 +
=== Деревья решений, случайный лес ===
 +
=== Байессовская классификация ===
 
=== Кластеризация ===
 
=== Кластеризация ===
 +
=== SVM ===

Версия 15:09, 20 апреля 2020

Особенности написания кода на R

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

Язык постоянно расширяется за счёт новых библиотек (пакетов). Для их использования необходимо в начале файла прописать строки

install.packages("packageName") require("packageName)

Описание основных пакетов

Пакеты для обработки данных

Pipelearner

Пакет предоставляет базовые возможности для разбиения набора данных на блоки для обучения моделей. В основе пакета лежит концепция работы конвейера. Пакет хорошо документирован, все непонятные моменты можно прояснить, просто изучив структуру объекта на каждом этапе работы алгоритма.

MICE

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

Пакеты с реализованными алгоритмами машинного обучения

Caret

В данном пакете представлены модели для регрессии и классификации, а также большая часть популярных метрик. В настоящее время имеется возможность использовать более 180 различных алгоритмов. Основная функция в составе Caret - функция train(). Параметры обучения в ней задаются аргументом trControl, а оценка качества модели - аргументом metric. Отличительными особенностями Caret является универсальность используемых команд, наличие автоматического подбора гиперпараметров для алгоритмов, в также наличие параллельных вычислений.

Mlr

В пакете Mlr представлены модели для регрессии, классификации, кластеризации и анализа выживаемости, а также широкие возможности для оценки качества (в том числе функции для анализа ROC-кривых). Есть поддержка параллельных вычислений и конвейерных операций.

H2O

В пакете представлены линейные модели, такие как градиентный бустинг, нейросети прямого распространения, PCA, GLRM, KNN, Radom forest, наивный Байесовский классификатор. Сильная сторона этой библиотеки – работа с большими объемами данных и поддержка многопоточных вычислений.Однако в ней нет возможности задавать параметры используемых алгоритмов

Примеры алгоритмов

Задачи регрессии

Линейная регрессия

#$$Читаем данные
data <- read.delim('input.dat', header = TRUE)

#Создаем модель 
data.x <- lm(data$x ~ data$y)

#Получаем информацию о созданной модели
summary(data.x)

#Визуализируем данные
plot(data$y, data$x)
lines(data$y, predict(data.x), col = 'red')

Множественная регрессия

#$$Читаем данные
data <- read.delim('input.dat', header = TRUE)

#Создаем модель множественной регрессии
fit <- lm(target ~ x + y + z, data = data)

#Получаем информацию о созданной модели
summary(fit)

Логистическая регрессия

Логистическая регрессия – это модель регрессии, в которой переменная ответа принимает значения 0 или 1 (True или False). Реализация на языке R представлена в следующем фрагменте:

#reding data
data <- rawData[,c("target","x","y","z")]

#creating model using glm function
target.data = glm(formula = target ~ x + y + z, data = data, family = binomial)

#printing summary
print(summary(target.data))

Деревья решений, случайный лес

Байессовская классификация

Кластеризация

SVM