Pereference/Ranking Aggregation Library
All ideas and contributions are welcome. If you have any suggestions, you can contanct Pooya Moradi (po.moradi -at- ut.ac.ir) or Hamed Zamani (hamedzamani -at- acm.org). Please let us know if you found any problems/bugs in the code.
PAL is a ranking aggregation Ruby library developed in Intelligent Information Systems Labratory of School of ECE at University of Tehran.
- Weighted Kemeny Ranking
- Borda Count
- Copeland
- Schulze
At first you should clone the library.
git clone [email protected]:ut-iis/PAL.git
Now you should edit the sample config file according to your needs.
method: kemeny
out: /home/pooya/Projects/PAL/samples/output.dat
estimators:
listnet:
path: /home/pooya/Projects/PAL/samples/listnet.dat
weight: 2
ranknet:
path: /home/pooya/Projects/PAL/samples/ranknet.dat
weight: 3
listmle:
path: /home/pooya/Projects/PAL/samples/listmle.dat
weight: 3
svm:
path: /home/pooya/Projects/PAL/samples/svm.dat
weight: 1
evaluation:
solution_file: /home/pooya/Projects/PAL/samples/solution.dat
Then in the rank.rb
file you should address the config file and set if you want to evaluate the aggregation or not.
require './lib/pal.rb'
pal = PAL.new("/home/pooya/Projects/PAL/lib/inits/config.yml")
pal.run
#pal.evaluate("NDCG@10")
And finally:
ruby rank.rb
You can cite our paper published in ACM RecSys 2014:
@inproceedings{Zamani:2014,
author = {Zamani, Hamed and
Shakery, Azadeh and
Moradi, Pooya},
title = {Regression and Learning to Rank Aggregation for User Engagement Evaluation},
booktitle = {Proceedings of the 2014 Recommender Systems Challenge},
series = {RecSysChallenge '14},
location = {Foster City, CA, USA},
year = {2014},
publisher = {ACM},
address = {New York, NY, USA}
}