И в последствии проигрывает 8000 грн + билет до Нью-Йорка.

На изображении выше показано резкое падение нашего рейтинга в глобальной таблице лидеров. На карту было поставлено очень многое. Мы пожертвовали 40 днями на погоню за 8000 долларов и билетом в Нью-Йорк - приз за первое место в глобальной таблице лидеров. И что еще более неприятно, мы доминировали в публичной таблице лидеров с самого начала соревнований. За две недели до крайнего срока наша позиция была твердо закреплена на 1-м месте в таблице лидеров до горькой правды, то есть частной таблицы лидеров.

К счастью для нас, хотя мы опустились на 9-е место в глобальной таблице лидеров, мы по-прежнему занимали 1-е место в локальной таблице лидеров Индонезии. Мы были вознаграждены 25 000 000 рупий (~ 1800 долларов США) и предложением оплачиваемой стажировки. Спасибо, EY!

Итак, как мы там оказались? Давайте присоединимся ко мне в нашем (Кристиан Вибисоно и я) путешествии на последнем конкурсе Ernst & Young NextWave Data Science Competition 2019.

Конкурс

tl; dr: Замечательный международный конкурс по науке о данных, проводимый Ernst & Young. Соревнования со студентами и аспирантами со всего мира в течение 40 дней. Учитывая анонимные записи геолокации, спрогнозируйте, будет ли устройство находиться в центре города или нет.

Конкурс Ernst & Young NextWave Data Science Challenge 2019 посвящен тому, как данные могут помочь процветанию следующих умных городов и повысить мобильность будущего. Глобальная урбанизация находится на подъеме, более 50% населения мира проживает в городах. По данным ООН, к 2030 году это число достигнет 60% - это почти на 1,5 миллиарда больше, чем в 2010 году.

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

Параллельно с этим у органов государственной власти больше, чем когда-либо, информации о том, как горожане передвигаются по городу. Однако существует разрыв между получением этих данных и их использованием для улучшения пользовательского опыта путешествий для граждан. У перспективных властей есть шанс внедрить инновации в инфраструктуру, чтобы сделать свой город лучшим местом для жизни в улучшенном рабочем мире.

Это был наш шанс сократить этот разрыв. В качестве участника испытания мы сможем загрузить набор данных с огромным количеством анонимных записей геолокации из американского города Атланта (Джорджия) в октябре 2018 года. Наша задача заключалась в создании модели, которая поможет властям понять путешествия граждан. пока они перемещаются по городу в течение дня. Будем надеяться, что наша работа может вдохновить на создание решений, которые помогут городским властям предвидеть сбои, принимать решения в режиме реального времени, разрабатывать новые услуги и изменять инфраструктуру.

Нам был предоставлен доступ к файлу данных `data_train.csv`, который содержал анонимные данные о геолокации нескольких мобильных устройств в городе Атланта за 11 рабочих дней в октябре 2018 года. Каждый идентификатор устройства представляет собой однодневное путешествие, состоящее из нескольких траекторий. . Траектория определяется как маршрут движущегося человека по прямой с точкой входа и выхода.

Мы должны предсказать, сколько людей было в центре города с 15:00 до 16:00. Набор тестовых данных содержал несколько устройств, в которых траектории после 15:00 были удалены - все, кроме одного: после 15:00 мы найдем одну последнюю траекторию с (1) местоположением входа, (2) временем входа и выхода между 15:00. : 00 и 16:00. Однако точка выхода была удалена. Проще говоря, наша задача заключалась в том, чтобы предсказать местоположение этой последней точки выхода и было ли это устройство в центре города или нет. Целевая переменная - последняя.

В течение 40 дней каждый день каждая команда - до двух человек из студентов или аспирантов со всего мира - имела возможность подать пять заявок, содержащих целевую переменную и идентификатор устройства. Представление будет автоматически оцениваться с использованием F1-балла между прогнозируемой и наблюдаемой целью. Результаты будут сравниваться с реальными данными с использованием как общедоступных, так и частных наборов данных. В рейтинге задач мы сможем увидеть оценку, основанную только на общедоступном наборе данных. В итоговой таблице лидеров будет учитываться только последняя заявка.

