2021-02-07 21:39:17
На днях увидела интересную работу(https://ieeexplore.ieee.org/document/8406847), где довольно простым способом авторы автоматически выделяли функциональные зоны в городе. Имея под рукой данные по инфраструктуре Москвы с data,mos.ru захотела повторить подобный эксперимент.
Алгоритм следующий:
1. Выгружаются списки POIs для каждой локации, все слова нормализуются и удаляются "стоп-слова". На первый раз взяла только данные магазинов .
2. Вычисляется матрица tf-idf (https://ru.wikipedia.org/wiki/TF-IDF). Пример на python здесь
3. С помощью алгоритма кластеризации ( для пробы взяла k-means) локации делятся на кластеры
4. Для каждого кластера составляются облака слов, показывающие самые частые словосочетания
5. Кластеры отображают на карте разными цветами
.Заранее скажу, что это пробная попытка, цель которой - увидеть насколько хорошо можно выделять зоны в Москве ( в пределах МКАД), не погружаясь в детальный анализ и обработку "грязных" данных.
Хотя, безусловно, это может быть первым шагом в задачах не соответствия инфраструктуры потребностям жителей, например, в обнаружении, так называемых, "food deserts" - мест без продуктовых магазинов в шаговой доступности. Также для бизнеса - это быстрый способ оценить уровень конкуренции в определенном районе.
Результаты анализа:
- Карта с кластерами сформированными на основе наименований магазинов. Единица оценки - гексагон системы H3 радиусом 174 метра.
- Облака слов, позволяющие понять специфику каждого кластера из магазинов- показывают 100 самых частых слов в списке POIs.
Выводы:
1. Территория делится на 4 кластера - это оптимальное число, определенное "методом локтя"
2. Порядка 8% территории ( кластер №1) не покрыты никакими магазинами. Большая часть это парковые зоны, однако есть и жилые районы.
3. Центр города и, похоже, торговые центры- ( кластер №0) зона высокого разнообразия магазинов. Нет одного ярко выделенного сегмента
4. 50% территории приходится на жилые районы. Из них на 32% ( кластер №2) преобладают продуктовые магазины, и на остальных 20% ( кластер №3) магазины одежды. Причем кластер 2 распределен равномерно, то участки, относящиеся к кластеру №3 представляют собой островки.
Потенциальное улучшение : добавление данных о других POIs, использование других типов кластеризации, например, иерархической, разделение центральных зон и жилых за счет добавления координат и флага центральности района в модель кластеризации.
Я пока не стала добавлять новые данные по инфраструктуре, но мне стало интересно наложить получившиеся кластеры на кластеры, построенные на интересах людей в городе, рассчитанных компанией Locomizer. Что получилось - следующий пост + с меня ссылка на Github с кодом проекта
832 viewsincitydata, 18:39