Привет,
Цель этого блога - найти самое похожее место в другом городе!
Но для простоты я буду использовать только два города — Нью-Йорк и Торонто.
Данные о местонахождении Нью-Йорка можно скачать здесь. Это будет файл json после предварительной обработки данных, который будет выглядеть так, как показано на рис. 1. Из файла json были извлечены только Район, Окрестности, Широта и Местоположение.
Данные о местоположении города Торонто можно получить на странице Википедии. После удаления необходимых данных это будет выглядеть так, как показано на рисунке 2. См. здесь, подробное описание процесса очистки и предварительной обработки.
Наши необработанные данные по обоим городам готовы. Давайте узнаем места рядом с парой районов и районов обоих городов. Для получения данных о ближайших объектах будет использоваться Foursquare API. Чтобы использовать API Foursquare, мы должны создать учетную запись разработчика и приложение, которое предоставит идентификатор клиента и секреты клиента. Он будет использоваться для доступа к данным о месте проведения. Если вы хотите узнать, как получить данные о месте проведения мероприятия, загляните в эту блокнот.
Примечание. Данные Foursquare API со временем меняются.
После получения данных о ближайших объектах Нью-Йорка это выглядит так, как показано на рис. 3. Теперь форма данных: (306, 475). В Нью-Йорке есть 471 тип площадок.
После получения данных о близлежащем городе Торонто это выглядит так, как показано на рис. 4. Теперь форма данных: (103, 339). В Нью-Йорке 334 типа площадок.
Теперь оба данных имеют разное количество мероприятий. В Нью-Йорке их 471, а в Торонто 334 категории. В обоих городах есть несколько общих категорий мест проведения. Мы найдем общие категории объектов и будем использовать только эти общие категории, чтобы найти похожие районы. Из приведенной ниже диаграммы Венна мы можем сказать, что в обоих городах есть 304 общие категории мест проведения.
Давайте выберем эти 304 общие категории мест для обоих городов, используя следующий фрагмент кода. Все фрагменты кода этого блога взяты из моей Github-ноутбука.
Теперь мы можем находить похожие города, используя косинусное сходство. Допустим, наше текущее местоположение — Бронкс, Ривердейл, Нью-Йорк, и мы хотим найти 7 наиболее похожих районов города Торонто.
Шаг 1. Найдите индекс текущего города в данных Нью-Йорка (в df1) и соответствующие широту и долготу.
Шаг 2. Получите данные о всех распространенных категориях мест в Нью-Йорке из соответствующего индекса и умножьте их на общие данные о местах в Торонто. Это покажет, насколько каждый район города Торонто похож на текущее местоположение. Мы отсортируем их в порядке убывания и выберем 7 наиболее похожих районов, используя следующий фрагмент кода (рис. 7).
Давайте визуализируем эти 7 наиболее похожих районов Торонто с помощью folium.
Я также написал функцию в конце записной книжки, которую можно использовать для поиска максимального количества районов ‘n’ в любом городе. Вам просто нужно передать 'current_city', 'current_brough', 'current_neigh' и 'n_most_similar', и он вернет top 'n'районы в другом городе.
Заключение
Мы находим первые «n» наиболее похожих районов в другом городе, используя концепцию косинусного сходства.
Полный код см. в этом блокноте. Но карта folium не может быть отображена в Github. Если вы хотите отрендерить карту, используйте эту ссылку.
aditya-5842/Coursera-IBM-Data-Science-Professional-Capstone-Projects
Чтобы пройти курс «Applied Data Science Capstone…github.com »
Спасибо,
Адитья Викрам Сингх