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

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

Для участников курса


Топ-100 по финальному рейтингу будут приглашены 27 мая в московский офис Mail.ru Group. Программа – с 12 до 19, план примерно следующий:


12.00-12.30. Выступление Михаила Фирулика, руководителя Отдела анализа данных Mail.ru Group.
12.30-13.30. Выступление Юрия Кашницкого – итоги открытого курса + “Основные ошибки в анализе данных”
13.40 – 14.40. Перерыв
14.50 – 15.50. Лекция по нейронным сетям
16.00 – 17.30. Тьюториал по нейронным сетям
17.30 – 19.00 Нетворкинг


Что именно будет по нейронным сетям – это мы еще решаем, благо, специалистов в ODS хватает

Напрашивающийся вопрос — будут ли обнародованы эталонные решения домашних заданий? Ведь не только машины, а человеки тоже учатся через свои ошибки!

Они каждую неделю публикуются в репозитории курса.

Для участников курса


По соревнованиям Kaggle Inclass (идентификация взломщика и прогнозирование популярности статьи на Хабре):
– открыты до 22 мая 23.59
– макс. число посылок в день – 5 шт, соревнования индивидуальные (т.е. команды макс. 1 чел, объединения команд запрещены)
– ближе к концу от Kaggle придет письмо с просьбой выбрать 2 посылки, которые вы у себя считаете лучшими
– если вы претендуете на баллы, то перед окончанием соревнования надо переименовать свою команду (из 1 человека) в полном соответствии с ФИО в рейтинге курса
– баллы за соревнования, которые пойдут в рейтинг, считаются по формуле 40*(1 — (p-1)/N), где p – место участника в приватном LB (LeaderBoard), N – число участников, побивших все бенчмарки в приватном LB, приславших в срок свои решения и не нарушивших правила соревнования
– вплоть до 15 мая могут появиться более сильные бенчмарки, а баллы начисляются только тем, кто побьет все бенчмарки на приватном LB (AUC строго >, MSE строго < чем у всех бенчмарков)
– естественно, если вы переобучились и на приватном LB сильно опустились, не надо претензий – баллы считаются по приватному LB
– в соревновании по Хабру в финальных решениях нельзя использовать признаки группы “quality” из howpop_test.jsonlines (views_lognorm, views, votes_plus, comments, favs_lognorm, votes_minus, comments_lognorm и favs), точнее, этих признаков не должно быть в финальном решении.
– после окончания в срок до 23:59 23 мая те, кто побили все бенчмарки по итогам соревнования, должны прислать свои воспроизводимые решения (предпочтительный вариант – ipynb с комментариями), скинув в дропбокс, ссылку дадим ближе к делу
– итоги соревнований и финальный рейтинг курса будут опубликованы до 25 мая (возможно, раньше)

Классная статья, жаль не могу второй плюс поставить.


Но есть вопрос: VW силен тем, что может быстро и может online, что позволяет рыботать на больших объемах данных.


А вот если таких ограничений нет? И данных не так много — пара десятков миллионов записей и online обучение не требуется, какие есть альтернативы к VW, которые могут показать большую точность на том же типа данных?


Банально, те же отзывы IMDB, точно так же почищенные данные, но вместо VW, использовать Tf-Idf + logistic regression, как соотносится точность модели?

Вообще стохастический градиентный спуск при увеличении числа итераций сходится к тому же решению, что и при обычном градиентном спуске. Так что если увеличивать число проходов по выборке, то решение будет приближаться к решению логит. Короче, на малых данных лучше логита он не будет. Можно посмотреть, на тех же IMDB отзывах по качеству логит или линейный SVM cкорее лучше будет. Но вот грузить все это в память, если вдруг нужно построить какие-нибудь 5-граммы — все это может немало памяти съесть.
А у Vowpal Wabbit минимальные требования по предобработке – можно прямо текст на вход подавать, одним простым --ngram, скажем, можно n-граммы строить и т.д.

Вот теперь статьи стали ещё лучше, потому что вводные темы закончились и начинается всё самое интересное! Спасибо большое!

Участникам курса


1 часть 8 домашки– на собственную реализацию онлайн-алгоритмов.
2 часть ожидается завтра, но Vowpal Wabbit можно уже сейчас установить – последнюю версию, 8.3.2.


На 8 домашку (2 части) дается больше времени, но не 2 недели. Дедлайн: 23.59 (UTC+3) 28 апреля (пятница).

