Как стать автором
Обновить

Комментарии 13

Вероятно, перекрестная валидация не очень подходит, так как поведение рынка сильно отличается на ранних этапах тренировочных данных и на оценочном периоде.

Почитайте что ли про time series cross-validation.

а также заменив метрику на ROC AUC

Если вы говорите не про таргет для оптимизации, а просто про метрику, по которой вы отбирали модель, то, что ROC AUC у вас лучше коррелировал с ЛБ, скорее всего означает, что у вас была неудачная валидация.

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

Или, опять таки, вы плохо сделали валидацию.
Ну, хотя настраивать сеть hyperopt-ом — это и правда в целом не лучшее решение, наверное.

Конкурс оказался сложным, но мы смогли не ударить в грязь лицом.

максимальный score публичного решения так же ~0.69, чуть больше моего.

Пардон, но если у вас скор ниже лучшего паблик кернела, я бы не называл это «удалось не ударить в грязь лицом».
Почитайте что ли про time series cross-validation.

Спасибо, почитаю!

Или, опять таки, вы плохо сделали валидацию.

Это вот очень вероятно. Пока более-менее разобрался с тем, как надо делать, конкурс уже подходил к концу :)

я бы не называл это «удалось не ударить в грязь лицом».

По поводу этого пункта — да, спорное утверждение, согласен. В качестве небольшого оправдания: очень-очень не хотелось целиком тащить это конкретное решение. В нем также использовался только lightgbm, но были получше подобраны фичи и гиперпараметры, однако именно с такими фичами и гиперпараметрами мои модельки не заработали нормально.
Про time series cross-validation плюсуюсь.
И как раз о ней же: в лучшем публичном решении была использована обычная валидация на основе train_test_split, которая не подходит для данной задачи. Там явный оверфиттинг, но насколько я понял людей это не останавливало и многие брали за основу это решение, не думая поменять валидацию на time series. Поэтому про «удалось не ударить в грязь лицом» не согласен.

А вообще, добавлю от себя для сравнения чисел из статьи: свое решение на lightgbm я смог написать на 0.78. Что еще интереснее, публичный скор 0.7 мне удалось получить вообще не используя машинное обучение, а просто написав фиксированную формулу для расчета торговых весов. И эта стратегия хорошо вела себя за весь backtest период в 10 лет (в среднем получалось 0.65 +- 0.1 std)

Там явный оверфиттинг

Ну, там тоже плохая валидация, само собой, но ничем не хуже, чем у автора статьи. А по результатам текущего ЛБ куда лучше даже.
По результатам текущего ЛБ у того решения сейчас 1.43030, насколько я понимаю. Хотя, это ничего особо не значит, судя по всему.
Конкретно у того, может, 1.43. Я не знаю, какой конкретно кернел был тогда топовым, к сожалению.
Но вот, например, паблик кернел на топ-21.
Раз уж зашел разговор про Кагл
Уже неделю пытаюсь ворваться в соревнование по землетрясениям, используя генетическое программирование, каменный цветок не выходит. Если у кого-то из господ комментаторов есть пример использования библиотеки DEAP для проблемы регрессии, буду чрезмерно благодарен.
Интересно, почему все так стремятся прогнозировать именно цену, а не, к примеру, диапазон волатильности такой цены в не очень отдаленном будущем (в рамках месяца). Вероятность построить модель, дающую точный прогноз именно по ожиданию цены на основе только ценового ряда прошлого — довольно низкая, и всегда будет убывать с ростом временнОго интервала. В то же время, оценивая свойства волатильности в определенные интервалы времени, в том числе выявляя длительность таких интервалов с волатильностью выше определенного уровня — уже это даст более интересный и практичный результат. Сезонность волатильности будет еще ближе к полезным данным, которые можно использовать для улучшения торговых систем или вообще брать за основу принятия решений.

