Введение

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

Проблема

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

Заинтересованные стороны

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

Данные

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

Лондонский набор данных

Ссылка: https://en.wikipedia.org/wiki/List_of_London_boroughs и https://en.wikipedia.org/wiki/List_of_areas_of_London

Окрестности не были доступны в формате .csv, поэтому мы удалили Википедию, чтобы собрать эти данные. Впоследствии данные были очищены. По очистке данных были отброшены ненужные нам столбцы и координаты столбца (51°37′31″N 0°09′06″W / 51.6252°N 0.1517°W ) сначала были разделены, а затем их строки, такие как N, W, E и знак градуса, были удалены. Затем мы умножили данные со строкой W(West) на минус единицу, потому что, когда долгота расположена на западе, результат будет отрицательным. После изучения данных с помощью Foursquare они были сгруппированы с использованием алгоритмов k-Means и промаркированы. Итак, без лишних слов, вот захватывающее соревнование по туристической версии между этими двумя городами.

Набор данных Нью-Йорка

Ссылка: https://geo.nyu.edu/catalog/nyu_2451_34572

Этот точечный файл названий районов города Нью-Йорка был создан в качестве справочника по районам города Нью-Йорка, которые появляются на веб-ресурсе «Нью-Йорк: город районов». идеально рассматривать в масштабе 1:50,000. Этот набор данных предоставит адреса районов Нью-Йорка в формате JSON.

API-интерфейс Foursquare

Ссылка: https://developer.foursquare.com/docs

Foursquare API, поставщик данных о местоположении, будет использоваться для вызовов RESTful API для получения данных о местах проведения мероприятий в разных районах. Это ссылка на Иерархию категорий мест проведения Foursquare. Места, полученные из всех районов, в целом подразделяются на Искусство и развлечения, Колледж и университет, Событие, Еда, Ночная жизнь, На открытом воздухе и отдых и т. д.

Методология

Загрузите и изучите набор данных Лондона и Нью-Йорка

Чтобы сегментировать окрестности двух городов, требуются наборы данных, содержащие 5 районов и районы, существующие в каждом районе, с соответствующими координатами широты и долготы. Эти наборы данных готовятся, как упоминалось ранее. Сначала для набора данных по Лондону мы очистили его страницу в Википедии, а затем очистили набор данных, а для набора данных по Нью-Йорку. После загрузки файла .json он анализируется, чтобы понять структуру файла. Словарь Python возвращается по URL-адресу, и все соответствующие данные находятся в ключе функций, который в основном представляет собой список окрестностей. Словарь преобразуется во фрейм данных pandas путем циклического просмотра данных и заполнения строк фрейма данных по одной за раз.

В результате создаются фреймы данных с подробностями района, района, широты и долготы Лондона и района Нью-Йорка.

В результате анализа было обнаружено, что структура данных Лондона состоит из 23 районов и 336 районов, а структура данных Нью-Йорка состоит из 5 районов и 306 районов.

Кроме того, библиотека «geopy» используется для получения значений широты и долготы двух городов, которые были возвращены как Latitude_NYC: 40,71, Longitude_NYC: -74,01 для Нью-Йорка и Latitude_London: 51,5073219, Longitude_London: -0,1276474 для Лондона.

Затем отобранные фреймы данных используются для визуализации путем создания карты Лондона и Нью-Йорка с наложением их районов сверху. Следующие изображения представляют собой карты, сгенерированные с использованием библиотеки python «folium».

Вызовы API RESTful для Foursquare

API Foursquare используется для изучения районов и их сегментации. Для доступа к API определены «CLIENT_ID», «CLIENT_SECRET» и «VERSION».

Чтобы преодолеть избыточность описанного выше процесса, создается функция «getNearbyVenues». Эта функция перебирает все районы Лондона и Нью-Йорка и создает URL-адрес запроса API с радиусом = 500, LIMIT = 100. Ограничение определяет, что должно быть возвращено не более 100 близлежащих мест. Далее делается GET-запрос к API Foursquare и из него извлекается только актуальная информация по каждому ближайшему заведению. Затем данные добавляются в «список» Python. Наконец, «список» Python разворачивается или сглаживается, чтобы добавить его к фрейму данных, возвращаемому функцией.

Затем проверяется размер полученных двух кадров данных. Возвращаемые кадры данных следующие:

На данный момент для каждого города создается два «фрейма данных» Python:

1. «final_london_df» и «nyc_neighborhoods», которые содержат сведения о районе, районе, широте и долготе двух городов.

2. «london_venues» и «nyc_venues», которые представляют собой слияние фрейма данных «окрестности» и его объектов категории «Место проведения», поиск которых осуществляется с «Радиусом» = 500 метров и «Предел» = 100. Кроме того, каждое место имеет свою широту, Долгота и категория.

Исследовательский анализ данных

Объединенные кадры данных «london_venues» и «nyc_venues» содержат всю необходимую информацию. Определяется размер этих двух фреймов данных, и выясняется, что всего имеется 10280 мест проведения для Нью-Йорка и 14921 место проведения для Лондона.

