Свёрточные сети в финансовом анализе: от компьютерного зрения к прогнозированию рынков
Привет, Хабр!Меня зовут Андрей Бирюков. Я — независимый эксперт в области ИТ и ИБ, преподаю в учебных центрах и пишу статьи и книги. Мы привыкли связывать сверточные нейросети (CNN) с задачами, относящимися к компьютерному зрению, например, к поиску лиц, классификации картинок или беспилотным авто. Но сегодня те же архитектуры, которые когда‑то отличали кота от собаки на изображении, успешно предсказывают движение цен, находят устойчивые паттерны временных рядов и анализируют рыночные новости.
Больше кандидатов — без прироста Hit@20: разбор эксперимента
В моей рекомендательной системе LightGBM выбирает до 20 товаров из набора до 300 кандидатов. Разбор промахов показал: товары из последующих зарегистрированных покупок чаще терялись до ранжирования. Я расширила отбор до 370 кандидатов и проверила, даст ли это больше попаданий.Система построена на Coveo SIGIR eCOM 2021, Public Data Release 1.0.0 — обезличенных данных интернет-магазина о просмотрах, поисковых запросах и покупках. Её устройство разобрано в предыдущей статье, код — в RecSys-Coveo.Где терялись целевые товары
Модель с AUC ниже заработала больше — пока отсечка стояла по скору
Две модели кредитного скоринга на открытых данных Home Credit. У модели A AUC выше, у модели B — ниже. При обычной отсечке «одобряем лучшие x %» B зарабатывает на 113 млн больше, и это не шум: B впереди в 200 из 200 бутстрэп-выборок. Как только решение принимается по каждому кредиту — откалиброванная PD × сумма × срок, — разрыв исчезает, а обе модели зарабатывают больше, чем при любой отсечке по скору. Ниже — почему так, сколько это стоит и что из этого следует для того, кто подписывает кредитную политику.
Почему дефолтный Feature Importance в бустинге врёт
Недавно для я озадачился проектом — создать автономного ML‑агента для табличных данных. На этапе отбора признаков логика Feature Selection казалась очевидной. Агент строит быстрый бейзлайн на LightGBM, смотрит на feature_importances_, отсекает часть и вперёд.Агент после работы отчитался: размерность снижена. Но на тесте RMSE деградировала.Когда я полез в логи, картина оказалась неприятной:Случайный client_id (тысяча уникальных числовых ID) стоял в топ-4 по важности.Реальный признак со слабой дисперсией, но сильным нелинейным влиянием, модель выбросила как аутсайдера.
Как устроена сессионная рекомендательная система: граф, метаданные и LightGBM
Посетитель открыл товар A. По истории переходов с ним связан B, по описанию похож C, по изображению — D. Сам A тоже стоит оставить: посетитель его посмотрел, но покупка ещё не зарегистрирована. Как из этих предложений собрать список, в котором не больше 20 рекомендаций?На этом примере разберу систему, которую я собрала на Coveo SIGIR eCOM 2021, Public Data Release 1.0.0
Что рекомендовать анонимному посетителю: почему сессии и граф товаров
Посетитель открыл карточку товара. О его прошлых визитах мы ничего не знаем, в текущем визите покупок ещё не записано. Что предложить рядом с карточкой: популярные товары, похожие на этот или те, к которым после него переходили другие посетители?Я собрала такую систему на данных Coveo: сначала она находит до 300 товаров-кандидатов: по истории действий других посетителей, описаниям, изображениям, поиску и популярности. Затем LightGBM расставляет их по порядку и выбирает до 20 рекомендаций. Модель обучена, качество измерено, рекомендации можно получить через локальный HTTP API.Репозиторий проекта:
Утечка на 3.5 часа вперёд: как модель обманывала саму себя полтора месяца — и как мы это поймали
Полтора месяца ML‑ансамбль в моей торговой системе показывал на бэктесте AUC 0.78 — солидное число для предсказания движения цены по 15-минутным свечам. В бою та же система в лучшем случае выходила в ноль. Разрыв между «отлично работает на истории» и «ничего не работает в реальности» — самый частый и обманчивый симптом в прикладном ML на временных рядах. Обычно за ним стоит одно из трёх: недообучение на новых условиях, изменившийся рынок или утечка данных.
Слишком хороший признак: как звёзды, галактики и квазары научили меня не верить графикам
Слишком хороший признак: как звёзды, галактики и квазары научили меня не верить графикамНа Kaggle завершился шестой эпизод Playground Series, и тема на этот раз была астрономическая: по горстке чисел определить, что перед нами: звезда, галактика или квазар. По этому выпуску я решил собрать почти исчерпывающий разбор EDA.
Разбираемся в ML без воды: от базы до Attention. Часть 11: Градиентный бустинг
В десятой части при изучении случайного леса мы наткнулись на проблему: переход от одиночного дерева к лесу частично снизил дисперсию, но вопрос со смещением остался открытым. Сегодня мы перейдем к концепции градиентного бустинга, которая позволяет последовательно сводить смещение к нулю, и заодно разберем, как заставить деревья эффективно учиться на ошибках своих "предшественников".Градиентный бустинг
Поиск черной кошки в 2000-мерной темной комнате. Турнир алгоритмов машинного обучения
ЭпиграфЭксперимент завершен. Результаты выглядят так, будто я немного сломал законы физики привычного табличного ML.Может быть это соревнование, которого не должно было быть?Это приглашение к репликации.Спрятать иголку в стоге сена? Да!Добро пожаловать на мой маленький тестовый полигон.