Что прошло хорошо?

Оглядываясь назад, можно сказать, что это вещи, которые позволяют нам работать достаточно хорошо.

Сотрудничество

Победителями становятся те, кто прошел * больше итераций * цикла прогресса - от идеи до ее реализации и реальных результатов. Таким образом, команды-победители - это просто те, кто может пройти этот цикл * быстрее *. - Франсуа Шоле, создатель Keras.

Вышеупомянутая цитата сильно резонирует с нами. В конце конкурса у нас было 144 заявки, и мы пропустили всего пару дней, потому что сроки сильно совпадают с нашими экзаменами и заданиями за последний семестр. Каждый день мы планировали, сколько из пяти доступных ежедневных заявок каждый из нас собирался принимать. И для каждой отправки мы записывали такие детали, как версия данных, список функций, классификатор, оценка перекрестной проверки и результат в таблице лидеров, в Quip. Мы также структурировали наш репозиторий и код таким образом, чтобы мы могли легко менять вещи на GitHub. Объединившись, нам удается пробовать больше мыслей и идей.

Ядро Kaggle

Вычислительная мощность - одно из самых серьезных препятствий на соревнованиях по науке о данных. В этом соревновании размер данных приближается к 200 МБ на начальном этапе и более 400 МБ после разработки функций. Такой объем данных слишком велик для моего бедного ноутбука - он быстро перегревается и кричит от боли.

К счастью, Kaggle, онлайн-сайт специалистов по обработке данных и конкурентов, БЕСПЛАТНО предоставляет замечательную функцию под названием Kernel. Ядро Kaggle в основном похоже на запуск вашего Jupyter Notebook / скрипта в облаке. Имеет отличные характеристики и позволяет вашему скрипту работать до 9 часов.

Просто загрузите свой набор данных и скрипт в Kaggle, и вы сможете проводить до 8 экспериментов одновременно! Наличие этой БЕСПЛАТНОЙ (я забыл упомянуть об этом?) вычислительной мощности действительно помогло нам, поскольку каждый эксперимент от начала до конца мог занять более 2 часов.

Функциональная инженерия

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

  1. Сначала мы рассчитали продолжительность каждой траектории.
  2. Затем мы вычислили пройденное расстояние для каждой незавершенной траектории.
  3. Учитывая как общую продолжительность, так и общее расстояние, пройденное по незавершенной траектории, мы могли вычислить среднюю скорость каждого устройства.
  4. После этого мы вычислили расстояние, необходимое для выхода / входа в центр города по конечной траектории.

5. Наконец, мы можем рассчитать, используя формулу слева, чтобы указать, насколько вероятно, что устройство может выйти (или войти, в зависимости от заданного значения) из центра города, исходя из его прошлой средней скорости и продолжительности конечной траектории.

Этот набор функций стал нашей самой эффективной функцией, основанной на SHAP. Еще одним заслуживающим внимания набором характеристик, указывающих на его склонность оставаться внутри или за пределами центра города.

Что пошло не так?

Это было краеугольным камнем неумелого специалиста по обработке данных из-за полного отсутствия опыта. Главный ингредиент классической встряски между общедоступной и частной таблицей лидеров:

Мы не доверяли нашей оценке перекрестной проверки

- и результат был катастрофическим. Мы переоснастили публичную таблицу лидеров.

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

Публичная таблица лидеров была рассчитана с использованием только части общих данных тестирования, которые после конкурса, как мы знаем, были примерно на 1/3 общедоступными и 2/3 частными. Оглядываясь назад, мы всегда должны были доверять нашей локальной перекрестной проверке, учитывая, что у нас была надежная реализация, чтобы направлять нас. Эта некомпетентность заставила нас, возможно, отклониться от лучшего решения и не выбрать наше лучшее решение в качестве окончательного.

Эпилог

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

Я бесконечно благодарен всем, кто сделал это возможным. Спасибо компании «Эрнст энд Янг» за организацию этого мероприятия. И наконец, спасибо, что прочитали. Надеюсь, эта история может быть вам полезна.