Разработка функций

Вышеупомянутый процесс выполняется с использованием функции «горячего кодирования» библиотеки python «pandas». Одно горячее кодирование преобразует категориальные переменные (которые являются «категорией места проведения») в форму, которая может быть предоставлена ​​​​алгоритмам ML для лучшего прогнозирования.

После преобразования категориальных переменных, как показано выше, столбец «Окрестности» добавляется обратно. Изучается размер нового фрейма данных «nyc_onehot», и обнаруживается, что всего имеется около 10280 точек данных, а для «london_onehot» также имеется около 14921 точек данных. Далее подсчитывается количество площадок каждой категории в каждом районе. Топ-5 «Категорий мест проведения» также можно найти, подсчитав их количество.

Визуализация данных

Эти 10 лучших категорий дополнительно отображаются индивидуально на гистограмме с использованием библиотеки python «seaborn». Создается блок кода, который зацикливает и строит график 10 лучших районов для категории.

график Нью-Йорка

Лондонский график

Затем строки окрестностей группируются вместе, и частота появления каждой категории рассчитывается путем взятия среднего значения.

Поскольку ограничение установлено на 100, API Foursquare будет возвращать множество мест. Затем в созданный фрейм данных добавляются 5 наиболее распространенных категорий мест проведения в соответствующих районах.

Машинное обучение

«k-means» — это неконтролируемый алгоритм машинного обучения, который создает кластеры точек данных, объединенных вместе из-за определенного сходства. Этот алгоритм будет использоваться для подсчета окрестностей для каждой метки кластера для переменного размера кластера.

Для реализации этого алгоритма очень важно определить оптимальное количество кластеров (т.е. k). Для этого есть 2 самых популярных метода, а именно «Метод локтя» и «Метод силуэта».

Метод локтя

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

Ниже приведена реализация этого метода (с различным количеством кластеров от 1 до 49):

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

Силуэтный метод

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

Следующая реализация этого метода будет варьироваться от 2 до 49:

Есть пик при k = 2, k = 5 и k = 6. Два кластера дадут очень широкую классификацию мест проведения. Поэтому количество кластеров Нью-Йорка (т. е. «k») выбрано равным 5.

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

Есть пик при k = 2, k = 3 и k = 5. Кластеры 2 и 3 дадут очень широкую классификацию мест проведения номер кластеризации Лондона будет равен 5.

k-средние

Следующие блоки кода запускают алгоритм k-Means с количеством кластеров = 5 и печатают количество окрестностей, назначенных разным кластерам:

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

Опять же, районы Лондона и Нью-Йорка визуализируются с использованием библиотеки python «folium». Следующие карты генерируются, которые показывают желаемую сегментацию районов двух городов:

Результаты

Нью-Йорк:

Ниже приведены результаты фрейма данных 8 кластеров Нью-Йорка:

Кластер 1

«Автобусная остановка» несет огромную ответственность за этот кластер: 7 случаев в «1-м наиболее распространенном месте» в разных районах, за которым следует «Итальянский ресторан» с 5 появлениями. Кроме того, «Гастроном / Бодега» и «Автобусная остановка» встречаются 4 раза во «Втором по популярности месте». Кроме того, любопытно узнать, что большинство этих районов находится в районе Статен-Айленда в Нью-Йорке. Итак, nyc_cluster_1 — это комбинация «автобусной остановки» и «итальянского ресторана».

Кластер 2

Как мы видим на карте map_nyc_clusters, кластер1 или nyc_cluster_2 является крупнейшим кластером. «Пиццерия» несет огромную ответственность за этот кластер с 32 вхождениями «1-е место по распространенности» в разных районах, за которым следует «Итальянский ресторан» с 29 вхождениями. Кроме того, «Гастроном / Бодега» встречается 22 раза во «2-м наиболее популярном месте». Кроме того, любопытно узнать, что большинство этих районов находятся в районах Нью-Йорка «Квинс» и «Бруклин». Итак, nyc_cluster_2 — это сочетание «пиццерии» и «итальянского ресторана».

Кластер 3

«Бассейн» несет огромную ответственность за этот кластер с 1 появлением в «1-м наиболее распространенном месте». Кроме того, «Зоопарк» встречается 1 раз во «2-м наиболее часто встречающемся месте». Кроме того, любопытно узнать, что большинство этих районов находится в «Бруклинском» районе Нью-Йорка. Итак, nyc_cluster_3 — это комбинация «Пул» и «Зоопарк EXhibit».

Кластер 4

Очевидно, что «Парк» встречается 4 раза в «1-м наиболее часто встречающемся месте». Также «Зоопарк» встречается 2 раза, за которым следует сочетание разных мест с 1 появлением во «2-м наиболее распространенном месте». Вдобавок, это любопытно. знать, что большинство этих районов находятся в районах Нью-Йорка «Квинс», «Статен-Айленд» и «Бронкс». Итак, nyc_cluster_4 — это доминирующий «парковый» кластер.

Кластер 5

