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

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

(Например, меня порадовала конволюционная нейронная сеть из 28 слоёв, которая сама вычленяет выжные признаки из изображений.)


А причём тут выделение признаков из изображений?

Спасибо за статью, хорошая. И показывает порочную практику каггля — настраивать свои системы через обратную связь каггля — загружая прогоны и подгоняя параметры. В боевых условиях этот подход не работает.
Насколько я знаю, предварительный leaderboard считается не на всей тестовой выборке, а только на её части. А финальное тестирование уже проходит на всей тестовой выборке. И во время финального тестирования можно ожидать что все позиции изменятся и те, кто сделал грамотную модель, не переобучившись на результате предварительного leaderboard, должны занять позиции выше. Поэтому, конечно, надо всегда держать в голове, что переобучение — зло :)
  1. Про изображения и признаки: В тексте, я немного неаккуратно выразился, я привёл ссылку на одно из топовых решений в другом соревновании, не про погоду и продажи, а про то, где надо было определять степень болезни по изображениям. Я тоже пытался участвовать в этом сореновании, и почитав литературу, занимался обработкой изображений, пытался извлечь из них какие-то признаки. А вышеупомянутый товарищ не мудрствуя лукаво сфокусировался не на создании признаков, а на сложности модели. Конволюционная нейронная сеть нетривиальной архитерктуры и правильная аугументация данных. Так вот его предсказание в разы точнее моего. Это я к тому, что признаки — это признаки, а модель — это модель. В большинстве случаев правильные признаки сильнее улучшают точность предсказания, чем зубодробительные модели. Но есть области, в которых существующие алгоритмы достаточно продвинуты, чтобы самим разобраться что, где и как.
  2. Вы правильно заметили, что есть такая порочная практика, но я добавил кусок текста в конце, в котором попытался пояснить, что все не так плохо, как кажется.

В своё время я решал похожую задачу прогнозирования объема выручки магазина, в котором работал.
Результат получился довольно интересным. В первую очередь на объемах продаж сказывались недельные / месячные / годовые циклы, праздничные дни. Если же, учитывая их влияние, пытаться построить зависимость от погодных условий, то самым значимым оказался фактор изменения температуры, но не её абсолютная величина.
И действительно, вспомните себя, к примеру, осенью. Когда холодает градусов на 5-10, вам день-два зябко, не хочется выходить из дома, а потом вы привыкаете. И неважно, холодает с 0 до -5 или с -15 до -20 градусов.
Использование «истории» погоды — обязательно для данной задачи.
Простите, у вас иллюстрация к посту неверная. Батарея зонтиков не спасет от дождя — струи воды будут стекать сильными потоками с нижних зонтов на плечи и одежду тех, кто стоит рядом с ними.
не слишком ли много сарказма в этом комментарии? :)
Про отбор информативных признаков, вы перечислили: веса линейной функции и важность, сгенерированная случайным лесом. Упомянули «Третий метод — метод грубой силы, выкидывать признаки по одному и смотреть, как это повлияет на точность предсказания. Самый надёжный, но, самый муторный.»

Недостатком всех трех перечисленных подходов является их суб-оптимальность. И причина проста: делается анализ важности одного из признаков, когда в реальности мы можем легко получить ситуацию, когда, например, 2 признака будут очень слабо влиять на зависимую переменную, а в комбинации давать скачкообразный рост важности. Ситуация становится еще интереснее, если попробовать представить, сколько всего взаимодействий между всеми признаками и всеми их подгруппами могут давать разное значение важности.

При этом еще отмечу, что важность признаков, сгенерированная, например, случайным лесом не трактуема в том смысле, что не ясно, температура, например, повышаясь увеливает продажи или понижаясь. Но это вроде и не требуется здесь.

Я отбираю признаки по информационному критерию: скорректированная взаимная информация между подпространством признаков и зависимой переменной. Почитайте, может, пригодится. Этот метод, в частности, анализирует взаимодействия в группе предикторов, но может и отдельные переменные посмотреть в процессе обучения.
Я обеими руками за почитать и научиться чему-то новому и правильному. Ссылкой не поделитесь на статью/книжку/пример?
Ок, про взаимную информацию легко найти материалы, вики та же. А про скорректированную взаимную информацию посоветую эту публикацию: Analytical estimates of limited sampling biases in different information measures by S. Panzeri et al.

