This package implements a recommender system, similar to matrix factorization-based algorithms (SVD) available in the excellent Surprise.
This package extends the standard SVD recommender system by allowing researchers to include observed items attributes and also user taste parameters that vary over time. The model is fit using stochastic gradient descent.
The easiest way to obtain the package is to install using pip
:
pip install recommendx
The following resources may be helpful to use in getting started using recommendx
.
- Documentation.pdf - contains documentation and technical details, including information on installation, methods, and class attributes
- Demonstration.ipynb - this Jupyter notebook provides a brief tutorial on using
recommendx
The package contains two recommendation methods: RWR
and RWT
.
RWR
implements a slightly modified version of what might we might call the "classic" SVD algorithm. This is often attributed to Simon Funk, who famously used it during the Netflix Prize competition. The classic SVD approach relies only upon latent item attributes. RWR
extends this framework by allowing the researcher to specify observed item attributes, as well.
from recommendx import RWR
rwr = RWR(n_factors = 5)
rwr.fit(dat,att)
rwr.accuracy(dat,att)
rwr.predict('userA','item10')
RWT
implements the same basic model as RWR
but allows for time-varying taste parameters.
from recommendx import RWT
rwt = RWT(n_factors = 4)
rwt.fit(dat,att)
rwt.accuracy(dat,att)
rwt.predict('userA','item10','PM')
rwt.predict('userA','item10','AM')