This R package provides an infrastructure to test and develop recommender algorithms. The package supports rating (e.g., 1-5 stars) and unary (0-1) data sets. Supported algoritms are:
- User-based collborative filtering (UBCF)
- Item-based collborative filtering (IBCF)
- SVD with column-mean imputation (SVD)
- Funk SVD (SVDF)
- Association rule-based recommender (AR)
- Popular items (POPULAR)
- Randomly chosen items for comparison (RANDOM)
- Re-recommend liked items (RERECOMMEND)
- Hybrid recommendations (HybridRecommender)
For evaluation, the framework supports given-n and all-but-x protocols with
- Train/test split
- Cross-validation
- Repeated bootstrap sampling
Evaluation measures are:
- Rating errors: MSE, RMSE, MAE
- Top-N recommendations: TPR/FPR (ROC), precision and recall
Stable CRAN version: install from within R with
install.packages("recommenderlab")
Current development version: Download package from AppVeyor or install from GitHub (needs devtools).
library("devtools")
install_github("mhahsler/recommenderlab")
Load the package and prepare a dataset (included in the package).
library("recommenderlab")
data("MovieLense")
### use only users with more than 100 ratings
MovieLense100 <- MovieLense[rowCounts(MovieLense) >100,]
MovieLense100
358 x 1664 rating matrix of class ‘realRatingMatrix’ with 73610 ratings.
Train a user-based collaborative filtering recommender using a small training set.
train <- MovieLense100[1:50]
rec <- Recommender(train, method = "UBCF")
rec
Recommender of type ‘UBCF’ for ‘realRatingMatrix’
learned using 50 users.
Create top-N recommendations for new users (users 101 and 102)
pre <- predict(rec, MovieLense100[101:102], n = 10)
pre
Recommendations as ‘topNList’ with n = 10 for 2 users.
as(pre, "list")
$`291`
[1] "Alien (1979)" "Titanic (1997)"
[3] "Contact (1997)" "Aliens (1986)"
[5] "Amadeus (1984)" "Godfather, The (1972)"
[7] "Henry V (1989)" "Sting, The (1973)"
[9] "Dead Poets Society (1989)" "Schindler's List (1993)"
$`292`
[1] "Usual Suspects, The (1995)" "Amadeus (1984)"
[3] "Raising Arizona (1987)" "Citizen Kane (1941)"
[5] "Titanic (1997)" "Brazil (1985)"
[7] "Stand by Me (1986)" "M*A*S*H (1970)"
[9] "Babe (1995)" "GoodFellas (1990)"
A simple Shiny App running recommenderlab can be found at https://mhahsler-apps.shinyapps.io/Jester/ (source code).
- Michael Hahsler (2016). recommenderlab: A Framework for Developing and Testing Recommendation Algorithms, R package. https://CRAN.R-project.org/package=recommenderlab
- recommenderlab reference manual