Предсказатель местоположения кофейни

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

Введение

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

Необходимые шаги

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

Сбор данных

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

Получение всей криминальной истории

Мы можем получить криминальную историю Ванкувера за последние 14 лет отсюда. Эти данные находятся в необработанном форматеcrime.csv, поэтому нам нужно их обработать и отфильтровать бесполезные данные. Затем мы записываем эту обработанную информацию в файлcrime_processed.csv.

Примечание. В этом файле содержится 530 653 записи о преступлениях.

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

Кража (красный), Взлом и вход (оранжевый) и Шалость (зеленый)

Все эти преступления можно отобразить на графике, как показано ниже.

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

Получение местоположения всех станций скоростного транспорта

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

Получение местоположения всех Starbucks

Данные Starbucks присутствуют здесь, мы можем легко их очистить и получить адреса всех Starbucks в Ванкувере. Нам нужен только тот Starbucks, который находится рядом с пересадочными станциями, поэтому остальные мы отфильтруем. Всего в Ванкувере 24 Starbucks, и 10 из них находятся рядом с транзитными станциями.

Примечание. Помимо координат транзитных станций и Starbucks, нам также нужны координаты и тип преступления.

Транзитные станции без Starbucks

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

Если ни один из Starbucks не находится в районе этой конкретной транзитной станции, мы можем добавить его в список. В конце у нас есть список всех заведений Transit, рядом с которыми нет Starbucks. Всего есть 6 транзитных станций, рядом с которыми нет Starbucks.

Преступность возле транзитных станций

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

Преступность рядом с транзитными станциями

Теперь, когда у нас есть все транзитные станции, рядом с которыми нет Starbucks, а также преступность возле всех транзитных станций. Итак, давайте воспользуемся этой информацией и получим криминал рядом с расположенными транзитными станциями. Это около 44 000 записей о преступлениях.

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

Кража

Перерыв и вход

Зло

Генерация всех возможных координат

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

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

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

Но для предсказания местоположения нам нужно сравнить каждую координату с координатами преступления. Поскольку алгоритм должен проверить ~ 7000 краж, ~ 19 000 взломов и ~ 17 000 шалостей вокруг каждой сгенерированной координаты. Для этого потребуется, чтобы программа обработала примерно 432,4 миллиарда раз. Такое выполнение занимает много часов на обычных компьютерах (иногда дни).

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

Чтобы контролировать это, мы можем удалить повторяющиеся значения в координатах преступления и те, которые находятся слишком близко друг к другу ~1 м. Таким образом, у нас остается всего 816 краж, 2654 взломов и 8234 злодеяния вокруг каждой сгенерированной координаты.
Точность не сильно пострадает, но требуемые время и вычислительные ресурсы значительно сократятся.

Проверка Crime рядом с сгенерированными координатами

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

  1. Отфильтровать координаты с кражей около 1 км
    Мы получаем 122 000 координат без краж (ниже объединено 1000 к 1)

  1. Отфильтровать координаты со взломом около 200 м
    Мы получаем 8000 координат без краж (ниже объединено 1000 к 1)

  1. Отфильтровать координаты с шалостью около 200 м
    Мы получаем 6000 координат без краж (ниже объединено 1000 к 1)

  1. Теперь, когда у нас есть 6 Координат лучших локаций, прошедших все ограничения, упорядочим их. Чтобы упорядочить, проверим их расстояние от ближайшей транзитной локации. Ближайшее будет вверху списка как наилучшее возможное местоположение, затем второе и так далее. Сгенерированный список;
  2. -123.0419406741792, 49.24824259252004
  3. -123.05887151659479, 49.24327221040713
  4. -123.05287151659476, 49.24327221040713
  5. -123.04994067417924, 49.239242592520064
  6. -123.0419406741792, 49.239242592520064
  7. -123.0409406741792, 49.239242592520064

Чем может помочь MindTrades?

MindTrades Consulting Services, ведущее маркетинговое агентство, предоставляет углубленный анализ и информацию для глобального ИТ-сектора, включая ведущие бренды интеграции данных, такие как Diyotta. От облачной миграции, больших данных, цифровой трансформации, гибкой доставки, кибербезопасности до аналитики — Mind trades предоставляет опубликованные прорывные идеи и оперативную доставку контента. Для получения дополнительной информации обратитесь к mindtrades.com.

Код

https://github.com/Mindtrades-Consulting/Coffee-Shop-Location-Predictor