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


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


С того момента прошло уже больше двух лет и вот у меня дошли руки поделится с вами своим небольшим опытом.


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



Оглавление:
Часть I: Введение
Часть II: Источники данных
Часть III: Есть ли от этого польза?
Часть IV: Заключение



Часть I: Введение


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


Прошу вас не воспринимать мою статью слишком серьезно.


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


Итак, пришла пора сбросить гнет чужих наборов данных и создать свой «лучший в мире» набор данных, чтобы скормить его потом алгоритму или просто построить «самый эксклюзивный» график на свете.



Часть II: Источники данных


Порталы с открытыми данными можно разделить на несколько категорий.


Специальные порталы с данными для машинного обучения и анализа


На этих порталах как правило данные собраны в форматы удобные для машинного анализа. Остается их только скачать и загрузить.


Мне в первую очередь вспоминается Kaggle. На Хабре уже есть хорошая статья про наборы данных у Kaggle и инструменты самостоятельного поиска датасетов для машинного обучения.


Поскольку цель нашей сегодняшней статьи не столько сделать хорошо, сколько сделать что-то самостоятельно с нуля, мы продолжим движение в сторону менее популярных ресурсов.


Порталы открытых данных различных гос. органов и общественных организаций


Хотя концептуально «Открытое правительство» в России начало формироваться в начале 2010-х годов, лично мне более-менее адекватные данные обычно удавалось найти примерно за период с 2015 года и позже.


На Хабре уже есть критика порталов с открытыми данными РФ от 2017 года. С тех пор ситуация стала лучше. У некоторых порталов даже появись API для доступа. Однако, все равно остается ощущения, что часто данные собирается по принципу: «Нам тут начальство приказало данные открыть, вот вам кушаете не обляпайтесь».


Рассмотрим основные популярные порталы открытых данных.


Портал открытых данных РФ


Портал оставляет не однозначное впечатление. С одной стороны, у портала есть API для доступа к данным и множество разных датасетов.


С другой стороны на портале, часто можно встретить заброшенные и бесполезные наборы данных, например:


  • заброшенный набор данных об активных пользователях сети интернет, в котором полезной статистики меньше чем метаданных.
  • или набор данных, который нам привез сам «почтальон печкин».


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


Я думаю, результат получится не менее убедительным чем на графике про связь фильмов Николаса Кейджа и падение людей в бассейн.


Портал открытых г. Москвы


У портала открытых данных г. Москвы, тоже есть API для доступа к данным.
Сами данные при этом ведутся более порядочно, чем у федерального ресурса.


На сайте есть как геоданные (объекты с привязкой к координатам), так и просто статистика.


В качестве достаточно простого кейса по созданию своего набора данных можно например, скрестить два набора данных и поискать зависимости между данными вызовов подразделений пожарно-спасательного гарнизона города Москвы по административным округам и данными по количеству выявленных общественными пунктами охраны порядка в городе Москве фактов незаконной сдачи жилья в аренду (поднаем) по административным округам Если найдете что-нибудь интересное отпишитесь в комментарии.


Другие стандартизованные источники


У «Северной столицы», тоже есть свой портал открытых данных.
И у других городов РФ тоже есть аналогичные порталы, но они остаются вам на самостоятельное изучение.


Открытые данные можно найти у разных министерств и ведомств, например, у Минтруда.


Также вполне интересно изучить открытые данные Республики Беларусь.


Сайты с информацией


Помимо ресурсов, в том или ином виде адаптированных под концепцию «Открытого правительства» существует множество других сайтов с полезной статистической информацией, например:


  • Центробанк РФ – множество различных экономических показателей, для анализа.
  • Народный мониторинг – данные для любителей временных трендов. Если зарегистрироваться на портале, то можно выбрать любую любительскую точку мониторинга погоды и скачать данные о погоде в формате .csv. (без регистрации кнопка не доступна).
  • Сайты поставщики данных спортивной статистики, например, у Sportradar есть пробный доступ к API. При желании можно найти кучу информации по разным видам спорта и национальным чемпионатам. От количества побед команды до количества мячей, которые футболист забил головой.
  • Национальная электронная библиотека предоставляет данные по издательствам и научным статьям, сводки правда без привязки к датам, но помимо готовых сводок можно с помощью поиска самостоятельно собрать те или иные данные по публикационной активности.

Отчеты, аналитические записки и прочие данные для ручной обработки


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


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


Я в свое время собрал данные мэрии Москвы. Мэрия предлагает нам данные о количестве обращений в бумажном и электронном форматах, количестве положительных и отрицательных решений и относительному количеству обращений по административным округам Москвы. Всю эту информацию с января 2016 по август 2020 я выложил на GitHub.
Вы можете попробовать обработать данные по другим городам, например по Санкт-Петербургу, Твери или Новосибирску.


Также интересные данные можно найти в отчетах по травматизму, например, в сфере энергетики (Ростехнадзор, Минэерго).



Часть III: Есть ли от этого польза?


На самом деле в силу малого опыта в анализе данных ответить на вопрос заголовка убедительно мне будет затруднительно. Может быть матерые специалисты скажут, что в создании своего набора данных смысла нет и это пустая трата времени.


Но вот, что полезного я вынес для себя в итоге:


  1. С точки зрения понимания принципов работы с популярными библиотеками данных на Python (или другом языке) собрать хоть один датасет своими руками будет познавательно. Особенно это полезно, когда в процессе возникают какие-нибудь ошибки в формате или наполнении файла.
  2. Пока ищешь или собираешь данные начинаешь постепенно планировать эксперимент, причем не один.
  3. Как правило неоткуда взять готовое решение или интерпретацию результатов. Полезно попытаться самому понять, что в итоге получилось даже если результаты вышли безумными и не имеют никакого практического применения. Особенно полезно понять, что сами по себе библиотеки и программы для машинного обучения чудес не делают и если данные плохие или сам анализ не продуман, то и результат будет так себе.
  4. В процессе сбора данных иногда можно найти явные ошибки, неточности и несоответствия. В упомянутом выше наборе про обращения граждан в мэрию Москвы, точно есть аномальные данные, которые выглядят как «копипаст», также были ошибки с указанием итоговых значений вместо фактических. Понимание, того, что все мы люди и можем ошибаться, помогает лучше понять проблемы и необходимость обработки реальных данных для машинного обучения.
  5. Полученные результаты можно разместить в общем доступе, вдруг они кому-нибудь однажды будут полезны.


Часть IV: Заключение


Подводя итог хочется призвать всех, кто только начал интересоваться машинным обучением и анализом данных попробовать создать своё «велосипед», причем не только датасеты но и программную часть, чтобы наука о данных не казалось вам магией.


Вот и закончилась статья, которую я не мог написать больше двух лет, но как говорится: «Лучше поздно чем никогда», прям на душе стало спокойно.


Желаю всем бодрого настроения и здоровья в эти нелегкие осенние месяцы.


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


UPD:
Статья на Хабре про источники с датасетами изображений от wadik69