Чернобровов АлексейАналитик

Где взять данные для машинного обучения: 3 способа собрать датасет из открытых источников

Мечта каждого data scientist’а – очищенная выборка без ошибок, выбросов и пропущенных значений, но с полным набором данных, необходимых для решения поставленной задачи. Однако, в реальности мы часто имеем дело с некорректной или неполной информацией. А, поскольку эффективность моделей машинного обучения (Machine Learning, ML) напрямую зависит от качества исходного датасета, требуется много времени на его подготовку к моделированию: очистку, нормализацию и генерацию переменных. При этом в первоначальной выборке могут запросто отсутствовать данные, нужные для формирования предикторов и целевых переменных. Таким образом, перед data scientist’ом возникает вопрос обогащения датасета. В этой статье мы рассмотрим 3 легальных способа сбора чужих больших данных для собственных бизнес-задач:

  1. использование готовых датасетов;
  2. работа со веб-платформами, предоставляющими статистику;
  3. использование информации со сторонних сайтов.

 

  1. Готовые датасеты

Структурированные выборки данных по различным тематикам можно загрузить самостоятельно из следующих источников:

1.1 Конкурсные платформы и соревнования по Data Science(DS) и ML, которые предоставляют наборы исходных данных в рамках решения конкретной задачи;

1.2. Интернет-порталы и сообщества по DS и ML, где содержатся датасеты для индивидуального и группового обучения, а также научных исследований;

1.3 Открытые данные – информация машиночитаемого формата, размещенная в Интернете и доступная для всеобщего свободного использования и дальнейшей републикации без ограничений авторского права и других способов контроля [1].

Далее подробно рассмотрен каждый из этих способов.

 

  1. 1 Конкурсные платформы и соревнования по Data Science и Machine Learning

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

  • Russian ML Cup – онлайн-чемпионат по машинному обучению от Mail.Ru Group для взрослых участников (18+) с опытом работы в Data Science – победители получают ценные призы и приглашаются на собеседование в компанию;
  • Boosters.pro - крупнейшая в России и Восточной Европе платформа для проведения индивидуальных и групповых чемпионатов по анализу данных. Ее клиентами которой являются крупные международные и отечественные компании: Авито, Газпром, Росбанк и многие другие. Они ставят перед участниками реальную бизнес-задачу, например, кредитный скоринг, предоставляют исходные данные, оценивают и награждают победителей [3].

На международном уровне наиболее популярными считаются следующие соревновательные площадки [2]:

  • Kaggle– платформа корпорации Google для проведения соревнований по машинному обучению и анализу данных. Организаторами выступают крупные компании: Google, Intel, Mercedes-Benz и т.д., которые сами определяют критерии оценки, сроки и призы своих корпоративных конкурсов. Одновременно идет до 20 соревнований, принять участие в которых может каждый желающий. Победители получают денежные призы в размере от 15-100 тысяч долларов. Кроме того, Kaggle содержит наборы данных, доступные для скачивания и свободного использования даже вне конкурсов.
  • KDD CUP – международный кубок Ассоциации вычислительной техники (ACM) по машинному обучению и анализу данных для команд до 10 человек.  Как правило, основной задачей является решение общественно значимой проблемы, например, предсказание загрязнения воздуха и т.д.  Победители получают денежное вознаграждение и очно презентуют решения на KDD CUP workshop в Лондоне.

 

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

Все участники ML-соревнований получают главный приз - важный опыт
Все участники ML-соревнований получают главный приз - важный опыт

 

2. Интернет-порталы и сообщества по Data Science и Machine Learning

Наиболее крупными площадками по размещению структурированных наборов данных для свободного индивидуального или группового использования в науке, образовании или бизнесе можно найти на следующих ресурсах

Популярными выборками для изучения ML считаются следующие датастеты:

  • Titanic – структурированная выборка о выживших в крушении легендарного корабля;
  • Boston – набор данных о ценах на недвижимость Бостона;
  • Visual Genome – огромная база данных подробно аннотированных изображений.

Также можно воспользоваться следующими источниками:

3. Открытые данные

Открытые данные могут поступать из различных источников, среди которых государственные органы и научные сообщества – наиболее крупные и регулярные поставщики информации. Например, в рамках концепции электронного правительства (e-Government), активно развивающейся по всему миру с начала 2000-х годов [4], многие страны, в числе которых и Россия, создали веб-сайты для распространения информации, обрабатываемой в секторе государственного управления – открытые государственные данные (ОГД).

ОГД публикуются госучреждениями, органами местного самоуправления или организациями, которые находятся в их ведомствах. На портале открытых данных России содержится более 22 тысяч наборов данных в csv-формате по всем направлениям деятельности, от экономики до электроники, как по стране в целом, так и по отдельным регионам [5]. Кроме того, в рамках реализации постановления правительства РФ от 10.07.2013 № 583 каждый субъект федерации и каждое ведомство федерального уровня (министерства, службы, комитеты и т.д.) должны регулярно размещать структурированные массивы данных в машиночитаемых форматах (CSV, JSON, XML) на своих интернет-порталах для всеобщего и бесплатного использования [6]. Например, на портале открытых данных правительства Москвы содержится более 600 датасетов по столице: от реестра предпринимателей до велосипедных парковок.

ОГД представляют собой ненумерованные записи об объектах с минимальным набором описательных характеристик. Например, в датасете по велосипедным парковкам Москвы вы увидите таблицу из 3-х столбцов: наименование парковки, адрес и количество мест. Сведения об удобстве пользования, охране и автоматизации отсутствуют. Поэтому извлечь готовые признаки из набора ОГД не получится, однако, находящиеся в них сведения пригодятся при самостоятельном формирования предикторов.

