1. Введение

Йоханнесбург, неофициально известный как Йози, Йобург или «Золотой город», является крупнейшим городом в Южной Африке и одним из 50 крупнейших городских районов мира¹. Это столица провинции и крупнейший город Гаутенга, самой богатой провинции Южной Африки. Йоханнесбург является резиденцией Конституционного суда, высшей судебной инстанции в Южной Африке. Город расположен в горной цепи Витватерсранд, богатой полезными ископаемыми, и является центром крупномасштабной торговли золотом и алмазами. Это был один из городов-организаторов официального турнира чемпионата мира по футболу 2010 года.

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

1.1 Бизнес-проблема

Предположим, что есть подрядчик, пытающийся открыть ресторан в муниципалитете Йоханнесбурга. Как мы можем использовать современные методы машинного обучения для определения подходящих мест?
Чтобы начать отвечать на вопрос, разумно спросить, что делает хороший место для размещения ресторана? Вот некоторые из ключевых особенностей, которые следует учитывать при открытии нового ресторана:

  • Видимость. Городские районы, как правило, имеют большой автомобильный и пешеходный трафик. Следовательно, размещение ресторана в городах было бы хорошим выбором. Тем не менее, можно найти места, которые обеспечивают хорошую видимость для ресторана, но также имеют высокий уровень преступности. Такие площади не лучшим образом подходят для ресторана семейного типа.
  • Парковка. Места рядом с автостоянками также будут хорошим выбором. Идеально было бы иметь ресторан со своей парковкой.
  • Доступность. Было бы выгодно построить ресторан через дорогу с относительно низким ограничением скорости и интенсивным автомобильным движением. Предположительно вокруг съездов с шоссе/шоссе. Что касается пешеходного движения, идеальным было бы расположение рядом с урбанизированными районами. Внутри торговых центров идеальным местом для ресторана будет фуд-корт или рядом с ним.

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

1.2 Набор данных

Для этого проекта я использовал данные о местоположении с https://adi45.carto.com/tables/metropolitan_suburbs_region/public/map.

После загрузки файла geojson с этого веб-сайта и загрузки набора данных в блокнот Jupyter набор данных содержит необходимую нам информацию, такую ​​как название провинции, пригород (также известный как район в странах Содружества) , главное место, местный муниципалитет (также известный как район в некоторых англоязычных странах), координаты широты и долготы мест. Существует также другая информация, такая как численность чернокожих, цветных людей (термин, относящийся к людям смешанной расы в Южной Африке) и белых людей. Хотя эта информация может быть полезной, когда речь идет о выборе мест, в которых проживают люди с самым высоким средним доходом, и мест с высоким пешеходным трафиком, она может вводить в заблуждение, поскольку плотность населения не обязательно означает большее количество клиентов . Поэтому я сделал выбор признаков и решил отказаться от данных о населении. В таблице ниже показаны соответствующие функции после их выбора.

С этими данными о местоположении я затем использовал API Foursquare, который представляет собой локальное мобильное приложение для поиска и обнаружения, разработанное Foursquare Labs Inc.. Приложение предоставляет персонализированные рекомендации о местах, где можно пройти рядом с текущим местоположением пользователя, на основе предыдущей истории просмотров пользователей и истории регистрации». Таким образом, в основном это приложение можно использовать для определения местоположения. Как поясняется на странице Википедии Foursquare: «Когда пользователи соглашаются на постоянный обмен данными о местоположении, Pilgrim определяет текущее местоположение пользователя, сравнивая исторические данные регистрации с текущим сигналом GPS пользователя, триангуляцией вышек сотовой связи, уровнем сигнала сотовой связи и окружающей средой. Сигналы Wi-Fi.

Таким образом, Foursquare использует информацию о местоположении и частоте посещений, чтобы «узнать», что нравится пользователю, что направлено на улучшение рекомендаций для пользователей и оценку популярности заведения.

С данными о местоположении мне пришлось обращаться к API Foursquare, чтобы найти наиболее распространенные места в пригороде Йоханнесбурга, создав URL-адрес для отправки запроса в API для поиска определенного типа мест и изучения географического местоположения. . Кроме того, до этого я использовал библиотеку визуализации Folium, чтобы визуализировать пригороды в Йоханнесбурге и выяснить, насколько велик размер набора данных. В муниципалитете Йоханнесбурга было 659 пригородов, как показано на карте ниже (каждая из синих точек — это пригород в местном муниципалитете).