К примеру, нет особого смысла входить в рынок, когда волатильность по активу достаточно низкая. Также если есть возможность оценить объемы торгов в определенный момент (доступ к листингу сделок/«стакан»), нет особого смысла влезать в тонкий рынок и брать повышенный риск выноса цены за ожидаемые рамки оценки рисков. В итоге, анализируя не просто цену, а то, как она изменяется во времени, в определенные периоды (часы/дни), сопоставляя с параметрами торговой системы и планируемых объемов сделок — можно ограничиться наилучшими периодами времени для торгов под нужную торговую стратегию.

Если инструмент как-то связан с сезонностью потребления (к примеру, фьючерс на зерно, кофе, пшеницу, бензин), то можно найти интересные периодичности в волатильности такого инструмента. Также практически по любому инструменту, у которого есть рынок фьючерсных и опционных контрактов — стоит обратить внимание на поведение цен таких деривативов и почему цены довольно интересно себя ведут близ уровней, кратных 50% (100%, 150% и далее) от среднедневной волатильности, и какая за таким поведением может быть реальная логика.

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

С точки зрения организаторов подобных конкурсов, я вижу стремление задешево ($100k) найти интересное и нестандартное решение/подход к прогнозированию, и уже сам этот подход потом эксклюзивно использовать в качестве торговой модели/робота или перепродать какому-либо инвестфонду/банку (уже на порядки дороже $100k).
НЛО прилетело и опубликовало эту надпись здесь
Реклама да, одна из очевидных причин. Ну и headhunting под задачи компании-организатора. На схожих с kaggle площадках рунета аналогичная ситуация.

С учетом предыдущего ознакомления с данными по тем же конкурсам с нефтяными вышками — базовый набор данных безнадежно бессмысленен для практического применения, т.к. по такому сильно ограниченному срезу данных невозможно даже оценить рамки уровней добычи/отдачи с определенных вышек. На прогнозирование отдачи влияет вагон различных факторов, начиная от геологии и динамики ее изменения, температуры, где вышка находится, что за команда работает на кустах (опыт), проводятся ли близ вышки специфические работы (гидроразрыв, закачка пустот водой для подъема пластов). Консервация соседних вышек может приводить как к росту отдачи, так и к снижению из-за изменения давления подземных слоев. И все эти факторы существенно влияют на итоговый прогноз, без них достоверность и качество прогнозирования будет крайне низкой и бессмысленной.

Ну и еще момент. Конкурс может так ничем и не закончиться, уровни сложности могут повысить, изменить условия и прочее.

Не хочу ни в коем случае бросить тень на сервисы таких конкурсов, но, при конкурсах с ограничением kernel-only у организатора довольно широкие возможности для анализа кода и результатов участников. Теоретически, может быть получен интересный и нестандартный подход с высокой стоимостью для организатора конкурса и далее повышен уровень призеров так, чтобы никто его не прошел.

С вашим выводом в конце про пользу полностью согласен и поддерживаю.
Я согласен с вами частично. Из того, что я наблюдал по остальным соревнованиям — выигравают те, кто делают стэкинг и тому подобные вещи.

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

Но насчет реальных задач — я тоже сомневаюсь что Two Sigma будет использовать какое-либо из решений, скорее всего пиар/ищут сотрудников себе.
Есть конкурсы и с реальными задачами. Например, в Human Protein Atlas был отдельный призовой трек для «быстрого» решения в продакшен.
Предлагаю посмотреть на использование новостей под иным углом: не столь важно содержание новости, сколько «стоимость» источника публикации такой новости и ранее построенная несложная модель линейного предсказания влияния новости на рост волатильности связанного с новостью инструмента.

К примеру, возьмем за источник новости — твиттер Трампа и содержимое новости как "… нефть ...". Из текста новости можно легко выделить инструмент через прямое упоминание слова или его наиболее стОящих в плане цитирования синонимов. Далее, зная время публикации такого твита, смотрим на поведение целевого инструмента за 5 минут до публикации и 5 минут после публикации. Оцениваем рост волатильности инструмента как реакцию на новость и, если на интервале 2 лет (существование источника новостей с повышенной «ценностью») имеется закономерность в росте волатильности на подобные новости — уже на этом можно строить модель принятия решения по технике торговли волатильностью (схема покупки/продажи базового актива и обратного «хеджа» через дериватив на такой базовый актив).

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

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