This repository is now use to store some raw-input algorithm for learning and no longer providing bug-fix.
anyone interested in this repository can come [here](https://github.com/AmazingDD/daisyRec), I write a more standard python toolkit of Daisy in that repo.
Daisy is a Python toolkit that deal with rating prediction and item ranking issue.
The name DAISY (roughly :) ) stands for Di's fAIr compArIson for recommender SYstem.
-
you can also download experiment data from links below:
- MovieLens 100K
- MovieLens 1M
- MovieLens 10M
- MovieLens 20M
- Netflix Prize Data
- Last.fm
- Book Crossing
- Epinions
- CiteULike
- Amazon-Book
- Amazon-Electronic
- Amazon-Cloth
- Amazon-Music
- Yelp Challenge
then put certain dataset into corresponding folder in
data
folder. -
Item-Ranking recommendation algorithms reimplementation with pytorch, tensorflow, numpy and scipy.
-
Before running, you need first run
python setup.py build_ext --inplace
to generate.so
file formacOS
or.pyd
file forWindowsOS
used for further import.
make sure you have a CUDA enviroment to accelarate since these deep-learning models could be based on it.
Algo. | File | Refer. |
---|---|---|
Popular | MostPopRecommender.py | - |
Item-KNN | ItemKNNRecommender.py | - |
User-KNN | UserKNNRecommender.py | - |
SLiM | SLiMRecommender.py | SLIM: Sparse Linear Methods for Top-N Recommender Systems |
MF | MFRecommender.py | Probabilistic matrix factorization |
PureSVD | PureSVDRecommender.py | Performance of recommender algorithms on top-N recommendation tasks |
SVD++ | SVDppRecommender.py | Factorization meets the neighborhood: a multifaceted collaborative filtering model |
WRMF | WRMFRecommender.py | Collaborative Filtering for Implicit Feedback Datasets |
BPR-MF | BPRMFRecommender.py | BPR: Bayesian Personalized Ranking from Implicit Feedback |
BPR-FM | BPRFMRecommender.py | BPR: Bayesian Personalized Ranking from Implicit Feedback |
FM | NFMRecommender.py | Factorization Machines |
NeuFM | NFMRecommender.py | Neural Factorization Machines for Sparse Predictive Analytics |
NeuMF | NCFRecommender.py | Neural Collaborative Filtering |
Item2Vec | Item2VecRecommender.py | Item2Vec: Neural Item Embedding for Collaborative Filtering |
AutoRec | IAutoRecommender.py | AutoRec: Autoencoders Meet Collaborative Filtering |
Default set top-K number to 10, you can change top-K number by modifying topk
argument.
python ItemKNNRecommender.py --sim_method=pearson
python UserKNNRecommnder.py --sim_method=jaccard
python MFRecommender.py --biased=False
python NFMRecommender.py --batch_size=128 --lr=0.05 --model=FM
Help message will give you more detail description for arguments, For example:
python NFMRecommender.py --help
Here are the Precision, Recall, MAP, NDCG, MRR of various algorithms on a 5-fold cross validation procedure. The code for generating these tables is shown in each Recommender.py.
Here is a Bibtex entry if you ever need to cite Daisy in a research paper (please keep us posted, we would love to know if Daisy was helpful to you):
@Misc{,
author = {},
title = {},
howpublished = {\url{}},
year = {2020}
}
Starting from version 1.0.0, we will only provide bugfixes. No new algorithms will be considered.
For bugs, issues or questions about Daisy, please use the GitHub project page. Please don't send emails (we will not answer).