Яндекс.Метрика
ГлавнаяПубликации › Введение в машинное обучение. Часть 1

Введение в машинное обучение. Часть 1

goog1m

В последнее время приобретают все большую популярность алгоритмы машинного обучения. Они применяются для решения задачи классификации входных данных, или, проще говоря, выявления паттернов в структуре этих данных. Небольшой цикл статей про машинное обучение опубликован на сайте inovancetech.com, здесь я представляю их перевод.

В этой серии статей мы рассмотрим построение и тестирование простой стратегии машинного обучения. В первой части отметим основные принципы машинного обучения и их применение к финансовым рынкам.

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

Цель машинного обучения (МО) в том, чтобы правильно смоделировать исторические данные, и затем использовать эту модель в предсказании будущего. В алгоритмической торговле применяется два типа МО:

  • Регрессия: используется для предсказания направления и амплитуды исследуемой величины. Например, цена акций Гугл возрастет на 7 долларов на следующий день.
  • Классификация: используется для предсказания категории, например, направления движения цены акций Гугл на следующий день.

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

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

В заглавии поста приведен график цены акций Гугл, а ниже - скриншот экспортируемых данных.

GoogExcel

На следующем шаге надо проверить правильность выбора индикаторов и переменных для предсказания. Мы знаем, что используем день недели для предсказания движения цены на следующий день. Создадим один столбец для дней недели и второй - для цены закрытия минус цена открытия. В последней колонке отмечаем UP (вверх), если разница между ценами больше 0 и DOWN (вниз), если разница меньше 0:

GoogExcelNewColumns

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

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

Заключение 1 части.

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

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

Сообщение

Обратите внимание: вы можете использоватьHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>