Так как я анализировал самые распространенные места в пределах 500 метров в каждом пригороде, я решил ограничить количество самых распространенных мест до 100 мест.

2. Методология

Поскольку в наборе данных для этой конкретной проблемы нет меток, обучение без учителя лучше всего подходит для решения этой проблемы. В частности, алгоритмы кластеризации, такие как кластеризация k-средних и DBSCAN, являются хорошими кандидатами для работы с данными о местоположении. Алгоритм кластеризации k-средних автоматически создает кластеры и использует средние значения экземпляров для определения центра кластера. В общем, алгоритм кластеризации k-средних потребует от нас угадать начальное количество k кластеров, допустим, что мы выбираем k = 3. Далее он выбирает k начальных центров кластеров, а затем итеративно уточняет их следующим образом:

1. Каждый экземпляр Di назначается ближайшему кластеру. (назначение кластера)

2. Каждый центр кластера Cj обновляется, чтобы быть средним значением составляющих его экземпляров².

Алгоритм кластеризации k-средних перестает обновляться после того, как три центра кластеризации перестают двигаться.

Для этого проекта необходимо было использовать предварительную обработку данных, поскольку кластеризация k-средних чувствительна к используемым функциям. На самом деле, если данные не были предварительно обработаны, я обнаружил, что оптимальные значения k возникают после k > 300, но когда данные предварительно обработаны, оптимальные значения были k = 2, k = 5 и k = 7. Очистка данных была необходима, так как были пригороды, в которых не было нужной информации о местоположении, я их удалил. Как упоминалось ранее, выбор функций был сделан для выбора соответствующих функций и удаления избыточных. Масштабирование функций, в частности нормализация, также было выполнено, чтобы гарантировать создание хороших кластеров, а также игнорирование избыточных данных, чтобы повысить эффективность алгоритма кластеризации.

3. Результаты

Перед запуском алгоритма кластеризации k-средних нам нужно выбрать количество центров кластеризации. Либо путем проверки данных, либо с помощью так называемого метода локтя.

Поскольку четкого изгиба не существует, мы можем перейти к сравнению показателей силуэта для каждого значения k. Значение силуэта является мерой того, насколько объект похож на свой собственный кластер (сплоченность) по сравнению с другими кластерами (разделение). Силуэт варьируется от -1 до +1, где высокое значение указывает на то, что объект хорошо соответствует своему собственному кластеру и плохо соответствует соседним кластерам. Если большинство объектов имеет высокое значение, конфигурация кластеризации подходит. Если многие точки имеют низкое или отрицательное значение, то в конфигурации кластеризации может быть слишком много или слишком мало кластеров. Также обратите внимание, что диапазон k на приведенном ниже графике составляет от 2 до 50, поскольку для вычисления оценки силуэта необходимо 2 кластера.

Как мы видим, оптимальные значения k находятся при k = 2, k = 6, k = 11 и k = 14. Однако выбор низкого значения k, такого как k = 2, приведет к потере информации (недостаточная сегментация). Например, в кластере один могут быть пабы, парки, отели и торговые центры, которые в равной степени доминируют над кластером, а в кластере два могут быть рестораны, стадионы и парки, которые в равной степени доминируют над кластером. Цель состоит в том, чтобы искать скрытые закономерности в кластерах. Другими словами, наличие кластеров, которые выявляют четкие закономерности. Однако выбор k = 11 или 14 может привести к потере интерпретируемости (чрезмерной сегментации), а также мы можем видеть, что оценки силуэта для k = 11 и 14 намного хуже, чем для k = 2. Следовательно, выбор k = 6 является лучшим выбором.

Итак, после запуска алгоритма k-средних с k = 6 была получена карта, показывающая кластеры. Показано ниже.

