Software library on stream based recommender systems
Project description
FEUP-DISS
This repository hosts the Software library on stream based recommender systems. This is part of my thesis dissertation done at the Faculty of Engineering of the University of Porto.
General Overview
Contents
This software library contains code regarding the implementation of recommendation systems on online platforms. It implements some algorithms, test metrics and data structures, so that it can process incoming information, denoted as a stream of ratings. Each rating can be implicit or explicit and is given from an user to an item. Explicit ratings are direct evaluations given by users, for example on a 1-10 scale. Implicit ratings can be interpreted as actions users took on items(for example a page click) which can be interpreted as the user liking that specific item. Each rating is a tuple : (user_id, item_id, rating). For implicit feedback the tuple becomes: (user_id, item_id)
Current implemented algorithms:
- Explicit User-Based Collaborative Filtering
- Explicit User-Based Clustering Collaborative Filtering
- Implicit User-Based Collaborative Filtering
- Implicit User-Based Clustering Collaborative Filtering
- Implicit Locality-Sensitive-Hashing Item-Based Collaborative Filtering
- Implicit Locality-Sensitive-Hashing User-Based Collaborative Filtering
- Implicit Matrix Factorization
- Explicit Matrix Factorization with matrix preprocessing
- Explicit Matrix Factorization without matrix preprocessing
- Implicit Item-Based Collaborative Filtering
- Implicit Item-Based Clustering Collaborative Filtering
Install
Currently the library is deployed on Pypi.
pip install increc
Dependencies
For development purposes:
- Python3.8
- Pipenv is required to run this on a virtual environment.
pip install --user pipenv
python -m pipenv lock -r > requirements.txt
pipenv install -r requirements.txt
Run Tests
This library uses unittest for unit testing and flake8 as its linter.
pipenv run python -m unittest discover -v -p "*_test.py"
pipenv run flake8
Run Examples
Usage examples are located in the examples
folder.
pipenv run python -m examples.collaborative_filtering.neighborhood.explicit_feedback.user_based.user_based_clustering "data_set"
Documentation
Documentation is created using Sphinx.
pipenv run sphinx-apidoc -f -o docs/source algorithms
pipenv run sphinx-apidoc -f -o docs/source stream
pipenv run sphinx-apidoc -f -o docs/source data_structures
pipenv run sphinx-apidoc -f -o docs/source utils
pipenv run sphinx-apidoc -f -o docs/source graphic
pipenv run sphinx-build -b html docs/source/ docs/build
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.