Данные выглядят иначе после преобразования в realRatingMatrix - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь работать с системой рекомендаций в R. Набор данных ниже: https://drive.google.com/file/d/1FVh-Xg3NBtzKgZHnDTi7IjaATW_fPmW9/view?usp=sharing

beer_data <- read.csv("beer_data.csv", stringsAsFactors = F)
library(recommenderlab)
r <- as(beer_data, "realRatingMatrix")

Теперь, если мы проверим количество отзывов в каждом объекте, оба не совпадают

nrow(beer_data)  # 475984
length(getRatings(r)) # 474560

А также диапазон рейтинга не совпадает:

> range(beer_data_master$review_overall)

[1] 0 5

> range(getRatings(r))

[1] 0 15

Я также проверил с другим набором данных, никаких проблем не возникает.

1 Ответ

0 голосов
/ 10 мая 2018

Я получил ответ:

В данных есть пользователи, которые оценивали одно и то же пиво более одного раза (дважды / трижды ... и т. Д.). Поэтому RecommenderLabs при принудительном приведении данных в realRatingMatrix добавляет рейтинг таких строк, и поэтому значение оценок больше 5, а длина getRatings меньше nrow of beer_data.

например. образец beer_data

beer_beerid, review_profilename, review_overall

19667, 57мд, 3,5 19667, 57 мин, 4,0

поэтому в realRatingMatrix для user = "57md" и item = "19667" рейтинг = 3,5 + 4 = 7,5, а в realRatingMatrix сокращается 1 строка.

И по той же причине неуникальная комбинация beer_beerid и рейтинга, полученного вместе, вызывает несоответствие количества оценок в обоих объектах, в dataframe и realRatingMatrix.

...