Skip to content
Context-sensitive ranking and choice in Python with Tensorflow
Jupyter Notebook Python Shell
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
binder
csrank
docs
experiments
scripts
.coveragerc
.gitignore
.travis.yml
HISTORY.rst
LICENSE
MANIFEST.in
README.rst
pytest.ini
requirements.txt
setup.cfg
setup.py

README.rst

Build Status Coverage Binder

CS-Rank

CS-Rank is a Python package for context-sensitive ranking and choice algorithms.

We implement the following new object ranking/choice architectures:

  • FATE (First aggregate then evaluate)
  • FETA (First evaluate then aggregate)

In addition, we also implement these algorithms for choice functions:

  • RankNetChoiceFunction
  • GeneralizedLinearModel
  • PairwiseSVMChoiceFunction

These are the state-of-the-art approaches implemented for the discrete choice setting:

  • GeneralizedNestedLogitModel
  • MixedLogitModel
  • NestedLogitModel
  • PairedCombinatorialLogit
  • RankNetDiscreteChoiceFunction
  • PairwiseSVMDiscreteChoiceFunction

Check out our interactive notebooks to quickly find out what our package can do.

Getting started

As a simple "Hello World!"-example we will try to learn the Pareto problem:

import csrank as cs
from csrank import ChoiceDatasetGenerator
gen = ChoiceDatasetGenerator(dataset_type='pareto',
                                n_objects=30,
                                n_features=2)
X_train, Y_train, X_test, Y_test = gen.get_single_train_test_split()

All our learning algorithms are implemented using the scikit-learn estimator API. Fitting our FATENet architecture is as simple as calling the fit method:

fate = cs.FATEChoiceFunction(n_object_features=2)
fate.fit(X_train, Y_train)

Predictions can then be obtained using:

fate.predict(X_test)

Installation

The latest release version of CS-Rank can be installed from Github as follows:

pip install git+https://github.com/kiudee/cs-ranking.git

Another option is to clone the repository and install CS-Rank using:

python setup.py install

Dependencies

CS-Rank depends on Tensorflow, Keras, NumPy, SciPy, matplotlib, scikit-learn, scikit-optimize, joblib and tqdm. For data processing and generation you will also need PyGMO, H5Py and pandas.

Citing CS-Rank

You can cite our arXiv papers:

@article{csrank2019,
  author    = {Karlson Pfannschmidt and
               Pritha Gupta and
               Eyke H{\"{u}}llermeier},
  title     = {Learning Choice Functions: Concepts and Architectures },
  journal   = {CoRR},
  volume    = {abs/1901.10860},
  year      = {2019}
}

@article{csrank2018,
  author    = {Karlson Pfannschmidt and
               Pritha Gupta and
               Eyke H{\"{u}}llermeier},
  title     = {Deep architectures for learning context-dependent ranking functions},
  journal   = {CoRR},
  volume    = {abs/1803.05796},
  year      = {2018}
}

License

Apache License, Version 2.0

You can’t perform that action at this time.