Моя последняя заявка на проект Applied Data Science Capstone из сертификации IBM Data Science Professional, предлагаемой Coursera.

Весь код этого проекта можно найти в специальном репозитории GitHub.

Введение

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

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

Важное соображение, которое мы, возможно, захотим принять во внимание (и на котором я сосредоточусь в этом проекте), заключается в том, чтобы решить, где будет располагаться наш магазин по отношению к местам, где может находиться большинство людей, передвигающихся на велосипеде. В частности, мы будем искать места рядом с рекой, или парки, или маршруты для верховой езды, а также тренажерные залы и спортивные площадки, чтобы максимизировать нашу прибыль: если кто-то (скажем, турист) идет вдоль реки или через парк и увидит всех этих людей, катающихся на велосипедах и веселящихся, он, возможно, подумает что-то вроде: «О, чувак, я бы тоже хотел иметь велосипед».
А вот и наш новый магазин, полный блестящих велосипедов, которые каждый может либо купить, либо взять напрокат на день!
Точно так же довольно часто можно встретить человека, чей велосипед нуждается в исправить в этих местах, поэтому мы также можем получить прибыль от ремонта и обслуживания велосипедов.

Данные

Прежде всего, для простоты я решил сосредоточить свое внимание на главном городе Кембридже, а именно на районах, почтовые индексы которых начинаются с CB1 до CB5. Итак, нам понадобятся все эти почтовые индексы и соответствующие названия районов; к счастью, я нашел этот отличный ресурс, который предлагает эти данные в виде простого CSV-файла с координатами широты и долготы для каждого почтового индекса.

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

Методология

Прежде всего, я скачал данные почтового индекса Кембриджа с этого ресурса и почистил наборы данных следующим образом:

- почтовые индексы, которые в настоящее время не используются, были удалены;
- были сохранены только почтовые индексы от CB1 до CB5, чтобы сосредоточиться на главном городе Кембридже;
- были сохранены только 3 признака набора данных, а именно почтовые индексы и их координаты широты и долготы.

Чтобы еще больше сократить данные и сделать их более удобными, я решил «объединить» почтовые индексы, которые были близки друг к другу: я отбросил последний символ каждого почтового индекса (чтобы CB1 0AA и CB1 0AB сходились к CB1 0A) и взял среднее значение широта и долгота исходных почтовых индексов, покрываемых каждым новым усеченным почтовым индексом.
Вот как выглядит окончательный набор данных:

Полученная карта показывает каждую группу почтовых индексов в Кембридже; построена (как и все последующие карты) с помощью модуля Фолиум:

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

- Тренажерный зал/фитнес-центр
- Тренажерный зал
- Тренажерный зал с бассейном
- Парк
- Бассейн
- Детская площадка
- Футбольное поле
- Палаточный лагерь< br /> - Теннисный корт
- Канал
- Футбольный стадион
- Поле для гольфа
- Озеро
- Хоккейное поле
- Крикетная площадка
- Стадион для регби
- Гавань / пристань для яхт
- Река
- Поле для гольфа
- Легкая атлетика и спорт
- Поле
- Спортивный клуб

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

Это карта, которая показывает каждое место, представляющее интерес для нашего проекта:

Кажется, что интересные места для магазина велосипедов разбросаны по всему городу, поэтому я решил сгруппировать эти точки, чтобы получить всего несколько мест-кандидатов для нашего нового бизнеса.
Я произвольно разделил территорию Кембриджа на 4 квадранта, а именно: северо-восток, северо-запад, юго-восток и юго-запад, создав таким образом 4 кластера на основе географических координат найденных мест проведения.
Я использовал класс KMeans из scikit-learn для выполнения кластеризации, используя только параметр n_clusters со значением 4:

from sklearn.cluster import KMeans
k = 4
X = cam_venues[[“VenueLatitude”, “VenueLongitude”]]
model = KMeans(n_clusters=k)
model.fit(X)

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

Это результирующая карта, показывающая 4 разных кластера и их центроиды:

Результаты

Присмотревшись к только что созданной карте, мы можем сделать несколько замечаний:

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

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

Обсуждение

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

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

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

Вывод

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

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

Отказ от ответственности

Это простое исследование стало моей последней заявкой на участие в проекте Applied Data Science Capstone в рамках сертификации IBM Data Science Professional, предлагаемой Coursera.
Хотя идея и разработка этого проекта являются моими собственными, они основаны на уроках и лабораторных работах, выполненных в ходе вышеупомянутого курса. Единственная цель этого проекта — показать простое и полное практическое применение методов науки о данных и машинного обучения; из того, что здесь сообщается, не следует делать никаких выводов.