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)
- Мы можем порекомендовать лучшие ближайшие рестораны в отеле на основе пользовательских предпочтений, таких как китайская кухня, итальянская кухня и т. Д.
- Мы можем порекомендовать отели возле аэропортов, станции метро, а также популярные места Нью-Йорка.
Вы можете получить полный код этого проекта. "Кликните сюда"