Изучение города Милан

1. Введение

Теперь, когда вы обладаете навыками и инструментами для использования данных о местоположении для изучения географического местоположения, в течение двух недель у вас будет возможность проявить творческий подход и придумать идею, как использовать Данные о местоположении Foursquare, чтобы изучить или сравнить районы или города по вашему выбору или придумать проблему, для решения которой можно использовать данные о местоположении Foursquare. Если вы не можете придумать идею или проблему, вот несколько идей, которые помогут вам начать:

  1. В Модуле 3 мы исследовали Нью-Йорк и город Торонто, а также сегментировали и группировали их районы. Оба города очень разнообразны и являются финансовыми столицами своих стран. Одной из интересных идей было бы сравнить окрестности двух городов и определить, насколько они похожи или непохожи. Нью-Йорк больше похож на Торонто, Париж или какой-то другой мультикультурный город? Я оставлю это вам, чтобы уточнить эту идею.
  2. Если в выбранном вами городе кто-то хочет открыть ресторан, где бы вы порекомендовали его открыть? Точно так же, если подрядчик пытается начать свой собственный бизнес, где бы вы порекомендовали ему открыть свой офис?

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

Вот я и решил попытаться ответить на простой вопрос: где бы вы порекомендовали открыть новый ресторан?

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

Для ответа на первоначальный вопрос был выбран город Милан, город на севере Италии, столица Ломбардии и второй по численности населения город в Италии после Рима. Его постоянно застраиваемая городская территория, простирающаяся далеко за пределы административного мегаполиса, является четвертой по величине в ЕС с населением 5,27 миллиона человек.

Милан считается ведущим альфа-глобальным городом с сильными сторонами в области искусства, торговли, дизайна, образования, развлечений, моды, финансов, здравоохранения, средств массовой информации, услуг, исследований и туризма. В его деловом районе находится фондовая биржа Италии (итал. Borsa Italiana), а также штаб-квартиры национальных и международных банков и компаний. С точки зрения ВВП, он имеет вторую по величине экономику среди городов ЕС после Парижа и является самым богатым среди нестоличных городов ЕС. Милан также считается частью «Голубого банана» и одним из «четырех европейских моторов».

Давайте посмотрим, сколько существует окрестностей и как они распределены:

Как видите их много, поэтому город тоже делится на районы (муниципи):

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

1.2. Целевая аудитория

  1. Бизнес-предприниматель, который хочет открыть новый ресторан в Милане.
  2. Бизнес-аналитик или специалист по данным, которые хотят проанализировать окрестности Милана с помощью Python, ноутбука Jupiter и некоторых методов машинного обучения.
  3. Кому-то интересны данные, которые хотят иметь представление, насколько выгодно открывать ресторан и каковы плюсы и минусы этого бизнеса.

2. Раздел данных

Прежде всего, нам нужна некоторая информация о районе Милана, такая как город\районы, население, широта\долгота и т. д., поэтому я думаю, что Википедия - это первое место, где можно посмотреть:

https://it.wikipedia.org/wiki/Municipi_di_Milano

Район 9 со следующими координатами:

Теперь мне нужно найти список всех районов с соответствующим районом. К сожалению, таблицы в Википедии устарели, поэтому я нашел эту статью на официальном сайте Милана:

https://www.pgt.comune.milano.it/sites/default/files/allegati/NIL_Intro.pdf

Очистить pdf-файл было невозможно, поэтому я создал и загрузил этот набор данных на github:

https://raw.githubusercontent.com/lazzarusd/Coursera_Capstone/master/file/Milano_Municipi_NIL.csv

Это образец:

Примечание: информация о средней цене на землю взята с этих двух веб-сайтов (национальные ориентиры рынка недвижимости в Италии):

https://www.immobiliare.it/mercato-immobiliare/lombardia/milano/

https://www.mercato-immobiliare.info/lombardia/milano/milano.html

Для последнего шага мне нужно получить координаты каждого района.

К счастью, Управление статистики Милана создало очень интересный портал об открытых данных https://dati.comune.milano.it/ (лицензия Creative Commons http://www.opendefinition.org/licenses/cc-by) и я нашел то, что искал: шейп-файл (GeoJSON).

