Это проще, чем вы думаете

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

Данные, которые мы будем использовать, можно найти по адресу [1]. Он состоит из 12 054 игр NBA, а также даты, окончательного результата и нескольких прогнозных переменных, которые обычно используются в спортивной аналитике (статистика побед / поражений, эффективность в атаке и защите). Это всего лишь пример набора данных, и очевидно, что коды, которые я собираюсь показать, не относятся к этому конкретному набору данных. Набор данных выглядит так:

0 - загрузить библиотеки и данные

I - Случайные леса

II - LDA, QDA и др.

III - Машины опорных векторов

IV - усредненные нейронные сети (avNNet)

V - делать прогнозы

0 - загрузить библиотеки и данные

Сначала мы импортируем библиотеки, загружаем набор данных и выбираем только прогнозные переменные X и независимую переменную Y (Winner в случае нашего набора данных ) для создания наших обучающих и тестовых наборов. Следующие модели будут обучены предсказанию категориальной переменной, поскольку Y - это либо команда хозяев (H), либо команда гостей (A). - но код для прогнозирования количественных результатов строго такой же.

Примечание: весь код доступен по адресу [2]

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

I - Случайные леса

Мы будем использовать пакет randomForest для построения и обучения модели случайных лесов. Обычные ключевые параметры - это количество усредняемых деревьев (ntree) и показатель, используемый для построения (metric). Более подробную информацию можно найти в [3].

II - LDA, QDA и т. д.

Мы воспользуемся функцией train () из пакета MASS [4]. Это очень полезно, потому что аргумент «метод» позволяет нам обучать любую модель машинного обучения среди множества уже включенных моделей. Исчерпывающий список методов и дополнительную документацию можно найти в [5]. Код для построения и подгонки модели QDA представлен ниже:

III - Опорные векторные машины

Несмотря на то, что можно обучать модели SVM с помощью функции train (), мы будем использовать здесь пакет e1071. Этот пакет содержит расширенные методы для моделей SVM, так что есть несколько вариантов, таких как тип классификации, тип ядра (линейный, радиальный , полином, пользовательская функция), метрика и возможность обучить модель также предсказывать вероятности классов. Дополнительную документацию можно найти в [6].

IV - усредненные нейронные сети (avNNet)

В этой последней части мы рассмотрим пакет avNNet. Это исключительный пакет, который позволяет создавать и обучать усредненные нейронные сети: конкретно, функция подходит для определенного количества нейронных сетей с разными начальными начальными значениями, усредняет их и строит из них уникальную модель. Этот процесс позволяет уменьшить дисперсию в процессе обучения и, следовательно, получить более надежные модели. Ключевые параметры - это количество построенных NN (повторов) и количество скрытых слоев для каждой модели (размер). Дополнительную документацию можно найти в [7].

V - Делайте прогнозы

После того, как мы обучили и сохранили наши модели, может быть интересно делать прогнозы на основе новых данных. Нам просто нужно загрузить модель, чтобы делать прогнозы с помощью функции pred (). Ключевым параметром здесь является аргумент type. Дополнительную документацию можно найти в [8].

Не стесняйтесь оставлять отзывы / вопросы / хлопки или связываться со мной для получения дополнительной информации.

Еще одна статья (создание алгоритма ставок на спорт с помощью машинного обучения) «Как Covid-19 помешал мне стать миллионером в 2020 году | Себастьен Караро | Аналитика Видхья | Декабрь, 2020 | Середина"

Контакт: [email protected]

Источники

[1] Местоположение набора данных

Https://raw.githubusercontent.com/Seb943/PCA_and_ML_R/main/Data/Example_dataset.csv

[2] Весь код

PCA_and_ML_R / FittingMLmodelsInR.R на главной · Seb943 / PCA_and_ML_R (github.com)

[3] Документация по случайному лесу

Функция randomForest | Документация по R

[4] Документация пакета MASS

MASS.pdf (r-project.org)

[5] Функция train в пакете MASS

Функция поезда | Документация по R

[6] Документация по пакету e1071 (SVM)

E1071.pdf (r-project.org)

[7] Документация пакета avNNet

Функция avNNet | Документация по R

[8] документация по функциям прогнозирования

Функция прогнозирования | Документация по R