Также наборы ОГД не содержат агрегированной статистики, например, о величине прожиточного минимума по регионам и т.д. – эту информацию следует искать на сайте Единой межведомственной информационно-статистической системы (ЕМИСС). На портале ЕМИСС данные представлены в различных форматах, как табличных, так и текстовых (XML, DOC), поэтому при их использовании потребуется дополнительное время на конвертацию информации.

Наборы данных по международным организациям, событиям и ситуациям также доступны в свободном режиме или по платной подписке на веб-порталах, аккумулирующих информацию, например, сервис Knoema. Кроме того, можно воспользоваться поисковым инструментов от Google, ориентированным специально на датасеты.

Поиск данных - важная задача для data scientist'а
Поиск данных - важная задача для data scientist'а

 

  1. Веб-платформы со статистикой

Если государственная статистика показывает уже свершившиеся факты, например, количество выданных ипотечных кредитов в регионе, то статистика поисковых запросов свидетельствует о намерениях потенциальных клиентов. Это позволяет понять потребности потребителей, что особенно важно в задачах прогнозирования спроса и другой, не только маркетинговой аналитики. Так можно, например, выявить частоту сезонных ОРВИ-заболеваний по регионам или анализировать загруженность дорог с помощью Яндекс.Карт, чтобы строить оптимальную логистику по доставке товаров или развозу пассажиров.

Для получения статистических данных, в том числе в режиме реального времени, можно воспользоваться программными интерфейсами API (Application Programming Interface), предоставленными сторонними сервисами. Например, API-решения от Google, API различных сервисов Яндекса, трейдинговые системы, которые получают информацию с фондовых, валютных и криптовалютных бирж для автоматизированной торговли ценными бумагами. При этом доступ к набору данных, как правило, в JSON-формате, реализуется через URL-адрес. Дальнейший разбор содержимого JSON-файла data scientist’у придется делать самостоятельно, с помощью собственных скриптов.

Собрать ключевые слова и поисковые фразы, а также определить их частотность и кластеризовать по различным признакам (пол, возраст, регион и т.д.) помогут свободно доступные и коммерческие инструменты для веб-аудита и SEO-продвижения: Wincher, MegaIndex, Similarweb и т.д. Собрать подобную статистику можно самостоятельно, установив на своем сайте счетчики Google Аналитики или Яндекс.Метрики. Также для этого пригодится сервис подбора слов от Яндекса  – именно с его помощью я обогатил исходный датасет в ML-соревновании от Тинькофф Банка, о чем подробно рассказано здесь.  Стоит отметить, что данные сервисы не дают dataset в привычном структурированном виде, поэтому придется самостоятельно заняться препроцессингом данных.

 

  1. Парсинг сторонних сайтов

Далеко не все сайты предоставляют API-интерфейс для автоматического сбора с них нужной информации. В этом случае на помощь приходят технологии парсинга.

Парсинг – это процесс анализа содержимого веб-страниц с помощью роботов-парсеров – специальных программ или скриптов. Самые известные парсеры в сети это роботы поисковых систем, которые анализируют сайты, сохраняют результаты анализа в своих базах, чтобы выдать при поиске наиболее релевантные и актуальные документы. Можно написать свой собственный веб-парсер на Python или PHP для автоматического сбора данных из внешних ресурсов по заданным характеристикам (изображения, ключевые слова и т.д.). Но проще всего найти уже готовые решения, библиотеки которые существуют на всех популярных языках программирования.

Подобное использование информации со сторонних сайтов – пожалуй, наиболее творческий способ обогащения начальной выборки, поскольку он основан на поиске доступных данных от конкурентов или смежных сфер в рамках бизнес-контекста решаемой задачи. Именно так сеть гостиниц Red Roof построила свою маркетинговую стратегию, оперативно предлагая пассажирам задержанных или отмененных рейсов размещение в отелях вблизи аэропортов. Возможные задержки или отмены вылетов вычисляются на основе неблагоприятного прогноза погоды, который является общедоступной информацией, размещенной на множестве веб-сайтов. А максимальное число постояльцев определяется исходя из количества пассажирских мест в самолетах отмененных или задержанных рейсов. По этой информации рассчитывается потенциальная заполненность номерного фонда и строится рекламная кампания по предложению той или иной локации. Такой подход увеличил рост сети на 10% в районах, охваченных этой рекламной кампанией [7]. Однако, чтобы применять данный метод в реальности, data scientist должен глубоко погрузиться в прикладную специфику анализируемой отрасли. Кроме того, требуется дополнительная обработка данных, полученных в результате парсинга, чтобы использовать эту информацию для построения предикторов в своей ML-модели. Как правило, это означает написание дополнительных скриптов для обработки полученных данных.

Идеальный датасет - это очищенная выборка без ошибок, выбросов и пропущенных значений, но с полным набором данных, необходимых для решения поставленной задачи
Идеальный датасет - это очищенная выборка без ошибок, выбросов и пропущенных значений, но с полным набором данных, необходимых для решения поставленной задачи

 

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

 

Источники

  1. https://ru.wikipedia.org/wiki/Открытые_данные
  2. http://samag.ru/archive/article/3718
  3. https://boosters.pro/about
  4. https://ru.wikipedia.org/wiki/Электронное_правительство
  5. https://data.gov.ru/
  6. https://rulaws.ru/goverment/Postanovlenie-Pravitelstva-RF-ot-10.07.2013-N-583/
  7. https://www.forbes.com/sites/bernardmarr/2016/01/26/how-big-data-and-analytics-changing-hotels-and-the-hospitality-industry/#6deb5ee21c22

Контакты