Взаимная информация как мера связанности, будучи посчитанной без коррекции на ограниченную длину выборки, это путь в ошибки.

Фитнесс функции я пишу сам, тут уж только опыт поможет.

Базовые функции есть в пакетах для R, например. infotheo, например.
научиться чему-то новому и правильному


И я, кстати, не говорю, что вы делаете неправильно. Просто каждому методу свое назначение. Если задача содержит только линейные зависимости, простые коэффициенты лин.функции могут быть полезны. Однако, там все равно остается проблема анализа каждого признака в отдельности. Но если есть уверенность, что признаки информативны только в отдельности, то метод идеально подходит. Но в реальном мире это встречается редко.
То ли не вижу, то ли вы не написали, но удалось ли получить работу?
На данный момент — я как тот кот, которого пытался отравить Шрёдингер.

Мутная какая-то контора в том смысле, что тянут и кормят отговорками вроде:
«I am so sorry it is taking a little longer I will know more by Monday. » И в понедельник тишина.

Я написал письмо, с напоминанием о том, что я существую. И получаю:
"The team was supposed to debrief yesterday and I am still waiting for an answer. Let me check again."
И опять тишина.

Видимо, не судьба. Буду подавать в другие компании.
Ой, у меня подобная ситуация была… тоже пришлось напоминать о себе несколько раз, но в конце концов надоело — если бы хотели меня, то сами бы написали. Это также говорит о том, что у них либо бардак в компании, либо они не очень уважают людей, в любом случае лучше держаться от подобных контор подальше…
Удачи!
У меня сложилось такое же впечатление. В этом отношении мне гугл понравился. После технического интервью позвонили и сказали, что не смотря на впечатляющие технические навыки они предпочли более сильного кандидата. И несмотря на то, что с ними не срослось и что они просто пытались сделать пилюлю отказа чуть менее горькой, общее впечатление от взаимодействия с их рекрутером и представителями их Data Science team было очень положительное. Чувствовалось, что к тебе относятся как к человеку. А тут такое неуважение к моему времени, причём со стороны достаточно большого стартапа. Я даже имя компании скажу вслух, чтобы те, кто будут пытаться к ним устроиться — это Pivotal. Индус, про которого я упоминал в начале поста, в своё время оказался в похожей ситуации так он написал им, что при таком отношении к кандидатам, работать в такой компании он не хочет.

Кстати, если кто-то увидит этот комментарий и кто работает в какой-нибудь компании в San Francisco Bay Area или New York и у них есть свободная вакансия на позицию Data Scientist'a, я буду премного благодарен, если вы перешлёте моё резюме вашему Job Recruiter'у.
Нашёл, я, таки, работу, даже текст на эту тему написал. Муторное это всё-такие дело работу искать, когда у тебя чистое резюме, незамутнённое опытом работы резюме…
Мои поздравления!
А что наука?
Не изучали ли вы вопрос публикации конкурсов на Kaggle? Может ведь физическое лицо разместить там конкурс без вознаграждения? Интересует также как грамотно данные зашифровать, чтоб анализу не помешать. И, какие результаты в итоге получает тот, кто конкурс публикует? Модель победителя или что-то другое?
Насколько я знаю, существуют три типа соревнований, которые там можно разместить:
  1. kaggle inclass — это для тех, кто используют платформу кагла для обучения машинному обучению либо в университете, либо в какой-либо компании, либо в каком-нибудь онлайн курсе.
  2. Какое-либо учебное заведение публикует задачу которая имеет научный интерес.
  3. Компании, которые хотят получить алгоритм, либо нанять Data Scientist'a (Recruiting competitions), либо просто для души. — за эти соревнования компании платят большие и не очень деньги.


А зачем каглу конкурс, который организует физическое лицо без финансовой подпитки кагла? Это просто не вписывается в их бизнес модель.

Чем более данные зашифрованы — тем меньше feature engineering и больше численных методов. То есть на практике сложнее применять идеи, вынесенные с кагла.

У вас есть train, у вас есть test, крутитесь, как хотите, но сделайти наиболее точное при данной метрике предсказание.

- Почти любое соревнование в kaggle

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

Публикации

Истории