Изменения

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

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

5574 байта добавлено, 18:35, 29 ноября 2020
м
Однообразие
===Пакеты для обработки данных===
==== Pipelearner ====
Пакет <code>Pipelearner</code><ref>[https://github.com/drsimonj/pipelearner Pipelearner github repository]</ref> предоставляет базовые возможности для разбиения набора данных на блоки для обучения моделей. В основе пакета лежит концепция работы конвейера. Принцип работы очень прост и описывается 3 шагами: # '''Инициализация'''#: Функция <code>pipelearner()</code> инициализирует новый объект, который используется в следующих функциях обработки. На этом этапе необходимо указать датасет, с которым мы работаем. Также можно сразу указать обучающие модели, которые мы планируем использовать, и модель данных, которую собираемся предсказывать.# '''Настройка'''#: Для настройки есть 3 основных функции:#* <code>learn_cvpairs()</code> отвечает за [[Кросс-валидация|кросс-валидацию]]. Функция генерирует набор пар из тестовой и обучающей выборки на основе входного датасета. #: В качестве ядра можно использовать <code>crossv_mc</code> ([[Кросс-валидация#Случайные разбиения (Random subsampling)|случайные разбиения]]), <code>crossv_kfold</code> ([[Кросс-валидация#k-fold кросс-валидация|k-fold кросс-валидация]]) или <code>crossv_loo</code> ([[Кросс-валидация#Кросс-валидация по отдельным объектам (Leave-One-Out)|leave-one-out разбиения]]) из пакета <code>modelr</code><ref>[https://github.com/tidyverse/modelr Modelr github repository]</ref>. Если данных способов недостаточно можно написать и свою функцию разбиения.#* <code>learn_curves()</code> служит для настройки [[Переобучение#Кривые обучения|кривых обучения]]. Для настройки используются увеличивающиеся пропорции от начала датасета. #: Например, вызов <code>learn_curves(.5, .75, 1)</code> создаст <tex>3</tex> сценария работы: в первом будет взята первая половина выбоки, во втором {{---}} первые <tex>\frac{3}{4}</tex> объектов, и в третьем {{---}} вся выборка. Авторы пакета утрверждают, что брать случайные объекты выборки не имеет смысла, потому что выборка уже случайно разбита с помощью <code>learn_cvpairs()</code>.#* <code>learn_models()</code> предназначен для добавления новых обучающих моделей. # '''Обучение'''#: С помощью функции <code>learn()</code> все сконструированные ранее модели обучаются и выдается таблица результатов работы В итоге работа с пакетом выглядит примерно так: <font color="gray"># Load the dependencies</font> library(pipelearner) library(dplyr) iris %>% <font color="gray"># Use iris dataset</font> pipelearner() %>% <font color="gray"># Initialize a blank pipelearner object</font> learn_cvpairs(crossv_mc, <font color="#660099">n</font> = <font color="blue">50</font>) %>% <font color="gray"># Creating 50 random cross-validation pairs </font> learn_curves(seq(<font color="blue">.5</font>, <font color="blue">1</font>, <font color="#660099">by</font> = <font color="blue">.1</font>)) %>% <font color="gray"># Copy each cv-pair to be fitted in sample size proportions of .5 to 1 in increments of .1.</font> learn_models(lm, Sepal.Width ~ .*.) %>% <font color="gray"># Use regression modell</font> learn_models(rpart::rpart, Sepal.Width ~ .) %>% <font color="gray"># Use decision tree modell</font> learn() <font color="gray"># Fit all models on all partitions and return the results</font> Пакет хорошо документирован, все непонятные моменты можно прояснить, просто изучив структуру объекта на каждом этапе работы алгоритма.
==== MICE ====
Пакет <code>MICE</code><ref>[https://cran.r-project.org/web/packages/mice/mice.pdf MICE package documentation]</ref> используется для заполнения пропущенных значений в данных. При этом нет необходимости думать о типах значений: для каждого из них в пакете предусмотрено заполнение по умолчанию.  Принцип работы основан на методе множественного восстановления<ref>[https://en.wikipedia.org/wiki/Imputation_(statistics)#Multiple_imputation Multiple Imputation]</ref>. Пропущенные данные заполняются несколько раз вместо одного. После этого каждый из полученных наборов обучается на определенной модели. Затем, результаты агрегируются и выдаются итоговые параметры модели.  Стандартный процесс работы выглядит так: <font color="gray"># Load the dependencies</font> library(mice) <font color="gray"># Impute the missing data m times</font> imp <- mice(nhanes, <font color="#660099">m</font> = <font color="blue">5</font>) <font color="gray"># Analize completed datasets using linear model</font> fit <- with(imp, lm(chl ~ bmi + age)) <font color="gray"># Combine parameter estimates</font> est <- pool(fit) <font color="gray"># Print summary of estimation</font> summary(est) 
==== Ggplot2 ====
Данный пакет<ref>[https://cran.r-project.org/web/packages/ggplot2/index.html Ggplot2 main info page]</ref> используется для отрисовки данных и графиков.  
=== Пакеты с реализованными алгоритмами машинного обучения ===
==== Caret ====
print(summary(model))
=== PCA Метод главных компонент ===
{{Main|Метод главных компонент (PCA)|ll=PCA}}
predictions <- predict(model, <font color="#660099">newdata</font> = testing)
=== SVM Метод опорных векторов ===
{{Main|Метод опорных векторов (SVM)|ll=SVM}}
print(fit)
=== GBM Бустинг ===
{{Main|Бустинг, AdaBoost|ll=Бустинг}}
=== Кластеризация ===
{{Main|Кластеризация}}
Для реализации алгоритма кластеризации ''k-средних'' используется пакет <code>ClusterR</code>. В нем реализовано 2 функции: <code>KMeans_arma()</code> и <code>KMeans_rcpp()</code>. В примере далее рассмотрена реализация с использованием функции <code>KMeans_arma()</code>.
*[[:Примеры кода на Scala|Примеры кода на Scala]]
*[[:Примеры кода на Java|Примеры кода на Java]]
*[[:Примеры кода на Kotlin|Примеры кода на Kotlin]]
*[[:Обзор библиотек для машинного обучения на Python|Обзор библиотек для машинного обучения на Python]]
286
правок

Навигация