valuSchema: ошибка в .local (data, ...): некоторые наблюдения имеют размер - PullRequest
0 голосов
/ 16 октября 2018

Я использую пакет данных yelp и пакет Recommenderlab для совместной фильтрации.review_mx - это realRatingMatrix, где i - это user_no, j - restaurant_no, а x - звезды. Я хочу только оценить пользователя с более чем 10 отзывами, а рестораны получили более 25 отзывов, я использовал следующий код, но он неработает на самом деле

review_r<-review_mx[rowCounts(review_mx)>10,]
review_r<-review_r[,colCounts(review_r)>25]

И когда я создаю схему с использованиемvaluationSchema:

(e<- 
evaluationScheme(review_r,method="split",train=0.9,given=1,goodRating=4,k=5))

Возврат ошибки: ошибка в .local (data, ...): некоторые наблюдения имеют размер

Полный код здесь:

review<-read_lines("D:\\research\\R\\yelp_academic_dataset_review.json",n_max=2000000,progress=FALSE) reviews_combined <- str_c("[", str_c(review, collapse = ", "), "]") review <- fromJSON(reviews_combined) nt_review<-review[,c(1:4)]

Тогда nt_review содержит четыре переменные review_id, user_id, business_id и звезды

user_frame<-data.frame(user_no=seq(1:length(unique(nt_review[,"user_id"]))),user_id=unique(nt_review[,"user_id"])) business_frame<-data.frame(business_no =seq(1:length(unique(nt_review[,"business_id"]))),business_id=unique(nt_review[,"business_id"])) nt_review<-merge(nt_review,user_frame,by.x='user_id',by.y='user_id') review<-merge(nt_review,business_frame,by.x='business_id',by.y='business_id')

review_matrix<- sparseMatrix(
  i=review$user_no,
  j=review$business_no,
  x=review$stars,
  dimnames=list(levels(review$user_no),levels(review$business_no))
)
review_mx <-as(review_matrix,"realRatingMatrix")

Кто-нибудь знает, как решить эту проблему?Спасибо.

...