RecSys.jl is an implementation of the ALS-WR algorithm from "Yunhong Zhou, Dennis Wilkinson, Robert Schreiber and Rong Pan. Large-Scale Parallel Collaborative Filtering for the Netflix Prize. Proceedings of the 4th international conference on Algorithmic Aspects in Information and Management. Shanghai, China pp. 337-348, 2008"
- Install:
Pkg.clone("https://github.com/abhijithch/RecSys.jl.git")
- Specify the training dataset in one of several ways:
- Use delimited (CSV) file with columns:
user_id
,item_id
,ratings
. E.g.:trainingset = DlmFile("ratings.csv", ',', true)
. - Use a MAT file, specifying the file and entry name. E.g.:
trainingset = MatFile("ratings.mat", "training")
- Provide an implementation of
FileSpec
for any other format.
- Use delimited (CSV) file with columns:
- Initialize:
als = ALSWR(trainingset)
- Train:
train(als, num_iterations, num_factors, lambda)
- Check model quality:
rmse(als)
to check against training datasetrmse(als, testdataset)
to check against a test dataset- and repeat training with different parameters till satisfactory
- Save model:
save(als, filename)
- Load model:
als = load(filename)
- Get recommendations:
recommend(als, user_id)
for an existing userrecommend(als, user_ratings)
for a new/anonymous user
See examples for more details: