rectools-package: Advanced Recommender System

rectools-packageR Documentation

Advanced Recommender System

Description

Toolbox for recommender systems, including novel methods, plotting, parallel computation, and so on.

Details

Package: rectools
Type: Package
Version: 1.0.0
Date: 2016-10-29
License: GPL (>= 2)

Raw input data:

Standard form, one row per rating, with first three columns being user ID, item ID and rating, followed by optional covariates. Note: Most functions assume that user and item IDs are numbered consecutively, starting at 1.

List of major functions:

   matrix factorization model (MFM):

      trainReco():  fit MFM
      predict.Reco():  predict from MFM 
      xvalReco():  cross-validation evaluation of MFM

   statistical random effects additive model:

      trainMLE():  fit Max. Likelihood model
      trainMM():  fit Method of Moments model
      trainMLE():  alias for trainMLE()
      trainMM():  alias for trainMM()
      predict.ydotsMLE():  predict from MLE
      predict.ydotsMM():  predict from MM
      xvalMLE):  cross-validation of MLE
      xvalMM):  cross-validation of MM
      findMultiplicYdots():  fit multiplicative MM model, binary Y

   statistical random effects multiplicative model:

      trainMultiplicYdots(): fit mult. model for binary Y 
      predict.MMmultiplic(): predict from that model 

   k-nearest neighbor model:

      formUserData():  aggregate items for each user, etc.
      cosDist():  calculates cosine distance on users with certain 
         item patterns
      predict.usrData():  predict using kNN

   misc.:

      focusGrp():  finds a "focus group," i.e. some "representative" users
      ratingness():  find number of ratings for each user or 
         number of users per rating
      covratingness():  for each row of the raw input data

   

Examples


# try lme4 data set InstEval, needs some prep first.
data(InstEval)
ivl <- InstEval
# convert factors to numeric:
ivl$s <- as.numeric(ivl$s)
ivl$d <- as.numeric(ivl$d)
ivl$studage <- as.numeric(ivl$studage)
ivl$lectage <- as.numeric(ivl$lectage)
ivl$service <- as.numeric(ivl$service)
# make correct format, and choose covs:
ivl <- ivl[,c(1,2,7,3:6)]
# create dummy variables in place of dept:
library(dummies)
dms <- dummy(ivl$dept)
dms <- as.data.frame(dms)
dms$dept2 <- NULL
ivl$dept <- NULL
ivl <- cbind(ivl,dms)
# run the training data, no covariates:
# ydout <- trainMM(ivl[,1:3])
ydout <- trainMM(ivl[,1:3])
# form a test set to illustrate prediction:
testSet <- ivl[c(3,8),]  # these happen to be students 1, 3
# say want to predict how well students 1 and 3 would like instructor 12
testSet[1,2] <- 12
testSet[2,2] <- 12
# predict:
predict(ydout,testSet[,1:2])  
# try using the covariates:
# ydout <- trainMM(ivl)
ydout <- trainMM(ivl)
predict(ydout,testSet[,-3])  


matloff/rectools documentation built on March 31, 2022, 12:09 p.m.