Понятно, что в рамках этого кластера курируется только один район «Эмерсон Хилл». Итак, nyc_cluster_5 представляет собой комбинацию «Строительство и ландшафтный дизайн», «Зоопарк».

Обсуждение

Чтобы понять кластеры, были проведены три анализа, а именно:
1. Количество «Район»
2. Количество «1-е место по популярности»
3. Количество «2-е место по популярности». '
Вышеприведенная информация многое говорит о реальности кластеризации на основе показателей сходства между соседями.
Табулирование результатов алгоритма машинного обучения без учителя k-Mean:

Следующее может быть названием кластеров, сегментированных и курируемых алгоритмом неконтролируемого машинного обучения k-Means:
* nyc_cluster_1 — автобусная остановка
* nyc_cluster_2 — пиццерия
* nyc_cluster_3 — бассейн
* nyc_cluster_4 — Парк
* nyc_cluster_5 — Строительство и ландшафтный дизайн

Лондон:

Ниже приведены результаты фрейма данных 8 Clusters of London:

Кластер 1

«Автобусная остановка» несет огромную ответственность за этот кластер: 27 вхождений в «1-е место по распространенности». Кроме того, «Кафе» встречается колоссальные 27 раз во «Втором по популярности месте». Кроме того, любопытно узнать, что большинство этих кварталов находится в районе Барнет лондонского Сити. Итак, Кластер 1 представляет собой комбинацию «Автобусной остановки» и «Кафе».

Кластер 2

«Паб» несет огромную ответственность за этот кластер: 78 случаев в «1-м наиболее распространенном месте» в разных районах, за которым следует «Кофейня» с 23 случаями. Кроме того, «Кофейня» встречается 51 раз во «Втором по распространенности месте». Кроме того, любопытно узнать, что большинство этих районов находятся в районах Нью-Лондона «Кройдон», «Хакни» и «Ричмонд-апон-Темз». Итак, london_cluster_2 — это доминирующий кластер «Pub».

Кластер 3

«Кровать и завтрак» несет огромную ответственность за этот кластер с 12 появлениями в «1-м наиболее распространенном месте». Кроме того, «Кафе» встречается 27 раз во «Втором по популярности месте». Вдобавок, большинство этих районов находятся в районе Хаунслоу в лондонском Сити. Итак, Cluster3 — это комбинация «Кафе» и «Автобусная остановка».

Кластер 4

«Магазин одежды» несет огромную ответственность за этот кластер: 78 случаев в «1-м наиболее распространенном месте» в разных районах. Кроме того, «Кофейня» встречается 67 раз во «Втором по распространенности месте». Кроме того, большинство этих районов находится в районе Бромли в лондонском Сити. Итак, Cluster4 — это сочетание «Магазина одежды» и «Кофейни».

Кластер 5

«Супермаркет» несет огромную ответственность за этот кластер с 16 появлениями в «1-м наиболее распространенном месте» в разных районах. Кроме того, «Продовольственный магазин» встречается 16 раз во «2-м наиболее распространенном месте». Кроме того, любопытно узнать, что большинство этих районов находится в районе Льюишем в лондонском Сити. Таким образом, Cluster5 можно назвать доминирующим кластером «Супермаркет» и «Продовольственный магазин».

Обсуждение

Чтобы понять кластеры, были проведены три анализа, а именно:
1. Количество «Район»
2. Количество «1-е место по популярности»
3. Количество «2-е место по популярности». '
Вышеприведенная информация многое говорит о реальности кластеризации на основе показателей сходства между соседями.
Табулирование результатов алгоритма машинного обучения без учителя k-Mean:

Следующее может быть названием кластеров, сегментированных и курируемых алгоритмом неконтролируемого машинного обучения k-Means:
* london_cluster_1 — кафе
* london_cluster_2 — паб
* london_cluster_3 — Bed & Breakfast
* london_cluster_4 — Кофейня
* london_cluster_5 — Рынок

Вывод

Одно из применений алгоритма кластеризации, k-средних или других, к многомерному набору данных заключается в том, что он дает очень любознательный результат, который можно курировать, что помогает понять и визуализировать данные. Районы Нью-Йорка и Лондона были очень кратко разделены на 5 кластеров, и после анализа их можно было переименовать на основе категорий мест проведения в этом районе и вокруг него. По сравнению с Нью-Йорком, кажется, что районы и районы Лондона являются идеальными местами для позднего завтрака или чашки чая и небольшого перерыва, поскольку мы видим, что «Кофешоп» и «Кафе» являются наиболее распространенными местами в этом городе. город. Результаты этого проекта можно улучшить и сделать более интересными, используя текущий набор данных Лондона и Нью-Йорка, а также платформы API, которые больше заинтересованы в кафе и кофейнях в качестве мест проведения. Масштабы этого проекта можно расширить, чтобы понять динамику каждого района и предложить новому продавцу выгодное место для открытия своего кафе.

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

Записная книжка, созданная Алексом Аклсоном и Полонг Лином для курса Applied Data Science Capstone на Coursera.