Accuracy of different algorithms on item and user rating Dataset
library(caret)
library(data.table)
ratings<-fread("ratings.csv")
ratings[,N:=.N,.(user_id,book_id)]
ratings<-ratings[N==1]
ratings[,N:=.N,.(user_id)]
rated<-ratings[1:15000,]
rated<-rated[,1:3]
full<-setNames(with(rated,expand.grid(sort(unique(book_id)),sort(unique(user_id)))),
c("book_id","user_id"))
rated<-merge(full,rated,all=TRUE)
rated[is.na(rated)]<-0
rated$rating<-as.factor(rated$rating)
seprate<-createDataPartition(rated$rating,p=0.8,list=FALSE)
trainset<-rated[separate,]
testset<-rated[-separate,]
control<-trainControl(method="cv",number=10)
fit.knn<-train(rating~.,trainset,method="knn",metric="Accuracy",trControl=control)
print(fit.knn)
prediction<-predict(fit.knn,testset)
confusionMatrix(factor(prediction,levels=0:5),factor(testset$rating,levels=0:5))
change "method "and get "result"
place ratings file in project directory
library(data.table)
ratings<-fread("ratings.csv")
ratings[,N:=.N,.(user_id,book_id)]
ratings<-ratings[N==1]
ratings[,N:=.N,.(user_id)]
rated<-ratings[1:15000,]
rated<-rated[,1:3]
full<-setNames(with(rated,expand.grid(sort(unique(book_id)),sort(unique(user_id)))),
c("book_id","user_id"))
rated<-merge(full,rated,all=TRUE)
rated[is.na(rated)]<-0
rated$rating<-as.factor(rated$rating)
seprate<-createDataPartition(rated$rating,p=0.8,list=FALSE)
trainset<-rated[separate,]
testset<-rated[-separate,]
control<-trainControl(method="cv",number=10)
fit.knn<-train(rating~.,trainset,method="knn",metric="Accuracy",trControl=control)
print(fit.knn)
prediction<-predict(fit.knn,testset)
confusionMatrix(factor(prediction,levels=0:5),factor(testset$rating,levels=0:5))
change "method "and get "result"
place ratings file in project directory
Comments
Post a Comment