This recommender is developed using user-based collaborative filtering and SVM classifier. The data is acquired from kaggle.
The model is trained by using 1000 user
at max, because hardware limitation. Even if it's only 1000 user
, the preprocessed input's dimension are somewhere around 390785x3534
, which is very huge considering the fact that the exported CSV size is reaching ±5 GB
in total.
The way this recommendation system works is by using cosine similarity to find k
similar user and decide the top n
anime based on each similar user scoring. The SVM classifier predict the selected user's disliked animes based on each anime's genre and then remove it from the recommendation list.
- Clone this repo & move to its directory
- Activate your virtual env
- Install the required packages with
pip install -r requirements.txt
- And you're good to go
- Copy or rename
.env.example
to.env
and set it up accodingly - Run
flask run
in terminal - Open the provided localhost url
- Select user and wait for their result
- Follow instructions in DATA directory
- Follow instructions in EXPORT directory
- Run
python recommender.py
- And the top 5 anime recommendation for user with the username
Zexu
or user_id459521
will be shown by default (might want to edit this in the file directly because it will cause error if the user doesn't exist)