3348
Канал о пути к Kaggle competitions (теперь уже) GrandMaster и поте, которым обливаешься в процессе Последний авторский канал про мл, претендующий на искренность и позволяющий ставить клоунов Для контакта пишите в сообщения канала, они бесплатные
March mania началась! 🏀🏀🏀
Мой сабмишн вот такой, лудка пошла.
Со своим сабмишном можно поиграть вот здесь:
https://marksmath.org/visualization/data/NCAABrackets/KaggleBrackets/
Сайт обновляется с лагом примерно в 10 часов, но прогресс трекать позволяет зачастую лучше, чем кагл
В комментах призываю поделиться своими сетками и поспорить, кто самый большой лудоман. Ну и поныть/радоваться после первых сетов матчей
Перевыложил многострадальный лоторейный билетик
Никому его не показывайте плз. Такие сильные ноутбуки нельзя выкладывать, когда до конца соревы так мало времени. Осталось 2 дня
На днях будет мердж дедлайн в еще одной лоторее: Stanford RNA 3D Folding Part 2
Соревнование казалось каким-то неформатным для кагла и так и выходит: засабмитив топовый паблик дважды можно влететь в высочайший лб. Но этот лб уже на готовы последовательностях и плохо воспроизводится. Приватный тест будет на вновь собранных к концу соревнования данных и организаторы особо даже и не пишут ответа на вопрос «а сколько будет данных в привате?»
Для меня звучит как еще одна рандомная лотерея, в которой можно взять сологолд, а можно улететь в ад.
Я оценил распределение скоров нормальным и шанс выбить скор больше, чем у меня (а значит оказаться в момент написания поста в топ 15) сейчас примерно 10%.
Автор оригинального топ паблика кстати у нас уже в комментах.
Собственно инструкция для всех ленивых:
1. Присоединяемся у сореве
2. Копируем мой паблик
3. Сабмитим его пять раз в день
4. Смотрим на красивое место на лб
5. В ночь на 30 марта молимся богу сологолда
6. Ставим апвоут автору оригинального паблика @xbebra
7. Подписываемся на псевдолейблинг
Получил ответ от каггла
Суть истории:
1. Велкий грандмастер обсжудений перевыложил ноутбук настоящего грандмастера Раддара
2. Я перевыложил ноутбук основанный на решении из топ 3 прошлого года, который в свою очередь основан на решение Raddarа
3. Рави каждую сореву очень хочет себе медальки за код и обсуждения, так что ревностно выкладывает ноутбуки с высококачественными решениям, чтобы зафармить лайков буквально через пару дней после старта. В этот раз он приревновал лайки и кинул мне страйк :0
Кстати, следите за птицами. Он сейчас там тоже какую-нибудь ржаку выложит
UPD: ПРЕКРАТИТЕ СТАВИТЬ БАНАНЫ
UPD2: ждать не надо, Рави уже выложил свою годноту
сегодня запустят птичек (планируют запустить) ... если кто-то ждет. Мое предположение было близко, но не Колумбия, а Бразилия и рядом лежащие области
Читать полностью…
Рубрика 'доменные мертики'
Люди давным давно занимаются прогнозированием того залетит ли ставочка, какая команда сильнее и в профессиональные аналитики (тм) даже придумали специальные рейтинги, чтобы определять это более честно.
Вместо того, чтобы смотреть на чистую разницу очков, подметили, что команды играют с разной скоростью. Давление таймера на баскетбольные команды только глобальное, хотя за 40 минут чистого времени можно разыграть совершенно разное количество 'владений'. Но если мяч забит, то обычно мяч переходит команде, в чьи ворота забили (за исключением штрафных).
Вот тут и кроется подвох: команда может хорошо или плохо обороняться, но скорость игры ей навязывает еще и команда соперника. В силу того, что это все спорт и элемент случайности все еще присутствует, андердогу выгодно 'играть медленно', чтобы иметь чуть больше шансов на удачу. Так же скорость игры регулируется тем, насколько команда физически подготовлена. Условно ветераны могут играть медленно, но очень технично и из каждой своей медленной атаки выходить победителем. Мы в школе например всегда быстро играли, потому что набивать опыт так легче, потому что играете больше владений + выносливость и скорость тренируется офлайн, без противников.
Перейдем к цифрам. Для начала оценим сырое число владений по бокс-скору:
(Число владений) = (все броски основного времени игры)−(подборы в нападении) + (потеря мяча) + 0.475× (число штрафных бросков)
Подборы в нападении вычитаем, потому что они 'продлевают владение' и мы не хотим два раза их считать.
Потеря мяча без броска тоже завершает владение досрочно.
Коэф 0.475 подобран эмпирически- примерно конверсия штрафных бросков в потерю мяча.
Посчитав такой коэффициент, мы можем получить 'нормализованную' эффективность нападений/обороны. Это будет оценка матожидания количества очков от владения мячом для конкретной команды в идеальных условиях.
Эффективность нападения:
(Количество забитых командой очков) / (Число владений) * 100
Эффективность защиты:
(Количество забитых команде очков) / (Число владений) * 100
Чтобы это все дело привести еще и к 'идеальному скору', надо это нормализовать на средние эффективности по лиге:
(Скорректированная эффективность нападаения) = (Эффективность нападаения) * (Средняя эффективность нападаения в лиге) / (Эффектиность защиты соперника)
(Скорректированная эффективность защиты) = (Эффективность защиты) * (Средняя эффективность защиты в лиге) / (Эффективность нападаения соперника)
Собственно эти две цифры и показывают честную силу команды, нормированную на скорость игры.
Свести их к одной позволяет еще одна волшебная формула:
(Вероятность победы против усредненного соперника)= (Скорректированная эффективность нападаения)^k/((Скорректированная эффективность нападаения)^k
+ (Скорректированная эффективность защиты)^k)
Вы спросите меня, а что за k? А это тоже поправочный коэффициент в 10.25.
Как это использовать в соревновании? Как фичи конечно. Можно спарсить torvik, чем я сейчас и занимаюсь.
Вообще у меня от этих формул эффект как от нейрослоп: вроде и узнаю похожие очертания, а как всмотришься- творится какая-то чертовщина
Дополнительный пост к второму месту на #santa2025. Это решил вынести в отдельный пост, потому что в одно тг сообщение просто не лезет.
Как трясти задачу упаковки? Авторы решения это называют 'Large neighborhood'
Как создать какое-то глобальное изменение для хорошего решения, но при этом контролируемо его испортить и не слишком сильно потерять глобальную структуру?
Все 4 шага есть картинками по порядку (картинки соответствуют этапам)
1. Удалим N случайных смежных деревьев
2. Выберем точку в получившемся пустом пространстве и растолкаем деревья в разны стороны от нее. При этом решение может испортиться и стать чуть-чуть больше
3. Рядом с точкой расталкивания вернем N деревьев случайным образом, лишь бы без коллизий
4. 'Ужмем' деревья назад
Теперь про каждый пункт по порядку.
Чтобы решить, какие деревья выбирать надо решить две вещи: целевую точку и количество деревьев.
Количество выбираем из равномерного распределения от 1 до 4.
Чтобы решить, какую точку 'ломать' все еще сложнее:
С вероятностью 0.1 выбираем один из углов
Чаще семплируем те места, где больше дисперсия направляющих углов елок
Чтобы 'растолкать деревья':
1. Увеличиваем квадрат немного с ближайшей стороны
2. Запускаем SA, который пытается сдвинуть каждое дерево от точки
Ну и конечно решение написано на rust + python. Причем на python по большей части графики.
🦀😡🦀
Прошлыt куски тут:
/channel/pseudolabeling/371
/channel/pseudolabeling/368
Не прошло и дня, а баскетбол на месте 🏀
https://www.kaggle.com/competitions/march-machine-learning-mania-2026
Всем зарегаться, всем взять билетик в сологолд и ждать розыгрыш
Предыдущие посты по теме баскета, чтобы примерно проникнуться духом
Вайбчек победителей соревы прошлых лет:
/channel/pseudolabeling/245
Финальные ставки:
/channel/pseudolabeling/248
Вот тут я позерствую на кажущемся успехе:
/channel/pseudolabeling/249
Вот здесь я узнал про специфичные для домена метрики не на уровне команд, а на уровне игроков:
/channel/pseudolabeling/251
А здесь подводим ботомлайн и пытаемся понять, почему не удалось всех победить в лоторее:
/channel/pseudolabeling/259
3 Место от Santa 2025
Сетап соревнования кратко описан тут: /channel/pseudolabeling/327
Задача чуть меньше, чем NP-полная (∃R), а для таких пока не найдено одного оптимального алгоритма, так что все лучшие решения будут иметь несколько этапов. В этом случае этапы следующие:
1. Берем хорошее решение меньшего размера и 'наращиваем' на него прямоугольники
2. Собираем из этих запчастей кубик
3. Отжигаем получившеся решение с помощью SA. Вообще каждый Санта решается с помощью SA, так что запомните эти две буквы на следующий год
4. Модификацией sparrow важимаем последние соки
Для начала про sparrow- это такой алгоритм двумерной упаковки, основанный на эвристиках и написанный на Rust 🦀. О нем все узнали из того, что его автор занял 6 место, ставил синичку на аватарку и вообще везде указал, что он такой вот молодец и придумал новый алгортим. Я его понимаю, это его творение и его успех. По умолчанию он решает задачу 'утрамбовки' в прямоугольник известной высоты, передвигая объекты и оптимизируя длину прямоугольника.
В райтапе первый пункт описан плохо, но я додумаю для вас:
Берем пазл меньшего размера с высокой эффективностью. Эффективность определяем так: делим площадь квадрата на число деревьев и получаем условную 'плотность'. Чем плотнее- тем эффективнее. Логика простая- если такой коэф низкий, то и 'воздуха' в решении мало.
Дальше с помощью ванильного sparrow решаем две подзадачи в виде двух прямоугольников, достраиващих решение до квадрата большей площади. Можно конечно разбить и на два идентичных прямоугольника + маленький квадрат, но кажется особого смысла в таком лишнем ограничении нет и оно только испортит.
Пункт второй: SA
Строго и формально лучше всего читать на сайте ммп
Обычно алгоритм состоит из двух этапов: отжиг и kick
Отжиг на пальцах:
1.Фиксируем температуру T.
2. Берем случайное дерево, его немного поворачиваем и шевелим. Если из-за этого деревья пересекаются- начинаем с начала.
3. Если скор (размер описанного вокруг елок квадрата) после такого шевеления улучшился- это наше новое базовое решение.
4. Если не улучшился- то делаем это решение базовым только с вероятностью обратно пропорциональной изменению площади (-delta(space) / T)
Kick еще проще:
Чтобы не застояться в локально минимуме, иногда применяем шаг kick- каждое дерево случайно смещаем в одну из сторон и если не случился overlap, то оставляем как новое базовое решение.
Пункт третий:
Для sparrow придумали тоже пару модификаций, чтобы побить автора:
1. Переписали его под прямую оптимизацию стороны квадрата
2. Написали свою версию warm-start, чтобы не начинать каждый раз с начала. Хотя вормстарт не надо было писать самим, а надо было подтянуть мастер.
3. Дописали доп ограничения для солвера: решение должно быть либо зеркально симметричным, либо 4-симметричным (по вертикали и горизонтали). Так получается больше ограничений и можно отметать слабые решения раньше.
4. Так же добавили специальный параметр регуляризации, заставляющий выстраивать решения вдоль какой-нибудь заранее заданной оси:
P(thetta) = w * B(c) * delta(thetta, thetta*) ^ 2.
B(c) = 1 + (b - 1)(1 - r) ^ p.
#santa2025
И так, наша первая идея для решения санты 2025, которая до сих пор работает, но почему-то не очень популярна в комьюнити. Ну или Вехденская правда придумал ее едиственный.
TLDR: сведем задачу упаковки к LP
Перва проблема сведения- это то, что ёлки то сами по себе не очень-то и выпуклые фигуры, а для решения LP надо фигуры иметь выпуклые. Тогда представим елку как минимальный набор выпуклых фигур (на рисунке), относительно которых можно собрать систему уравнений: порежем елку на фигуры и сделаем вид, что они друг к другу приклеены.
Для пары елок будем иметь 16 ограничивающих уравнений, но нам елки нужно сравнивать только попарно, так что количество уравнений не станет запредельным.
Тогда для каждой прямой описывающей каждый многоугольник будем иметь
a x + b y + c = 0
a·dx_i + b·dy_i − a·dx_j − b·dy_j ≤ k
https://huggingface.co/spaces/AlexWortega/hr-breaker
HR-breaker теперь в общем доступе
Если со мной часто пить кофе, то можно получить бесплатные идеи
Читать полностью…
Вытянули с гранд мастером бронзу на соревновании по фин рынкам. Мелочь, а не лишнее.
Соревнование настолько рандомное, что завелся только один из сабмитнутых ноутов и в самой сореве драма вокруг отравленым китайских паблик ноутбуков
От этого @pseudolabeling немножко меньше утонул в глобальном ладдере
Автор собрал и описал в одном посте все улучшайки GRPO
https://cameronrwolfe.substack.com/p/grpo-tricks
Это сообщение- ваше последнее напоминание засабмитить в Санту Баскет
Мой 🏀 баскетбольный 🏀 ноутбук кстати пока не вернули в паблик. Если в пн вечером не вернут- во вторник перевыложу сюда код для всех подписчиков
Читать полностью…
Амнистия от гражданина начальника
Но ноутбук все равно выложить не могу, потому что последняя неделя соревнования. Написал поддержке с просьбой о помощи. Если не помогут- выложу за три дня до дедлайна свежую версию без привязки к сореве
Птицы все же вышли в этом году 🦅
Мы любим это соревнование, потому что оно решается псевдолейблингом
https://www.kaggle.com/competitions/birdclef-2026
Призовые как обычно первые 5 мест + приз жюри за лучший work note на CLEF 2026.
Тот случай, когда можно зафармить и медалек и статей на A-level конфе. Чтобы засабмитить work note даже не надо попадать в топ, приз выбирают из всех сабмишнов.
Подписчики уверяют, что птицам быть
March 11, 2026 - Start Date.
- May 27, 2026 - Entry Deadline. You must accept the competition rules before this date to compete.
- May 27, 2026 - Team Merger Deadline. This is the last day participants may join or merge teams.
- June 3, 2026 - Final Submission Deadline.
Вдвойне смешнее
А можно как-то с калом связаться? Там вроде раддар не против
UPD:
Создал тему чтобы поныть https://www.kaggle.com/competitions/march-machine-learning-mania-2026/discussion/680789
Фармим академические ачивки
Прямо сейчас проходят соревнования, хорошее место в которых позволит опубликовать свой work-note и выступить с воркшопом на конфах CVPR26 (тир A+ США) / CLEF (тир A в Германии). У этих челленджей сравнительно маленькая конкуренция и взять хорошее место на них даже проще, чем в соревнованиях для новичков каггла. Придется повозиться с данными, но зато можно увеличить свои шансы на поступление на пхд/магистратуру/стипендию/грант. Применимо это для любой страны, включая северную корею. Я бы лично решал, чтобы получить повышенную стипу.
1. AnimalCLEF26 @ CVPR & CLEF
Классифкационный трек, где нужно подумать как хендлить класс 'другое'.
В этом году надо отличить друг от друга: Евразийскую рысь, чашскую саламандру, греческих черепах и техасских рогатых ящериц. Причем последних в трейне нет, только в тесте. В прошлом году было 174 участника из которых только один кагл мастер. Не сильно ожидаю, что в этом году конкуренция будет больше, так что попасть в топ довольно изи.
2. PlantCLEF2026 @ LifeCLEF & CVPR-FGVC
Задача по мультиклассификации на 1000+ классов: в трейне даны снимки индивидуальных растений, а в тесте- один большой снимок, растения с которого надо распознать и перечислить. В прошлом году участвовало 38 участников, из которых только один кагл мастер. Причем тот же самый, что и в AnimalClef сореве
3. FathomNetCLEF2026 @ LifeCLEF & CVPR-FGVC
Соревнование по детекции на подводных снимках: надо по фото найти bbox-ы чего-то живого под водой. В прошлом году участвовало 79 человек и ноль кагл мастеров. Тут скорее задача в том, как файнтюниться под целевые класс на опенсорсном датасете.
По сравнению с прошлым годом случились потери:
Мало того, что BirdClef, за который традиционно дают очки рейтинга, так и не появился, так еще мы потеряли классификацию грибов (FungiClef) по фото и оценку разнообразия лесов (LifeClef) по спутниковым снимкам.
Зато появились еще одно академическое соревнование не из Clef трека:
ACCIDENT @ CVPR
По видео надо найти где и когда в кадре случилась авария, а так же ее тип. Можно попасть на воркшоп CVPR и даже можно успеть сделать визу
Думайте, подписаться
Как взять золото в March Mania? 🏀
В прошлом году анализировал то, как выигрывается March Mania и самая надежная стратегия- это модифицировать Raddar notebook. Я долго ждал, пока Raddar его выложит, но сколько можно? Я сам сделал вам Raddar Notebook.
Raddar- это такой кагл грандмастер, который был 10 лет назад топ 4 каглла, но сейчас подзабил на соревы и в основном лудит в March Mania. Прямо как мы с вами! Форки его ноутбука стабильно появлятеся в топ 10 уже 5 лет, но не он. Ему не везет настолько, что приходится жаловаться на форуме, что его жена стибильно выше него в ладдере March Mania.
База отработана почти с самого начала сорев по NCAA:
1. Берем фичи повторяющиеся из года в год
2. Берем XGBoost
3. Завышаем вероятности в 'неравных схватках'
4. Руками фиксим вероятности для самых первых матчей, чтобы хакнуть Brier Score.
Этот подход как автомат Калашникова, попадал в топ 10 каждый год. Весь секрет в том, чтобы изменить базовый ноутбук и тем самым стать чуть-чуть лучше или хуже, чем все остальные. Ну и молиться, конечно!
А вот если не модифицировать и ничего не крутить, то получишь скор как все те люди, что скопировали/сабмитнули и уж точно не выиграешь. Я об этом за вас подумал, и добавил к сабмитам чуть-чуть шума, чтобы скоры отличались. Вы можете сами это отключить, можете сами оверрайднуть матчи, можете выкинуть/добавить какие-то фичи. Рекомендую посмотреть новости о том, как изменятся составы прямо перед матчами и оверрайдить на их основе.
Самое главное в этом соревновании- это не упарываться. Рынок баскетбольных ставок настолько эффективен, соревнование так долго проводится и на него виляет так много факторов, что нет смысла пытаться придумать что-то новое. Надо тянуть билетик в лоторее и ждать результаты. И помните, можно взять аж два билета и эти билеты должны быть разными, потому что матожидание максимума от двух случайных величин больше или равно их матожиданиям.
Так что форкайте ноутбук, запускайте и делайте самбит, репостите другим людям. Чем больше будет команд- тем больше будет золотых медалек
🏀🏀🏀
https://www.kaggle.com/code/asimandia/this-year-s-raddar-notebook?scriptVersionId=300874279
Сейчас на каггле затишье и из интересных соревнований есть только NLP сорева по переводу с Аккадского, на которой у меня ничего не заводится.
Но в скором времени будет:
1. Баскетбол, для которого я выкачу гайдлайн как в нем +- эффективно участвовать.
2. Новый BirdClef++
А вот Lux 4 (RL-соревнование) кажется задерживается
unfortunately there isn't a specific timeline. When the time is right and the volunteers have time to work on this properly we will announce more details.Читать полностью…
A big blocker is unfortunately my own time to build out the game engine + make a research proposal to Kaggle. I am currently finishing up my phd and closing out some projects so that is taking up a big chunk of my time. I hope to eventually come back to co-running this competition with bovard but there just isn't a time budget from me for it right now. While I could dedicate some time now it wouldn't be sufficient imo to make and maintain high quality competition similar to our first 2 seasons.
Вот бы сейчас узнать мнение @silicon_bangalore о всех ситуациях, которые он не комментил
Читать полностью…
Заняли 47 место в упаковке елок в квадрат. Вернулся на 4 страницу рейтинга (382 место) в компетишнах, но как-то не ощутимо приблизился к гранд мастеру.
В ближайшие пару дней расскажу, что было придумано и как работало. Соревнование ежегодное и проклятое, потому что в нем неимоверное число участников, а значит и рейтинга дают очень много. Так что если вы хотите быть киберкотлетой как я- выбора участвовать или нет особо нет. Это как пропускать мажоры и потом удивляться, почему рейтинги низкие.
В жизни пару раз встречался с задачами упаковки объектов и всегда казалось, что каждый раз нужно изобретать костыли и писать очередной Branch & Bound. Ну так вот вывод: надо!
На днях обсуждали с админом @pseudolabeling, что автоматические фильтры резюме совсем оборзели. Некоторые ребята которых я менторил из-за этого вручную оптимизировали резюме под каждую вакансию. Почему бы не автоматизировать?
Навайбкодил за два вечера hr-breaker:
1. Загружаете резюме
2. Даете ссылку на вакансию
3. LLM вооруженная тулколами генерирует оптимизированное резюме (в том числе по советам из методички)
4. Делаются стандартные проверки: keyword matching, vector similarity, проверка LLM-кой (в том числе визуально, что всё не поехало), проверка на галлюцинации, проверка на очевидный AI-generated текст
5. Если хотя бы одна проверка не пройдена оптимизация продолжается
Важно, что всё сконфигурировано не врать и не изобретать опыта которого нет, поэтому получается очень неплохо. Но если у вас нет совести ничто не мешает форкануть поиграться с промптами и отключить пару проверок 🤗
UX сделан для массовой подачи: кладет оптимизированные PDF в папку с указанием роли и компании, чтобы вы не забыли какое резюме куда отправляли.
Скачиваете, подставляете свой ключ Gemini API, uv run и уничтожаете скрининг как явление. Добейте выживших
@boris_again
Посвещается @ArtemVeshkin @markdjadcnhenko @artyomjk которых шейкнуло с 10 места на 38 в CSIRO - Image2Biomass Prediction сегодня ночью и которые не все стали кагл мастерами
Читать полностью…
Фикс успешно влили в мастер. Теперь я контрибьютор еще и в дагстер
https://github.com/dagster-io/dagster/pull/33227/files