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
FileSpecfor 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:
