Data Science Project

Рекомендация отелей с анализом данных о ближайших местах в Нью-Йорке

Рекомендуем 5 лучших отелей Нью-Йорка и 10 мест поблизости от каждого из них.

1. Проблема:

Предположим, я хочу побывать в Нью-Йорке, куда собираюсь впервые. Итак, первая проблема приходит, где остановиться? Поиск в Google всех отелей, затем проверка отзывов, рейтингов для всех отелей, затем выбор отеля, затем поиск ближайших мест для всех отелей и многих других… Это очень трудоемкая и утомительная задача.

(P.S. Я знаю, что сайты бронирования отелей также делают это за вас, но я сделал это в рамках анализа данных)

Посмотрим решение

Решение:

Я автоматизирую все эти задачи с помощью анализа данных и машинного обучения.

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

P.S .: Как и отели, вы можете сделать то же самое и для ресторанов :)

2. Описание данных

Я получил координаты города Нью-Йорка с помощью библиотеки Python Geopy, затем я создал карту данного местоположения, чтобы наложить на нее отели. Библиотека Python Folium используется для создания карты.

Используя Foursquare API, я искал отели возле Нью-Йорка в радиусе 10 км, в результате я получил данные JSON, а затем преобразовал их в Pandas Data Frame со следующими столбцами :

  • Название: Название гостиницы. например: EVEN Hotels New York - Times Square South
  • Категории: Категория гостиницы. например: Отель, Курорт
  • Адрес: Адрес гостиницы. например: 321 W 35th St, New York, NY 10001, США
  • Distance: Расстояние от отеля до центра данного города (в метрах). например: 4648
  • lat: Широта. например: 40.753467
  • lng: долгота. например: -73.993898
  • ID: уникальный идентификатор для всех отелей. например: 558dff09498e0910b7cbf9bd

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

Итерируя по каждому идентификатору отелей, я сохранил рейтинг в новом фрейме данных Pandas с идентификатором, затем объедините этот новый фрейм данных с фреймом данных отелей.

Используя координаты местоположения этого отеля, я исследовал близлежащие места в радиусе ~ 500 метров от отеля. Выполняя поиск ближайших мест, передавая координаты и радиус, в результате я получил данные JSON, а затем преобразовал их в фрейм данных Pandas с такими же столбцами, как фрейм данных Hotels.

Теперь объединение обоих фреймов данных в новый окончательный фрейм данных, состоящий из данных отеля + близлежащих мест с координатами.

Я использовал эти координаты для создания окончательной карты с кластерами.

3. Методология

На первом этапе я собрал необходимые данные: расположение и тип (категория) для всех отелей в радиусе 10 км от центра Нью-Йорка с координатами отелей (из Foursquare API). Вот список отелей.

Давайте визуализируем все эти отели на карте. Я создал эту карту с помощью Folium Library.

Я поискал Рейтинги всех этих отелей и получил следующий результат:

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

4. Результаты

Сортировка отелей по рейтингам и рекомендация 5 лучших отелей. В таблице ниже представлены 5 рекомендуемых отелей в Нью-Йорке.

Затем я поискал 10 мест поблизости в радиусе ~ 500 м от отеля для 5 отелей. В таблице ниже показаны рекомендуемые места поблизости от отеля Plaza Athenee. (Я обрезал таблицу до 7 строк)

Представим себе 5 отелей с близлежащими местами на карте.

Как показано на карте, большие синие маркеры обозначают отели, а маленькие кружки - соответствующие места поблизости.

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

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

Давайте визуализируем эти кластеры на карте

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

6. Заключение

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

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

Будущие улучшения:

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

Вы можете получить полный код этого проекта. "Кликните сюда"

Спасибо, что прочитали эту статью :)