Кластеризация районов Будапешта с использованием данных служб определения местоположения

Знакомиться с городом не всегда просто, особенно если речь идет о столицах стран с десятками районов. Во многих случаях может быть полезно сгруппировать похожие районы, чтобы лучше понять, чего ожидать при посещении определенных частей города. В Будапеште более 160 районов. Обрабатывать и группировать их вручную — огромные накладные расходы. С другой стороны, кажется очевидным использовать для анализа данные сервисов определения местоположения, где люди уже указывают, какие точки их интересуют.

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

Я использовал Jupyter Notbook/Python при обработке/анализе данных. Для начала я извлек названия районов Будапешта из статьи Википедии. Кроме того, я собрал данные GPS из базы данных Nominatim. Данные о площадках поступали из API службы определения местоположения FourSquare.







Я нанес районы Будапешта на карту Folium:

Используя данные FourSquare, я собрал площадки для каждого района:

После этого я создал фрейм данных pandas, который содержит 10 лучших мест для каждого района:

Я использовал эту таблицу в качестве входных данных для кластеризации методом k-средних. Для полученных кластеров я создал карту Folium вместе с WordCloud для лучших категорий мест проведения.

Все кластеры на одной карте:

Кластер 0 — Горячие точки:

Кластер 1 — Тихие места:

Кластер 2 — аванпосты пригородных поездов:

Вот и все, спасибо, что прочитали этот блог!

Если вас интересует код Jupyter/Python более подробно, вы можете найти его на GitHub вместе с интерактивными картами: