Обсуждение статьи "Продвинутый ресемплинг и выбор CatBoost моделей брутфорс методом"

 

Опубликована статья Продвинутый ресемплинг и выбор CatBoost моделей брутфорс методом:

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

В предыдущей статье я использовал простой случайный семплинг меток, который имеет ряд недостатков:

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

  • Автокорреляция признаков и меток. При случайном семплинге метки одного и того же класса идут друг за другом, при этом сами признаки (допустим, приращения) меняются незначительно. Если представить данный процесс на примере обучения регрессионной модели, то окажется, что в остатках модели будет наблюдаться автокорреляция, что приведет к возможному завышению оценки модели и её переобучению, как показано на изображении ниже:


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

Автор: Maxim Dmitrievsky

 
А EM(Expectation Maximization) вместо GMM не было идеи прикрутить?
 
Stanislav Korotky:
А EM(Expectation Maximization) вместо GMM не было идеи прикрутить?

а он и так работает по EM алгоритму, насколько понимаю

есть идеи использовать глубокие нейросети для этого, пока что на стадии изучения

 
Maxim Dmitrievsky:

а он и так работает по EM алгоритму, насколько понимаю

есть идеи использовать глубокие нейросети для этого, пока что на стадии изучения

OK. Еще в работе был подход с переворотом исходного ряда - таким образом классы сбалансируются автоматически.

 
Stanislav Korotky:

OK. Еще в работе был подход с переворотом исходного ряда - таким образом классы сбалансируются автоматически.

Как вариант, а можно использовать оверсемплинг-андерсемплинг и их комбинации. Но это не дало значительных улучшений, а GMM дало. Причем, чем больше кластеров тем лучше. Чисто эмпирически.

здесь хорошо про ресемплинг, с примерами https://imbalanced-learn.readthedocs.io/en/stable/index.html

kernel density estimation тоже хуже, чем GMM. Глубокая нейросеть должна быть лучше чем GMM, в теории. Потому что GMM плохо работает с большим пространством признаков.

Welcome to imbalanced-learn documentation! — imbalanced-learn 0.5.0 documentation
  • imbalanced-learn.readthedocs.io
The exact API of all functions and classes, as given in the doctring. The API documents expected types and allowed features for all functions, and all parameters available for the algorithms.
 

Интересная статья.

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

Какой процент моделей не проходят тест?

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

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

На сколько я понял, то для данного метода это только вопрос времени перебора.

 
Aleksey Vyazmikin:

На сколько я понял, то для данного метода это только вопрос времени перебора.

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

 
Stanislav Korotky:

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

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

 
Aleksey Vyazmikin:

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

Смотря что считать закономерностью, если это порядок следования приращений, привязанный к времени то это сезонная закономерность поведения приращений, если без привязки, то одинаковая последовательность приращений с некой свободой в точности. 

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

А логика обучения на ближнем периоде логична, но она одинакова, если мы тестим вглубь истории, то результат должен быть одинаков, если обучать в глубине истории, а тестить в ближнем периоде.

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