Context-sensitive ranking
Project description
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
History
1.1.0 (2020-03-19)
Add the expected reciprocal rank (ERR) metric.
Fix bug in callbacks causing the wrong learning rate schedule to be applied.
Make csrank easier to install by making some dependencies optional.
Add guidelines for how to contribute to the project.
1.0.2 (2020-02-12)
Fix deployment to GH-pages
1.0.1 (2020-02-03)
Add HISTORY.rst file to track changes over time
Set up travis-ci for deployment to PyPi
1.0.0 (2018-03-05)
Initial release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for csrank-1.1.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9293283662346a3d82b811534fada706d6a722baa6196b4bcee5df4b8d9dcbd |
|
MD5 | 38f084484a605ad5b63cdd95bd249300 |
|
BLAKE2b-256 | 6919774e6a6be6e9b563d75e8e19ccb45b0d52dde42c32e20630a63ab6928135 |