Learn R Programming

⚠️There's a newer version (1.0.6) of this package.Take me there.

recommenderlab - Lab for Developing and Testing Recommender Algorithms - R package

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

Installation

Stable CRAN version: install from within R with

install.packages("recommenderlab")

Current development version: Download package from AppVeyor or install from GitHub (needs devtools).

install_git("mhahsler/recommenderlab")

Usage

A Shiny App running recommenderlab can be found at https://mhahsler-apps.shinyapps.io/Jester/.

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)"   

References

  • Michael Hahsler (2016). [recommenderlab: A Framework for Developing and

Testing Recommendation Algorithms](https://CRAN.R-project.org/package=recommenderlab/vignettes/recommenderlab.pdf), R package. https://CRAN.R-project.org/package=recommenderlab

Copy Link

Version

Install

install.packages('recommenderlab')

Monthly Downloads

2,047

Version

0.2-2

License

GPL-2

Maintainer

Michael Hahsler

Last Published

April 5th, 2017

Functions in recommenderlab (0.2-2)

Recommender-class

Class "Recommender": A Recommender Model
HybridRecommender

Create a Hybrid Recommender
binaryRatingMatrix

Class "binaryRatingMatrix": A Binary Rating Matrix
Jester5k

Jester dataset (5k sample)
evaluationScheme

Creator Function for evaluationScheme
calcPredictionAccuracy

Calculate the Prediction Error for a Recommendation
internalFunctions

Internal Utility Functions
getList

List and Data.frame Representation for Recommender Matrix Objects
dissimilarity

Dissimilarity and Similarity Calculation Between Rating Data
funkSVD

Funk SVD for Matrices with Missing Data
topNList

Class "topNList": Top-N List
sparseNAMatrix-class

Sparse Matrix Representation With NAs Not Explicitly Stored
realRatingMatrix

Class "realRatingMatrix": Real-valued Rating Matrix
Error

Error Calculation
MSWeb

Anonymous web data from www.microsoft.com
MovieLense

MovieLense Dataset (100k)
normalize

Normalize the ratings
evaluate

Evaluate a Recommender Models
evaluationResultList-class

Class "evaluationResultList": Results of the Evaluation of a Multiple Recommender Methods
ratingMatrix

Class "ratingMatrix": Virtual Class for Rating Data
predict

Predict Recommendations
plot

Plot Evaluation Results
Recommender

Create a Recommender Model
evaluationResults-class

Class "evaluationResults": Results of the Evaluation of a Single Recommender Method
evaluationScheme-class

Class "evaluationScheme": Evaluation Scheme