Вопрос или проблема
Я пытаюсь создать рекомендательную систему, которая предсказывает цены на отели на основе большого количества признаков. У меня есть колонка, представляющая рейтинг отеля из 5, и другая колонка, указывающая количество отзывов на этот отель. В моем наборе данных некоторые отели имеют рейтинг 5, например, но с только одним или двумя отзывами. С другой стороны, некоторые отели, которые также имеют рейтинг 5, имеют более 300 отзывов. Есть ли способ отдать приоритет или дать больше влияния отелям, которые были оценены чаще? Спасибо заранее!
Это обычно называется “поддержкой”, это количество вхождений класса в указанном наборе данных.
Существует несколько способов использования поддержки:
- Фильтрация данных – Разрешить только экземпляры с определенным количеством вхождений.
- Взвешенная потеря – Многие функции потерь придают больше веса примерам, которые встречаются чаще. Также часто возможно увеличить веса.
- Байесовские модели – Байесовское машинное обучение дает явные предсказания неопределенности, поддержка является одним из основных факторов неопределенности.
Ответ или решение
Рекомендательные системы: Как придавать больше значения определённым признакам
При создании рекомендательной системы, которая прогнозирует цены на отели, критически важно учитывать множество факторов, влияющих на результаты. Одним из таких факторов являются рейтинги отелей и количество отзывов, которые на них оставлены. Ваша задача — жонглировать этими переменными так, чтобы обеспечить более высокую значимость для отелей, имеющих больше отзывов, даже если их рейтинг соответствует самым высоким стандартам.
Проблема: Рейтинг против поддержки
Во-первых, давайте проанализируем уже описанную вами ситуацию. Вы столкнулись с тем, что отель может иметь идеальный рейтинг в 5 баллов, но всего 1 или 2 отзыва, в то время как другой отель с таким же рейтингом может иметь свыше 300 отзывов. Это создает сложную ситуацию, когда можно задаться вопросом о том, насколько достоверным является рейтинг отелей с малым количеством отзывов. Рейтинг по сути является индикатором, но его надёжность возрастает с увеличением количества отзывов.
Способы переоценки признаков
Чтобы выделить отели с высоким уровнем "поддержки" — то есть тех отелей, которые имеют много отзывов, — можно использовать несколько стратегий.
-
Фильтрация данных:
Вы можете установить минимальный порог для количества отзывов, чтобы включить в выборку только те отели, которые имеют достаточный объём отзывов. Например, можно рассмотреть только отели с минимум 20 или 30 отзывами, что позволит отсеять варианты с низкой репутацией. -
Взвешенная функция потерь:
При обучении модели полезно использовать алгоритмы, которые учитывают вес на основе количества отзывов. Это можно сделать путем увеличения значимости примеров с большим числом отзывов в функции потерь. Например, если отель имеет 300 отзывов, его ошибка при предсказании может быть уменьшена в 5-10 раз в сравнении с отелем с двумя отзывами. Это будет способствовать обучению модели, что отели с высоким объёмом отзывов более важны. -
Байесовские методы:
Использование байесовских методов помогает выразить неопределённость в предсказаниях. Подходы на основе Байеса позволяют учитывать поддержку как один из основных драйверов неопределённости, привязывая качество рейтинга к количеству отзывов. Таким образом, вы можете более точно рассчитывать вероятность того, что конкретное значение рейтинга совпадает с реальным качеством обслуживания отеля.
Применение методик в практике
Суммируя вышеизложенное, вам следует разработать гибридную модель, которая не только учитывает рейтинг, но и добавляет дополнительные параметры. Возможно, стоит рассмотреть использование машинного обучения для построения более сложных моделей, таких как градиентный бустинг или случайные леса, которые сами смогут установить важность признаков.
При использовании подходящих методов оценки и правильной нормализации данных, вы можете создать мощную рекомендательную систему, которая выделит отели не только по рейтингу, но и по реальной тенденции качества обслуживания, основанной на количестве оставленных отзывов.
Заключение
При создании вашей рекомендательной системы учтите, что комбинация фильтрации данных, использования взвешенных функций потерь и применения байесовских концепций может значительно повысить точность ваших прогнозов. Более того, это обеспечит более справедливую оценку отелей, основываясь на объективных данных, что, безусловно, улучшит опыт пользователей и повлияет на их выбор.