От классификации к ранжированию: CatBoost, YetiRank и поиск оптимальной сложности модели
10 ноября 2026
Ежедневный результат
Финансовый результат портфеля за день: −0,14%.
Бенчмарк SBMX: −0,73%.
Относительный результат: +0,59 п.п.
Время фиксации: 19:53 МСК.
Текущая аллокация
IMOEXF — 5,29%.
GMKN — 5,29%.
SBER — 5,29%.
SOL — 5,29%.
XRP — 5,29%.
OZON — 5,29%.
GAZP — 5,29%.
Из портфеля выбыли LKOH и DOMRF. Их заменили SOL и XRP.
Общий размер позиций сокращён риск-оверлеем.
Новый эксперимент: переход к ранжированию
Следующий этап разработки — переход от классификации к модели ранжирования относительной силы инструментов (Relative Strength, RS).
Модель должна оценивать относительную привлекательность инструментов внутри общего пула.
Для этого выбран CatBoostRegressor.
Почему CatBoost
В качестве базовой архитектуры используется CatBoost с симметричными деревьями.
Основная причина — контроль сложности модели.
При слабом сигнале избыточная гибкость повышает вероятность подгонки под шум. Поэтому на первом этапе предпочтительнее ограничить сложность и проверить, насколько устойчивое ранжирование можно получить без чрезмерного увеличения ёмкости модели.
Основная конфигурация:
- CatBoostRegressor;
- глубина дерева — 3;
- до 1500 итераций;
- expanding window;
- Purge — 20 дней;
- процентильное ранжирование относительных признаков.
Постановка таргета
Основной таргет — ранг по Relative Strength.
Регрессионная постановка сохраняет непрерывность информации на полном пуле инструментов.
Дополнительно проверяется YetiRank — специализированный алгоритм обучения ранжированию. Это позволяет оценить, даёт ли непосредственная оптимизация релевантности преимущество перед регрессионным приближением.
Также используется ансамбль из пяти моделей с разными seed. Цель — проверить зависимость результатов от конкретного случайного запуска.
Первые результаты — IS
Все приведённые ниже метрики получены на IS-выборке в рамках walk-forward экспериментов. Они не являются OOS-результатами.
CatBoostRegressor:
- IC: +0,0720;
- NDCG@10: 0,483;
- TOP10 mean RS: +0,0154.
CatBoostRegressor, ансамбль из пяти seed:
- IC: +0,0739;
- NDCG@10: 0,484;
- TOP10 mean RS: +0,0150.
YetiRank:
- IC: +0,0719;
- NDCG@10: 0,500;
- TOP10 mean RS: +0,0155.
Ансамбль из пяти seed немного улучшил агрегированный IC, но практически не изменил NDCG.
YetiRank показал лучший NDCG@10, однако преимущество оказалось недостаточным, чтобы признать его лучшей моделью по совокупности результатов.
При этом NDCG@10 остаётся слабым у всех трёх конфигураций.
Grid Search — IS
Следующим этапом стала настройка гиперпараметров.
Лучшая конфигурация:
- depth = 4;
- l2_leaf_reg = 100;
- random_strength = 3;
- learning_rate = 0,03.
Полученный IC на IS: +0,0763.
На этой конфигурации дополнительно проверен YetiRank без ансамбля seed.
Результаты IS:
- Mean IC: +0,0698;
- NDCG@10: 0,500;
- TOP10 mean RS: +0,0147;
- Hit Rate: 69,1%.
Увеличение сложности не принесло ожидаемого улучшения. По IC результат оказался хуже базовой конфигурации.
Зафиксирована деградация качества, интерпретируемая как переобучение.
Поиск оптимального числа итераций — IS
После grid search вернулись к регрессионной постановке.
Первоначальный план предполагал проверку 1500 итераций с шагом 100 на шести фолдах. Вычислительная стоимость оказалась слишком высокой, поэтому диапазон сократили до 1000.
Результаты IS:
- Mean IC: +0,0759;
- NDCG@10: 0,486;
- TOP10 mean RS: +0,0164;
- Hit Rate: 73,3%;
- Median best_iter: 300.
Наиболее интересный результат — динамика качества по числу итераций.
Модель достигает лучшей области достаточно рано. После приблизительно 500 итераций начинается деградация.
Медианное оптимальное количество итераций по фолдам — 300.
Таким образом, увеличение продолжительности обучения не улучшает модель. Напротив, оно постепенно ухудшает качество ранжирования.
Промежуточные выводы — IS
- Регрессионная постановка пока выглядит предпочтительнее YetiRank.
- Ансамбль seed немного повышает IC, но практически не меняет NDCG.
- Увеличение глубины деревьев не обеспечило улучшения.
- Лучшая область обучения — 200–300 итераций.
- После 500 итераций наблюдается деградация.
- NDCG@10 остаётся слабым местом модели.
Особенно важно последнее обстоятельство.
Модель способна демонстрировать достаточно высокий агрегированный IC, но качество отбора верхней части ранжирования пока требует отдельного внимания.
Корреляция по всему пулу и способность находить лучших кандидатов — не одно и то же.
Следующий этап
Основная конфигурация возвращается к CatBoostRegressor.
Рабочая область параметров:
- глубина — 3;
- оптимальное количество итераций — около 300;
- expanding window;
- Purge — 20 дней.
Дальнейшая работа должна быть сосредоточена на качестве верхней части ранжирования, устойчивости результатов между фолдами и проверке того, насколько полученное преимущество сохраняется на данных, не участвовавших в разработке.
Все представленные результаты являются IS. OOS-валидация и проверка на живой дистанции ещё не проводились.
Эксперимент продолжается.