Таблица 1 ниже представляет собой список наиболее часто появляющихся мест и основных мест для каждого кластера, а числа в скобках — это режимы соответствующего места и основного места. Блокнот Jupyter содержит список всех результатов. Тем не менее, список наиболее значимых результатов находится в столбцах «1-е место по популярности» и «2-е место по популярности». Основные места содержат пригороды, на которые мы можем захотеть взглянуть. Другими словами, основные места — это компактный способ группировки пригородов. Также следует отметить, что Йоханнесбург является одновременно и городом, и главным местом. Более того, иногда муниципалитет Йоханнесбурга называют Йоханнесбургом.

4. Обсуждение

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

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

В кластере 2 преобладают объекты строительства и благоустройства. Это кажется правдоподобным, поскольку в некоторых районах Йоханнесбурга все еще есть слаборазвитые районы, называемые «поселками». Некоторые из этих мест, как правило, находятся ближе к богатым пригородам, и таким примером является городок под названием Александра, который находится очень близко к пригороду Сэндтона. Возможно, это объясняет, почему третьим по распространенности местом в этом кластере была йога-студия.

В кластере 3 преобладают заправочные станции. В целом это не лучший кластер для открытия ресторана, хотя и предполагает большой автомобильный трафик. В таких местах, как Соуэто, большинство людей полагаются на общественный транспорт. Микроавтобусы, которые обычно вмещают 15 человек, и автобусы, которые могут вместить 60+ человек. Однако из-за большого автомобильного трафика в этом кластере, возможно, он подойдет для рекламы ресторана с помощью билбордов. Однако ресторан можно построить ближе к йога-студиям, чем к заправочным станциям.

Кластер 4 и 5 несколько идентичны друг другу. В отличие от кластеров 1 и 3, наиболее распространенными местами проведения являются рестораны, а не продуктовый магазин или заправочная станция. Опять же, иметь ресторан рядом с конкурентами — не обязательно плохая идея.
Таким образом, кластеры 4 и 5 по-прежнему являются хорошим местом для открытия ресторана. Однако в кластере 4 людям нравится ходить в рестораны в целом, а в кластере 5 людям нравятся африканские рестораны.

5. Заключение

Кластеры 0, 4 и 5 — отличные места для открытия ресторана. На карте это пригороды, выделенные красным, зеленым и оранжевым цветом соответственно. Затем эти места на карте нужно будет проверить на видимость и доступность ресторана, когда он будет построен. Кроме того, поскольку места возле съездов с шоссе могут стать хорошими местами для нового ресторана, такие места теперь можно найти на карте.
Кроме того, несмотря на то, что нет ни одного кластера, в котором явно преобладают футбольные стадионы, Глядя на максимальную вместимость стадионов и тот факт, что концерты также могут проходить, кажется хорошей идеей иметь ресторан, рекламируемый или построенный без рекламы. далеко крупный стадион. Из-за пешеходного и автомобильного трафика, который может возникнуть в будние дни и в особых случаях.

Будущая работа

Было бы интересно посмотреть, сколько и каких кластеров создаст алгоритм DBSCAN при правильных значениях гиперпараметров. Алгоритм DBSCAN также хорошо подходит для использования с данными о местоположении и не требует от нас заранее угадывать количество центров кластеризации k. Этот проект также может быть изменен для решения других бизнес-задач, например, где в Йоханнесбурге открыть офис. Однако я считаю, что для определения подходящего местоположения офиса, возможно, придется использовать другой набор данных. В частности, использование профилей скорости, плотности трафика и наборов статистических данных для муниципалитета Йоханнесбурга может помочь решить эту бизнес-проблему.

Пожалуйста, поделитесь этим постом, если он вам понравился. Спасибо. :)

Нажмите здесь, чтобы открыть блокнот Jupyter. NB: я адаптировал его из записной книжки, созданной Алексом Аклсоном и Полонг Лином. Из курса IBM Applied Data Science Capstone Project Coursera.

Подробный отчет можно найти в моем репозитории на github здесь.

использованная литература

[1] https://www.citypopulation.de/en/world/agglomerations/

[2] Вагстафф К., Карди К., Роджерс С. и Шредл С., 2001 г., июнь. Ограниченная кластеризация k-средних с фоновыми знаниями. В Icml (том 1, стр. 577–584).

[3] https://www.projectrhea.org/rhea/index.php/SlectureDavidRunyanCS662Spring14

https://stanford.edu/~cpiech/cs221/handouts/kmeans.html