Жильберто Филью

История проблемы

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

Цитата из книги Артура Нильсена, исследователя рынка и основателя ACNielsen, Данные рассказывают историю. Ты слушаешь?" говорит: «Цена света меньше, чем цена тьмы.

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

описание проблемы

Ресторан, место общественного питания или закусочная - это коммерческое предприятие, которое готовит и подает еду и напитки клиентам. Еду обычно подают и едят в помещении, однако многие места общественного питания дополнительно предоставляют услуги на вынос и доставку еды. Кухонный бизнес Торонто известен своим разнообразием и конкурентоспособностью.

Разнообразие Торонто гарантирует, что производители их блюд остаются в авангарде кулинарных разработок и разработок продуктов, что делает это место не чем иным, как «раем для гурманов», предлагая вкусы и блюда со всего мира.

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

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

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

Создание нового места для бизнеса может быть сложной задачей, по этой причине некоторые группы клиентов или группы людей могут быть более заинтересованы в этом:

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

Данные

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

  • Википедия Список почтовых индексов Канады: M: это веб-сайт, который предоставляет нам данные о районах и кварталах с почтовыми индексами из Торонто, Онтарио, Канада.
  • Foursquare API: этот инструмент позволяет заинтересованным людям получать данные о местоположении и другие ресурсы с помощью вызовов RESTfull API. Используя этот API, я получу некоторые данные, такие как категории бизнеса в Торонто и особенности кулинарного предпринимательства в этом городе. Помимо этого, я буду использовать этот API для получения информации о местоположении и информации о ресторанах в Торонто.
  • Для данных геолокации будет использоваться Geopy, библиотека Python. Эта библиотека особенно хороша для получения данных о долготе и широте. Но при необходимости будут использованы и некоторые дополнительные инструменты.
  • Если пакеты данных геолокации Python не подходят для наших целей, Геопространственные данные Торонто от Coursera будут использоваться для получения широты и долготы в Торонто по почтовым индексам района.

В качестве источников данных будут использоваться Википедия и API Foursquare. С помощью веб-скрейпинга некоторые геопространственные данные города Торонто будут собраны с веб-сайта Википедии.

После этого данные будут обработаны, а затем будет проведен исследовательский анализ данных путем обработки данных. Алгоритм машинного обучения кластеризации K-средних будет использоваться, чтобы попытаться найти некоторые идеи о совместном предпринимательстве в сфере кухни в Торонто.

Существуют разные методы сбора данных. Эти два метода будут использоваться, потому что они были изучены в этом процессе сертификации. Кроме того, в библиотеках, пакетах и ​​сообществе Python есть много материала для ускорения процесса. Например, если вы хотите изучить более сложные случаи парсинга веб-страниц с помощью Python-пакета BeautifulSoup, вы можете начать свое путешествие здесь: http://beautiful-soup-4.readthedocs.io/en/latest/

В этой работе будут использованы некоторые подсказки от Кузера, например, подсказки для веб-скрейпинга.

Также можно использовать Pandas, другую библиотеку Python, пакет BeautifulSoup или любой другой удобный для вас способ преобразования данных.

Библиотеки, модули и классы Python

Таким образом, здесь используются библиотеки, модули и классы:

  • requests: библиотека для обработки запросов.
  • pandas: библиотека для анализа данных.
  • folium: библиотека для построения карт.
  • numpy: для обработки данных в векторной форме.
  • seaborn: библиотека для обработки графических графиков.
  • geocoder: для получения координат широты и долготы с адреса.
  • matplotlib.pyplot: модуль matplotilb для обработки графических графиков.
  • BeautifulSoup: модуль из bs4 в данные webscrap.
  • Nominatim: класс geopy.geocoders для преобразования адреса в координаты широты и долготы.
  • KMeans: класс sklearn.cluster для кластеризации Kmeans.
  • silhouette_score: класс sklearn.metrics для оценки силуэта
  • cm: модуль matplotlib для цветных карт.
  • colors: модуль matplotlib именованных цветов, поддерживаемых в этой библиотеке
  • Counter: модуль коллекций для хранения элементов в виде ключей словаря и их количества в виде значений словаря.

Веб-парсинг Википедии

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

Здесь мы будем использовать инструменты Python «requests» и «BeautifulSoup». Первый будет служить для отправки запроса, а второй — для очистки веб-страницы. Затем будет создана функция для извлечения важных данных для анализа. Данные будут извлечены в формате словарного списка. Затем они будут преобразованы в фрейм данных библиотекой Python «pandas».

Нижеприведенный кадр данных показывает часть данных, извлеченных из Википедии:

Сбор геопространственных данных

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

https://geocoder.readthedocs.io/index.html.

