Cornac is python recommender system library for easy, effective and efficient experiments. Cornac is simple and handy. It is designed from the ground-up to faithfully reflect the standard steps taken by researchers to implement and evaluate personalized recommendation models.
Currently, we are supporting Python 3 (version 3.6 is recommended). There are several ways to install Cornac:
- From PyPI (you may need a C++ compiler):
pip3 install cornac
- From Anaconda:
conda install cornac -c qttruong -c pytorch
- From the GitHub source (for latest updates):
pip3 install cython git clone https://github.com/PreferredAI/cornac.git cd cornac python3 setup.py install
Some installed dependencies are CPU versions. If you want to utilize your GPU, you might consider:
Getting started: your first Cornac experiment
Flow of an Experiment in Cornac
This example will show you how to run your very first experiment.
- Load the MovieLens 100K dataset (will be automatically downloaded if not cached).
from cornac.datasets import MovieLens100K ml_100k = MovieLens100K.load_data()
- Instantiate an evaluation method. Here we split the data based on ratio.
from cornac.eval_methods import RatioSplit ratio_split = RatioSplit(data=ml_100k, test_size=0.2, rating_threshold=4.0, exclude_unknowns=False)
- Instantiate models that we want to evaluate. Here we use
Probabilistic Matrix Factorization (PMF)as an example.
import cornac pmf = cornac.models.PMF(k=10, max_iter=100, learning_rate=0.001, lamda=0.001)
- Instantiate evaluation metrics.
mae = cornac.metrics.MAE() rmse = cornac.metrics.RMSE() rec_20 = cornac.metrics.Recall(k=20) pre_20 = cornac.metrics.Precision(k=20)
- Instantiate and then run an experiment.
exp = cornac.Experiment(eval_method=ratio_split, models=[pmf], metrics=[mae, rmse, rec_20, pre_20], user_based=True) exp.run()
MAE RMSE Recall@20 Precision@20 PMF 0.760277 0.919413 0.081803 0.0462
For more details, please take a look at our examples.