Этот пост посвящен проекту Capstone в курсе IBM Applied Data Science Capstone, размещенном на Coursera. Проект использует знания, полученные на предыдущих курсах специализации, и применяет их для решения реальной проблемы, связанной с данными.

1. ВВЕДЕНИЕ

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

Почему Нью-Йорк?

Район Нью-Йорка является домом для крупнейшего американского индейского населения среди мегаполисов со значительным отрывом и представляет собой вторую по величине столичную азиатскую национальную диаспору как за пределами Азии, так и в пределах столичного района Нью-Йорка (источник — Википедия).

Индустрия гостеприимства

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

2. ПОСТАНОВКА ЗАДАЧИ

Цель состоит в том, чтобы найти подходящее место (места) для открытия индийского ресторана в Нью-Йорке, США. В этом проекте используются различные методологии науки о данных и машинного обучения (кластеризация k-средних) для предоставления решения клиенту. Проект направлен на то, чтобы найти решение вопроса: "Где вам следует рассмотреть возможность открытия индийского ресторана в Нью-Йорке?"

3. ДАННЫЕ

Я использовал следующие данные для завершения проекта:

  • Список районов и кварталов Нью-Йорка — содержит координаты всех районов и используется для вызова API Foursquare.
  • Список мест и заведений в Нью-Йорке — содержит данные обо всех близлежащих местах, таких как рестораны, бары, тренажерный зал и т. д.
  • Демография американских индейцев в Нью-Йорке — жизненно важно для понимания распределения целевой аудитории в Нью-Йорке.
  • Данные широты и долготы района (ов) — для построения и визуализации наших данных.

Источники данных указаны в конце поста.

4. МЕТОДОЛОГИЯ

А) Районы

В приведенном выше разделе данных четко указано, что наши данные по Нью-Йорку состоят из районов (город или район) и районов в этих районах. Данные содержат 5 районов — Квинс, Бруклин, Бронкс, Манхэттен и Статен-Айленд, а всего более 300 районов. Итак, прежде чем мы начнем анализ Районов, мы выбираем подходящий Район. Это включает в себя изучение всех 5 из них. Данные фильтруются для каждого района и используются для вызова API Foursquare.

Б) API Foursquare

Центральная часть этого проекта включает использование Foursquare API для получения различных сведений о близлежащих заведениях, таких как — категория (пиццерия, памятник и т. д.), координаты места (в широте и долгота) и название места проведения. Нам нужно объявить наши учетные данные Foursquare, такие как идентификатор клиента и секрет клиента. Мы принимаем значение радиуса 500, которое возвращает места в радиусе полукилометра. Чтобы предотвратить возврат слишком большого количества записей при вызове функции, установлено ограничение в 100.

URL-адрес создается с нашими объявленными учетными данными, и к API выполняется вызов запроса. Возвращаемые данные представлены в виде полезной нагрузки json. Затем кадр данных pandas создается путем чтения частей этих данных. Поэтому создается 5 фреймов данных — по одному для каждого района

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

  1. Существующие индийские рестораны
  2. Демография индийско-американского населения

C) Ранее существовавшие индийские рестораны

Так как мы хотим открыть новый ресторан индийской кухни, полезно заглянуть в уже существующие. Таким образом, мы получаем количество индийских ресторанов (из категории «Место проведения») в каждом районе и объединяем их вместе, чтобы получить представление об их распределении или концентрации. По логике вещей, чтобы избежать конкуренции, было бы разумно выбрать район с небольшим количеством индийских ресторанов.

Видно, что на Манхэттене и в Квинсе больше всего ресторанов, а в Стейтен-Айленде — меньше всего.

D) Демография индейского населения Америки

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

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

E) Первоначальный анализ

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

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

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

Статен-Айленд также можно рассмотреть следующим образом (высокая плотность населения и очень мало мест).

F) Предварительная обработка

  1. Горячее кодирование

Данные, как указано выше, содержат сведения о ближайших объектах — местоположение, категорию и т. д. Эти данные необходимо преобразовать в подходящий формат до кластеризации. Одно горячее кодирование сначала выполняется для атрибута Категория места проведения. Это делается с помощью функции pandas get_dummies(). Кодирование присваивает нашим категориальным данным номинальное значение, поэтому модель не интерпретирует никакие числа как важность или вес.

