Системы рекомендаций для ресторанов

AI и машинное обучение
Работа 5 из 7
Работа направлена на разработку системы рекомендаций заведений питания (ресторанов) для отдельных пользователей. Основной фокус работы заключался в предварительной обработке сложного, многотабличного набора данных и построении модели, способной прогнозировать, понравится ли конкретный ресторан конкретному пользователю.

Целью было создать функцию прогнозирования (рекомендации) рейтинга ресторана для пользователя на основе данных профилей пользователей и их предыдущих оценок. То есть выполнение задачи User-based collaborative filtering с использованием KNN.

Шаги для выполнения:
• Загрузка и объединение данных из пяти различных источников.
• Выявление и обработка пропущенных и неконсистентных значений в данных.
• Очистка и нормализация географических и мета-данных пользователей и ресторанов.
• Создание модели рекомендательной системы.

Используемые данные
Проект использует набор данных restaurant-data-with-consumer-ratings, состоящий из 9 таблиц, из которых были использованы пять взаимосвязанных CSV-файлов:
1. geoplaces2.csv: Географические характеристики и атрибуты заведений (например, ценовой диапазон, алкоголь, дресс-код и др.).
2. rating_final.csv: Финальные оценки пользователей заведениям (общий рейтинг, рейтинг еды, рейтинг обслуживания).
3. userprofile.csv: Демографические и поведенческие профили пользователей (например, уровень потребления алкоголя, никотина, бюджет и др.).
4. usercuisine.csv: Предпочтения пользователей относительно кухни.
5. chefmozcuisine.csv: Типы кухни, которые предлагают заведения.

Моделирование
• Применена концепция User-Based Collaborative Filtering (UBCF), где KNN использовался для поиска K-ближайших соседей на основе метрик сходства косинуса (Cosine Similarity).
• Оптимизация: Устранены проблемы масштабируемости классического UBCF путем использования оптимизированных методов, подтверждена необходимость перехода к взвешенному среднему (Weighted Average) для точного прогноза рейтинга, который основан на расстояниях и индексах соседей.
• Функция рекомендации: Разработана функция recommend_restoran(), которая принимает целевое заведение (target_placeID), целевого пользователя (target_userID) и количество соседей (k) для прогнозирования рейтинга.
• Критерий рекомендации: Прогнозируемый рейтинг округляется, и если он равен или превышает пороговое значение (recommend_threshold), ресторан рекомендуется.

Используемые технологии
Язык программирования: Python
Библиотеки:
• pandas, numpy: Обработка и манипуляции с данными.
• requests: Для вызова внешнего гео-сервиса (GPS-Coordinates.net).
• sklearn (Scikit-learn): Использование метрик.

P.S На скриншоте показаны количества пропусков данных в таблицах, с которыми я работал, финальная матрица для расчетов и 3 результата работы функции.

#ML #machinelearining #datascience #database #analitycs #dataanalysis
Детали
  • Добавлена:
163

Фрилансер

  • Проектов -
  • Оценка -
  • Рейтинг 306
Зарегистрируйтесь

Если у вас есть аккаунт, авторизуйтесь

Показатели

  • Последний визит: 7 дней 11 часов назад