Добавил 2 часть 8 домашки. Также обновил Docker-контейнер, теперь он намного легче (около 2 Гб вместо 6) – новая инструкция по запуску в README репозитория.
В задании рекомендуется использовать VW версии 8.3.2 в режиме командной строки.

А кроме VW есть библиотеки, которые могут работать в пространствах огромной размерности (например, 2^28, как в этой статье)? Как правило, всё что я видел, пытается строить плотный вектор весов в памяти и благополучно с этим не справляется.

ну… HashingVectorizer есть и в sklearn, так что размерность – это шутка управляемая при хэшировании. Правда, не проверял sklearn на подобных выборках, думаю, все печально будет.
А онлайн-обучение есть и в H2O, и в Azure, наверняка и во многих других популярных либах.

Сам не использовал, но если погуглить, то можно найти реализации hashing trick все в тех же Spark, H2O и Azure ML. Вполне возможно, что и в других каких-то либах, но это лидеры наряду с Vowpal Wabbit.

Я как раз про результат хэширования, а не исходное пространство (в случае слов оно практически бесконечно). В статье сказано, что признаки хэшируются в вектор размерности 2^28. Другие библиотеки даже с таким результатом хэширования не очень-то справляются.

Хороший, кстати, кейс был бы – потестировать хэширование в разных фреймворках и в benchm-ml описать.

В вашем примере признак Education является не номинальным, а порядковым (за исключением значения Unknown). Имеет ли смысл кодировать его не через One-Hot, а ранжирование или Optimal Scaling?

По этому набору данных — да, согласен, что порядковый. Хотя в целом… попробуй сравни нашу кандидатскую и Ph.D.
Обычно на практике кросс-валидация подсказывает, какое преобразование применять к признаку. Скажем, есть признак регион РФ. Если регионы занумеровать, страдает здравый смысл. С другой стороны, порождать 90 новых бинарных признаков, может, тоже не хочется — слишком много. Остается на кросс-валидации проверить, что лучше работает.

Участникам 2-ой сессии курса


8 домашнее задание – побить единственный бенчмарк в соревновании. Инструкции, как это сделать с Vowpal Wabbit, даны в тетрадке
Соревнование по сути то же, что с Medium на Arktur, но тут задача – просто побить бенчмарк, не стоит слишком много времени тратить и пытаться победить, родятся новые идеи – проверяйте их в соревновании на Arktur.


Проверка будет простой – команду из одного человека называете в точном соответствии с рейтингом. Побили бенчмарк (для простоты даже просто на публичной выборке), загрузили решение сюда – 10 баллов, не побили – 0. Не обязательно даже VW использовать, но инструкции даны для VW.


Дедлайн (продленный) – 2 ноября 23:59 UTC +3.

Хорошая статья. Очень мне помогла.
Хочу дополнить одним ньюансом: функция hash кодирует на строку, а Python обьект.
Т.е. вы получите разные значения, вызвав её несколько раз для одной и той же строки.
Т.е. в пределах одного пространства имен/инстанса она еще работает, а вот многократный реюз модели уже проблематичен
Если вы планируете сохранять свою модель на диск для много кратного использования, то лучше заменить функцию hash(s) на более стабильную версию:

import hashlib
hash_tricks=dict()
def code(s):
    global hash_tricks
    hash_space = 25
    if s is None:
        return 0
    x = s.encode('utf-8')
    c = int(hashlib.sha1(x).hexdigest(), 16) % (10 ** 8)
    hash_tricks[c] = s
    return int(hashlib.sha1(x).hexdigest(), 16) % (10 ** 8)

Этот код всегда возвращает одинаковое значение для одной и той же строки, + сохраняет всё сгенирированное в глобальном словаре.

Новый запуск курса – 5 февраля 2018 г. Регистрация не требуется, но чтобы мы о вас знали, заполните форму. Главные новости будут в группе ВКонтакте, а жизнь во время курса будет теплиться в Slack OpenDataScience (вступить) в канале #mlcourse_open.

Новый запуск – 1 октября 2018 г., на английском. Подробности – тут.

Теперь курс можно проходить и самостоятельно – появились демо-версии заданий с решениями. Они описываются в конце каждой статьи, но есть и общий cписок. Решения доступны после отправки соотв. веб-формы.

Зарегистрируйтесь на Хабре , чтобы оставить комментарий