Binarize рейтинги - набор данных MovieLens

Я работаю над механизмом персонализированных рекомендаций по новостям, основанным на клик-поведении пользователей. Моими функциями будут предопределенные категории новостей (такие как политика, спорт и т. Д.).

Всякий раз, когда пользователь нажимает на статью, я создаю / обновляю профиль пользователя на основе этой статьи, а затем рекомендую другую статью из пула статей.

Что касается оценки этой системы, мне нужно иметь набор данных, который содержит двоичные взаимодействия пользователя с элементом (пользователь щелкнул по рекомендованной статье или нет), и я не смог найти подходящий набор данных для этого конкретного контекста. Я пытаюсь сделать бинаризацию набора данных Movielens, затем вычислить точность и вспомнить.

То, что я на самом деле делаю в наборе данных MovieLens, выглядит следующим образом: если оценка для элемента пользователем превышает среднюю оценку этого пользователя, я назначаю ему двоичный рейтинг 1, 0 в противном случае.

Является ли этот подход правильным способом оценки такого рода систем?

1 ответ

Решение
  1. бинаризация не имеет значения. Точность и отзыв являются относительными, поэтому тот факт, что кто-то оценил это все, что вам нужно. Алгоритм "хорошего" рейтинга не имеет смысла для целей тестирования.
  2. У epinions есть два набора данных, один для рейтингов, другой для доверия.
  3. используйте MAP@k средняя точность для некоторого числа рекомендаций. Это будет учитывать рейтинг в группе рекомендаций, что, несомненно, как они будут использоваться.

Кстати, в открытом исходном коде уже есть рекомендация, которая делает это и позволяет смешивать несколько событий / действий / индикаторов, а также может использовать здесь сходство контента. Он основан на платформе PredictionIO, которая основана на Spark.

Другие вопросы по тегам