https://dati.comune.milano.it/dataset/e8e765fc-d882-40b8-95d8-16ff3d39eb7c/resource/9c4e0776-56fc-4f3d-8a90-f4992a3be426/download/ds964_nil_wm.geojson

После нескольких шагов очистки и подготовки данных конечный результат таков:

Теперь я готов использовать foursquare API https://developer.foursquare.com/docs/places-api/

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

3.1. Понимание бизнеса

Цель этого проекта — найти лучший район Милана для открытия нового ресторана.

3.2. Аналитический подход

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

3.3. Исследование данных

Чтобы изучить данные, я буду использовать «Folium» — библиотеку Python, которая может создавать интерактивную карту листовок с использованием данных координат.
Приведенный выше код является примером того, как проверить центроиды каждого района в Милане.

Еще одна интересная функция — карта GeoJSON. Посмотрим:

Теперь пришло время использовать API Foursquare (Ссылка) для извлечения мест проведения каждого района Милана:

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

Давайте сравним два набора данных:

Как видите, я удалил много дубликатов.

Теперь мы можем использовать набор данных «milan_restaurant_unique» в качестве входных данных для карты фолиума:

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

Посмотрим:

Таким образом, если исключить кафе и пекарню, наиболее популярными будут итальянский ресторан и пиццерия.

Запомним и продолжим наш анализ.

3.4. Кластеризация

Чтобы проанализировать, какой район Милана подходит для открытия нового ресторана, я буду использовать кластеризацию K-средних: тип обучения без учителя, который используется, когда у вас есть неразмеченные данные (т. е. данные без определенных категории или группы). Цель этого алгоритма — найти группы в данных, при этом количество групп представлено переменной K. Алгоритм работает итеративно, чтобы присвоить каждую точку данных одной из K групп на основе предоставленных функций. Точки данных группируются на основе сходства признаков.

Итак, первый шаг — определить лучший вариант "К" с помощью известного аналитического подхода: метода локтя.

Судя по сюжету здесь, я могу легко сказать, что лучший K — это 6.

Наконец, мы можем попытаться сгруппировать окрестности на основе категорий мест проведения и использовать кластеризацию K-средних. 6 кластеров разделены на основе схожих

тип ресторанов, которые принадлежат окрестностям.

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

И объедините, чтобы получить окончательный набор данных:

4. Результат и обсуждение

Прежде чем приступить к анализу всех кластеров, давайте взглянем на карту фолиума:

Как мы видим, каждый кластер принадлежит цвету с разными характеристиками. Вы можете прочитать полный список выше:

Кластер 1 (красный)

Кластер 2 (фиолетовый)

Кластер 3 (голубой)

Кластер 4 (голубой)

Кластер 5 (зеленый)

Кластер 6 (оранжевый)

Вот мы и подошли к концу анализа. Я попытался создать реалистичный сценарий анализа данных, используя несколько различных способов, таких как: парсинг в Википедии, открытые данные от государственного управления (мэр Милана), некоторые мощные библиотеки Python, например. Folium и GeoPandas, API Foursquare и т. д.…

Итак, теперь у нас есть возможность привести некоторые аргументы в пользу кластеров. Давайте посмотрим, что мы нашли:

  1. Наиболее распространенными заведениями в Милане являются итальянский ресторан и пиццерия.
  2. В кластерах 3 и 5 нет итальянского ресторана.
  3. Судя по географическому представлению кластеров, Comasina и Quarto Oggiaro, кажется хорошим местом для открытия итальянского ресторана. Да и цена земли не такая уж и высокая.
  4. Если наша заинтересованная сторона считает, что итальянских ресторанов слишком много, можно также предположить, что Ассиано (кластер 5) может стать отличным местом для открытия веганского/вегетарианского ресторана из-за низкого профиля и цены на землю.

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

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

6. Дальнейшие разработки

Следующие шаги, которые я рекомендую, будут такими:

  • Используйте другой Venue API с большим количеством данных. К сожалению, Foursquare не слишком известен в Италии. В основном пользователи предпочитают Google Maps или Facebook.
  • Найдите и используйте обновленные демографические данные о районе Милана.
  • Попробуйте кластеризацию на основе соседства.

Ура!
Диего Лаззарини

Найдите код в GitHub.

Найдите меня в Linkedin.