Skip to content

A collection of recommendation algorithms and comparisons for Easy, Effective and Efficient experiments.

License

Notifications You must be signed in to change notification settings

Andrew-DungLe/cornac

 
 

Repository files navigation

Cornac

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.

Quick Links

Website | Documentation | Preferred.AI

TravisCI CircleCI AppVeyor Codecov Docs
Release PyPI Conda Conda Recipe
Python License

Installation

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

Note:

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

Output:

          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.

License

Apache License 2.0

About

A collection of recommendation algorithms and comparisons for Easy, Effective and Efficient experiments.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 86.4%
  • C++ 13.6%