Warning: package 'recommenderlab' was built under R version 4.5.3
Loading required package: Matrix
Loading required package: arules
Warning: package 'arules' was built under R version 4.5.3
Attaching package: 'arules'
The following objects are masked from 'package:base':
abbreviate, write
Loading required package: proxy
Attaching package: 'proxy'
The following object is masked from 'package:Matrix':
as.matrix
The following objects are masked from 'package:stats':
as.dist, dist
The following object is masked from 'package:base':
as.matrix
library(readxl)
Warning: package 'readxl' was built under R version 4.5.3
Data setup
raw_data <-read_excel("MovieRatings.xlsx")movie_matrix <-as.matrix(raw_data[, -1]) rownames(movie_matrix) <- raw_data$Critic#Converting to better format for recommendingrating_matrix <-as(movie_matrix, "realRatingMatrix")
Creating a user base collaborative filtering model that uses cosine similarity
#Creating the recommender modelrec_model <-Recommender(rating_matrix, method ="UBCF", parameter =list(method ="Cosine", nn =3))#Generating prediction rating recom_predictions <-predict(rec_model, rating_matrix, type ="ratings")#Generating Top 3 Recommendationrecom_list <-predict(rec_model, rating_matrix, n =3)
#Evalutating the model
eval_sets <-evaluationScheme(rating_matrix, method ="split", train =0.8, given =1, #Number of ratings to hold for testgoodRating =4)#Train model on training seteval_recommender <-Recommender(getData(eval_sets, "train"), "UBCF")#Prediction on the test seteval_prediction <-predict(eval_recommender, getData(eval_sets, "known"), type ="ratings")# Calculate the error metricsaccuracy_results <-calcPredictionAccuracy(eval_prediction, getData(eval_sets, "unknown"))print(accuracy_results)
CaptainAmerica Deadpool Frozen JungleBook PitchPerfect2 StarWarsForce
Burton NA 4.00 NA NA NA NA
Charley NA NA NA NA NA NA
Dan NA NA NA 5.00 NA NA
Dieudonne NA NA 3.8 4.17 4.31 NA
Matt NA 3.64 NA 2.65 NA NA
Mauricio NA 3.39 NA NA NA 4.39
Max NA NA NA NA NA NA
Nathan NA 4.00 NA 4.00 NA NA
Param NA NA NA 3.00 3.11 NA
Parshu NA NA NA NA NA NA
Prashanth NA NA NA NA 3.13 NA
Shipra 4.26 3.78 NA NA 2.33 NA
Sreejaya NA NA NA NA NA NA
Steve NA 4.00 NA 4.00 NA NA
Vuthy NA NA NA NA NA 4.29
Xingjia 5.50 6.50 NA NA 3.50 4.83