2. Группировка категорий

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

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

G) Кластеризация

  1. Выбор значения k

k означает — количество кластеров или, точнее, количество центроидов. Его значение в k-средних. Кластеризация выбрана Методом локтя. Метод локтя включает в себя построение графика зависимости стоимости от k-значения; где k — целое число › 1. Точка, в которой кривая делает переход, обычно выбирается как значение k. Я использовал значение k, равное 3, для Анализа, хотя при k=2 был переход, стоимость еще больше уменьшилась при k=3, и это дало бы нам возможность исследовать более разнообразные кластеры.

Цель состоит в том, чтобы свести к минимуму сумму квадратов внутри кластера — стоимость с помощью критериев инерции в библиотеке sklearn.

Затем выполняется кластеризация, и метки кластера сохраняются.

2. Ярлыки кластера

Метки кластера объединяются с предыдущим фреймом данных, содержащим только индийские рестораны.

Затем этот кадр данных объединяется с кадром данных Brooklyn Venues.

H) Кластеры

5. РЕЗУЛЬТАТЫ

На основе кластеризации,

Кластер 2: содержит наибольшее количество индийских ресторанов и поэтому не рассматривается.

Кластер 1: среднее количество ресторанов.

Кластер 0: идеален, так как в нем нет ресторанов. Поэтому мы можем заглянуть в места в этом Скоплении.

Глядя на близлежащие места, кажется, что Кластер 0 может быть хорошим местом, так как в этих районах не так много индийских ресторанов. В кластере есть 60 нечетных районов, наиболее распространенными из которых являются Кэрролл-Гарденс, Саут-Сайд, Норт-Сайд, Центр города и Коббл-Хилл в Бруклине. >.

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

6. ОБСУЖДЕНИЕ

Основываясь на анализе, Carroll Gardens, South Side, North Side, Downtown и Cobble Hill — некоторые из районов, в которых можно рассмотреть возможность открытия нашего ресторана. Я также заглянул в Статен-Айленд, так как там было такое же индейское население, как и в Бруклине. Поскольку всего 2 ресторана, конкуренция очень низкая. Статен-Айленд также имеет высокую плотность американцев индийского происхождения на квадратную милю, поэтому пешеходное движение не должно быть проблемой, но отсутствие индийских ресторанов также может указывать на различные другие проблемы, такие как лицензирование, строгие нормы сообщества и т. д., что следует учитывать. перед принятием решения. На Манхэттене больше всего индийских ресторанов, но меньше всего американцев индийского происхождения, что может быть интересно изучить.

Некоторые из недостатков этого анализа: кластеризация полностью основана только на данных, полученных из API Foursquare, а данные о распределении населения Индии в каждом районе также основаны на переписи 2014 года, которая не актуальна. Таким образом, существует огромный пробел в данных о распределении населения. Несмотря на то, что есть много областей, где его можно улучшить, этот анализ, безусловно, дал нам некоторые хорошие идеи, предварительную информацию о возможностях и преимущество в этой бизнес-проблеме, правильно установив ступени.

7. ЗАКЛЮЧЕНИЕ

Мы работали над бизнес-задачей так, как это сделал бы настоящий специалист по данным. Мы использовали библиотеки Python для извлечения данных (json, запросы и т. д.), для управления содержимым (панды) и для анализа и визуализации (matplotlib, Folium) этих наборов данных. Мы воспользовались API Foursquare для изучения мест проведения мероприятий в окрестностях Нью-Йорка, а затем получили данные из Википедии, которые мы собрали с помощью библиотеки pandas. Мы также применили методы машинного обучения (кластеризация) для прогнозирования результатов на основе данных и использовали Folium для их визуализации на карте.

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

8. ЦИТАТЫ

[1] https://geo.nyu.edu/catalog/nyu_2451_34572

[2] https://foursquare.com/developers/apps

[3] https://en.wikipedia.org/wiki/Indians_in_the_New_York_City_metropolitan_region

Весь проект можно найти на моем Github вместе с заданиями по содержанию курса и соответствующими данными. Надеюсь, это было познавательно или полезно для вас!