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

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

Добрый день, я так понимаю вы имеете прямое отношение к организации блица, есть пара вопросов: что такое квалы и почему такое странное распределение по людям между ними? (во втором было 2 страницы участников, в 3 7+). Некоторые задачи имели, скажем, весьма опосредственное отношение к ML, например, задача по написанию _оптимального_ решения вычисления обобщенного roc-auc (по моему мнению чисто алгоритмическая задачка из олимпиадного программирования), да и задача про выбор генератора тоже как-то сложно натягивается на ML, будут ли как-то пересмотрены задачи в будущем?
1. Квалификации — это турниры для неограниченного числа участников с более простыми задачами относительно финала. Они требуются для того, чтобы определить участников собственно финала.
2. Участники сами решают, в какой именно квалификации примут участие.
3. Я не согласен с тем, что задача вычисления метрики не имеет отношения к машинному обучению. Умение правильно и эффективно запрограммировать необходимый функционал потерь бывает весьма востребованной, без этого исследователю могут быть просто недоступны некоторые решения. Хорошее понимание процесса вычисления метрики (и его крайнее выражение — умение эту метрику запрограммировать) часто помогает придумать хорошее решение.
1-2 Мы не выбирали квалификации, оно само по неведомому алгоритму кидало как-то
3 Оно имеет отношение к ML, но это не ML задача от слова совсем, к ML много чего имеет отношение (олимпиадные задачи на графы или низкоуровневое программирование на cuda, например), но все-таки в ML соревновании ожидаются ML задачи (X Y все дела). Дополнительным маячком должно стать то, что в остальных задачах требуют отправить файл с вычисленными результатами, а тут код :)
1-2: квалификации проходили с 11 по 17 июня. Мы обновляли комплекты задач каждые несколько дней :) Так что каждый сам мог решить, когда именно начинать соревнование. Сравнительно большое количество участников в первой квалификации поэтому объясняется только тем, что для многих первые дни соревнования были более удобными.

3. Это не единственная задача такого рода. В первой квалификации, как видите, тоже была такая необходимость (задача про Decision Stump). Не стоит думать, что ML — это только про данные и запуск каких-то известных тулов. Это ещё и про способность написать необходимый метод самостоятельно. Во всяком случае, специалисты, которые могут это делать, более востребованы на рынке — поэтому нестранно, что и в контесте у них есть преимущество.
А в режиме тренировки можно сейчас отправлять свои решения тут contest.yandex.ru/contest/7803/problems?

У меня почему то все время Runtime Error без пояснения причин, даже на самом базовом решении для задачи А, которое просто печатает 3 числа в ответе:

n = int(input())
for i in range(n):
    input()
print('1.0000000 0.0000000 1.5000000')
Да, дорешивание открыто. В задаче А ввод осуществляется из файла, stdin пустой, и int(input()) падает. Вывод, кстати, должен происходить в файл!

Обращайте на это внимание. В условиях всегда явно указывается возможность ввода-вывода с использованием стандартных потоков.

Ааа, вот оно что, спасибо!

Хм, честно говоря, странно, что без учета текста запроса набирается F1 > 0.25. Я пробую разбивать по датам и делать обучение на данных 24-28 января, а валидацию на 29 января и у меня получается F1 ~ 0.17. Это без текста запроса. С tfidf по тексту получается F1 ~ 0.28

И мне кажется там у вас ошибка — клики по свежим документам совершаются только в ~7% случаях, а не 3/4. В скрипте должно быть скорее $9 вместо $8
tawk '$8 > 0' fr_learn.tsv | wc -l
Похоже, вы правы :)

С другой стороны, это показывает, насколько 0.25 — нестрогое требование. У меня заходили решения и с 75% единиц, и с 25% единиц, например. То есть, фактически задача сводилась к запуску какого-либо достаточно сильного алгоритма машинного обучения на имеющихся факторах.

Мм… нестрогое, но вряд ли настолько. Даже если предположить что у вас Recall = 1, т.е. все истинные клики содержатся в вашем ответе, то имеем оч низкую точность Precision = 0.07 / 0.75 ≈ 0.09, откуда F1 = 2 / (1 / 1 + 1 / 0.09) ≈ 0.17. А у вас там даже не 3/4 кликов в ответе, а 178925 / 200000 ≈ 0.89, так что Precision и соответственно F1 будут еще меньше.

Объясните, пожалуйста, при попытке посмотреть задачи падает сообщение «У вас нет прав просматривать это соревнование». Я правильно понимаю, что сейчас задачу не посмотреть, если ранее не зарегистрировался, а поскольку регистрация закрыта, их теперь не увидеть?
Да, всё верно. Мы скоро откроем дополнительное соревнование, в которое войдут задачи всех квалификаций и финала. Оно будет доступно в режиме виртуального турнира всем желающим.
Вы не могли бы открыть и тестовые данные? Ну очень непросто понять, что же пошло не так, отладочного вывода нет, сообщения об ошибках невероятно куцые.
Нет, тестовые данные открывать не будем.
В перечислении признаков для задачи множественной регрессии ошибка — лишний квадрат при логарифме
Либо я неправильно вас понял, либо квадрат не является лишним. Квадрат логарифма возникает после раскрытия скобок.
Я про слагаемое sin(x)*ln^2(x). При раскрытии ведь не должно быть второй степени логарифма в нем
Все верно, спасибо! Действительно, в одном месте был лишний квадрат :)
Будут ли разборы других задач с квалификации? Очень хотелось бы почитать.
К сожалению, сейчас мы не планируем этого делать. Впрочем, доступно дорешивание: contest.yandex.ru/contest/8470/enter
Может кому пригодится github.com/stas-sl/yandex-blitz-ml-2018 — мои решения задач со всех квал раундов и финала. Там где решения в ноутбуках, там я писал поясняющие комментарии, однако к другой части задач пояснений пока нет.
Вы в решении задачи А пишете:
Конечно, с использованием дополнительных библиотек можно добиться намного более впечатляющей производительности.
Не могли бы вы пояснить, что за библиотеки для Python имеются в виду? Существуют библиотеки с готовой «оптимизированной» реализацией метода Уэлфорда или вы подразумеваете какие-то другие пути увеличения производительности? Хотелось бы понять, что именно в приведенном вами коде можно улучшить.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий