Настройка моделей машинного обучения для приложений прогнозирования запасов

Введение

В мире машинного обучения модели обучаются путем минимизации некоторых вариаций функции потерь. Например, когда мы пытаемся предсказать среднюю стоимость дома для определенного почтового индекса, мы имеем дело с проблемой типа регрессии, и основными подозреваемыми в функции потерь, которые будут использоваться для обучения нашей модели, являются среднеквадратичная ошибка (MSE). , Функции средней абсолютной ошибки (MAE) или средней абсолютной ошибки в процентах (MAPE).

Продолжая наш пример, предположим, что мы обучаем нашу модель с помощью MAE и выбираем поиск по сетке по N общим комбинациям параметров. Чтобы выбрать лучшую модель, обычно смотрят, какая группа параметров привела к наименьшей MAE.

Одна и та же метрика ошибок используется как для обучения, так и для оценки нашей модели.

Это обеспечивает согласованность между обучением, оценкой и тем, как мы на самом деле используем модель на практике. Утверждение, что средняя абсолютная ошибка составляет 50 тысяч долларов, имеет смысл и имеет четкую интерпретацию, мы ожидаем, что реальное значение будет составлять +/- 50 тысяч долларов от прогнозируемого значения.

Модели прогнозирования запасов разные

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

  • Лучшая модель достигает MAE 12,5.
  • Лучшая модель достигает совокупной доходности 23%.

Понятно, что второе предложение несет в себе смысл того, чего мы на самом деле пытаемся достичь. Это более информативно. Собственно, что означает для модели значение MAE = 12,5? Мы не уверены, как эта информация влияет на прибыль. Что еще более важно, нет гарантии, что модель с наименьшей ошибкой будет той, которая принесет наибольшую прибыль.

Почему?

Когда мы обучаем модели с использованием функции потерь и, соответственно, выбираем лучшую модель с использованием той же метрики, мы соглашаемся с точки зрения процесса, однако это не обязательно совпадает с нашей фактической целью, которая (обычно) заключается в максимизации прибыли!

Сведение к минимуму убытков не обязательно подразумевает максимизацию прибыли.

Это так по очень важной причине. В основном используемые функции потерь, такие как MAE, MSE, MAPE, являются симметричными функциями ошибок, что означает, что они «слепые» независимо от того, приближаетесь ли вы к истинному значению «сверху» или "ниже". Например, при использовании MAE прогноз цены 102 также хорош, как 98, если истинная цена равна 100, поскольку оба прогноза дают MAE = 2. Однако при торговле только один из двух дает прибыль, а другой - убыток!

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

  • Y = [101, 100, 98, 101],

и два возможных предсказания его последних трех выборок,

  • X = [95, 92, 105] и
  • W = [102, 103, 97],

оба сгенерированы в первый день, когда цена была 101. X имеет среднюю абсолютную ошибку (MAE), равную 5, по сравнению с последними тремя выборками Y (т. е. ( | 100–95 | + | 98–92 | + | 101–105 |) / 3), а ошибка W составляет 3,67. Однако X всегда соответствует направлению движения цены Y, т. Е. Его прогнозы всегда выше (соответственно ниже), чем предыдущая цена Y, когда цена действительно вырастет (соответственно упадет) в следующем примере, тогда как W всегда неверно. На рисунке 1 ниже показано вышеизложенное.

Следовательно, используя MAE как для обучения, так и для оценки, мы выбрали бы модель W (которая имеет меньшую ошибку, но нулевую прибыль), несмотря на то, что прогнозы X более прибыльны. хотя и с большей ошибкой.

Модель с наименьшей ошибкой не будет приносить наибольшую прибыль!

Торговля требует направления

Так что же здесь происходит? Почему модель с наименьшей ошибкой не приносит наибольшей прибыли? Давай копнем глубже.

Если вы помните, мы использовали слово симметричный для описания функции потерь, и это как раз точка отказа. Функции симметричных ошибок не учитывают направление, т. Е. Они одинаково обрабатывают положительные и отрицательные значения (как показано в приведенном выше примере), что крайне важно при принятии торговых решений. .

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

  • (a) К сожалению, не существует проверенной метрики, которая учитывала бы как максимизацию прибыли, так и минимизацию ошибок при обучении моделей. Так что здесь нет дилеммы. На данный момент мы застряли в использовании любой (симметричной) функции потерь для обучающей части (на самом деле это активная область исследований, пытаясь создать функцию потерь, которая включает направление, а также величину).
  • (б) Однако во время оценки мы можем фактически изменить показатель. Вместо того, чтобы выбирать модель с наименьшей ошибкой, мы должны вместо этого рассматривать модель с наибольшей прибылью (которая может быть определена различными способами, средней или совокупной доходностью, коэффициентом Шарпа или какой-либо другой формой).

Поступая таким образом, в приведенном выше примере мы выбрали бы наиболее прибыльную модель (X), что в конечном итоге именно то, что нам нужно.

Чего мы добились?

Что ж, мы приводим наши критерии отбора в соответствие с нашей целью. Если наша цель - максимизировать прибыль, используя наши прогнозы, то мы могли бы также выбрать лучшую модель, которая делает это (по крайней мере, в выборке). Довольно ясно заявить, что моя модель сгенерировала X% доходности в выборке, а затем заявив, что моя модель имела MAE 12,5 (что отлично, но что мне с этим делать?)

Рамки отбора

Предлагаемая структура проста.

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

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

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

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

Модели прогнозирования запасов следует настраивать для оптимизации рентабельности, а не точности.

Заключение

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