Binarize рейтинги - набор данных MovieLens
Я работаю над механизмом персонализированных рекомендаций по новостям, основанным на клик-поведении пользователей. Моими функциями будут предопределенные категории новостей (такие как политика, спорт и т. Д.).
Всякий раз, когда пользователь нажимает на статью, я создаю / обновляю профиль пользователя на основе этой статьи, а затем рекомендую другую статью из пула статей.
Что касается оценки этой системы, мне нужно иметь набор данных, который содержит двоичные взаимодействия пользователя с элементом (пользователь щелкнул по рекомендованной статье или нет), и я не смог найти подходящий набор данных для этого конкретного контекста. Я пытаюсь сделать бинаризацию набора данных Movielens, затем вычислить точность и вспомнить.
То, что я на самом деле делаю в наборе данных MovieLens, выглядит следующим образом: если оценка для элемента пользователем превышает среднюю оценку этого пользователя, я назначаю ему двоичный рейтинг 1, 0 в противном случае.
Является ли этот подход правильным способом оценки такого рода систем?
1 ответ
- бинаризация не имеет значения. Точность и отзыв являются относительными, поэтому тот факт, что кто-то оценил это все, что вам нужно. Алгоритм "хорошего" рейтинга не имеет смысла для целей тестирования.
- У epinions есть два набора данных, один для рейтингов, другой для доверия.
- используйте MAP@k средняя точность для некоторого числа рекомендаций. Это будет учитывать рейтинг в группе рекомендаций, что, несомненно, как они будут использоваться.
Кстати, в открытом исходном коде уже есть рекомендация, которая делает это и позволяет смешивать несколько событий / действий / индикаторов, а также может использовать здесь сходство контента. Он основан на платформе PredictionIO, которая основана на Spark.