Учитывая, что этот пакет может быть очень ненадежным, на случай, если мы не сможем получить географические координаты окрестностей с помощью пакета Geocoder, вот ссылка на файл csv, в котором есть географические координаты каждого почтового индекса (ссылка ниже предоставлено Coursera):

Набор геопространственных данных

Важное примечание. Существует ограничение на то, как часто вы можете вызывать функцию geocoder.google. Это 2500 раз в сутки. Этого должно быть более чем достаточно, чтобы можно было ознакомиться с пакетом и применить его для получения географических координат районов в Торонто.

Выполнение функции пришлось остановить, она вошла в неостановимый цикл (обратите внимание на сообщение об ошибке выше). Эта проблема, возможно, связана с необходимостью использовать какой-либо код доступа Google.

Если читатель хочет продолжить попытки использовать эту библиотеку Python для поиска широты и долготы мест проведения мероприятий в Торонто на основе заданных почтовых индексов, поищите информацию о том, как получить ключи доступа для просмотра карт через google и bing, и то, и другое можно использовать с геокодером. Вы можете начать поиск здесь: https://geocoder.readthedocs.io/

For this work, the set of data provided by Coursera will be used, which can be obtained by clicking here.

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

В конце этого раздела карта Торонто с локациями, которые будут представлены для нашего анализа, будет построена с использованием Folium (библиотека Python). Можно будет увеличивать и уменьшать масштаб карты, а также проверять название каждого нанесенного района, просто нажимая на синие кружки.

Приведенный выше кадр данных был объединен с кадром из рисунка 2 в столбце «Почтовый индекс» следующим образом:

С этими данными можно было загрузить карту Торонто с указанием его окрестностей с помощью Folium (библиотека Python, используемая для построения карт):

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

Чтобы иметь доступ к данным Foursquare, вам необходимо создать учетную запись разработчика на платформе. Для получения дополнительной информации посетите: https://developer.foursquare.com/docs/places-api/getting-started/

Первый шаг к сбору информации о ресторанах Торонто — это знание иерархии категорий Foursquare. Это необходимо, потому что каждый API имеет свой собственный способ организации данных. Приведенная ниже ссылка запросит данные о категориях из API Foursquare, и для этого потребуется действительный идентификатор клиента, секрет клиента и версия, используемая при поиске.

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

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

Родительские категории были напечатаны, и для этой цели работы будет выбрана категория «Пищевые продукты».

Приведенная ниже функция вернет все подкатегории продуктов питания, передав им соответствующий идентификатор продукта.

Понимание ответов API Foursquare

Чтобы продолжить, необходимо знать, какие данные возвращает GET-запрос. Для этого анализа была выбрана первая окрестность. Этот анализ данных станет основой для более глубокого понимания Foursquare API.

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

Исследовательский анализ данных (EDA) используется учеными для анализа и просмотра данных и обобщения их максимально важных характеристик. Это обычный шаг в процессе получения информации из данных и регулярного использования методов визуализации.

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

Анализ окрестностей

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

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

Количество кластеров для Kmeans

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

Набор правил k-средних делит фиксированное количество N выборок (сохраненных в матрице записей X) на K непересекающихся кластеров C, каждый из которых определяется с помощью использования предполагаемого µj выборок внутри кластера. Эти средства обычно известны как «центроиды» кластера.

Набор правил K-средних попадает в круг родственников алгоритмов/методов неконтролируемой кластеризации. Для этого круга родственников моделей исследования хотят иметь под рукой набор данных с несколькими наблюдениями без необходимости получения дополнительных меток/инструкций наблюдений. Неконтролируемая кластеризация исследует, как структуры могут вывести функцию для объяснения скрытой формы из немаркированных записей.

Будет использоваться класс Kmeans sklearn.cluster для определения наилучшего количества кластеров для этой модели. Принятые параметры:

  • n_clusters: будет тестироваться диапазон значений от 2 до 31 кластера
  • init: метод k-means++ для оптимизированной инициализации
  • n_init: будет протестировано 300 различных позиций для инициализации этого алгоритма
  • random_state:это случайное число, выбранное для воспроизведения этих результатов

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

Результаты кластеризации K-средних

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

Здесь будет представлен только результат для первого кластера, если хотите увидеть больше, пожалуйста, нажмите здесь!

Кластер 1

Индийский ресторан несет наибольшую ответственность за этот кластер: 5 появлений в первом наиболее распространенном месте в разных районах, за которым следует азиатский ресторан с 4 похождениями. Похоже, что азиатская еда преобладает в этом кластере, и большинство районов из этого кластера находятся в Скарборо, Торонто.

Ниже вы можете увидеть самые популярные районы и рестораны для этого первого кластера:

Вывод

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

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

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

Будущие исследования

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

Это ссылка на репозиторий GitHub для этой статьи.