Supporting code for my Master's thesis, entitled "Comparing local neighborhood-based collaborative filtering variants: a tradeoff between prediction performance and coverage".
Code in this repository is composed of Python modules, notebooks, scripts and other files.
- datasets: Dataset loading and preprocessing.
- evaluation: Evaluation metrics.
- pattern_mining: Pattern mining algorithms. (e.g. GreConD)
- recommenders: Multiple Surprise based Recommender Systems implementations.
- demos: Jupyter notebooks used to demonstrate the usage of the modules and concepts.
- experiments: Jupyter notebooks used to generate the results of the experiments.
- plots: Jupyter notebooks used to generate plots for the thesis.
- environment: Docker environment for running anything in this repository.
- scripts: Support scripts for other tasks.
- tests: Unit tests.
- Build the environment image as described in the Environment Setup section.
- Run the unit tests.
This will run the unit tests inside the environment and output the results to the terminal.
cd ci ./test -f # Run the complete test suite, including the notebooks and coverage analysis ./test -h # See help for more options
-
Build the environment image as described in the Environment Setup section.
-
Start the Jupyter Server
cd environment # Run the server docker compose -f notebook.yml run --build --rm notebook # Or run with CUDA support docker compose -f notebook-cuda.yml run --build --rm notebook-cuda
-
Either open the link printed in the terminal or connect to the server using the VSCode Jupyter extension. Check the Environment Setup section for more details.
-
Run the notebooks in the
demos
andexperiments
directories.
For BinaPs information, please check the BinaPs Code Authorship Disclaimer located at DISCLAIMER.
All code elsewhere is written by Bernardo C. Rodrigues and licensed under GPL-3.0-or-later. Please check COPYING for the complete license.