#3 · Primary category: Recommender Systems
Surprise
A Python scikit for building and analyzing recommender systems
Project last updated:05/30/26
GitHub Stars
6.8K
Forks
1.1K
Contributors
46
License
BSD-3-Clause
Why we included this project
Surprise is a Python library for predicting explicit user ratings, the kind of task behind movie and product recommendation services and most collaborative-filtering research. It has aged well as both a baseline engine and a teaching tool. Behind a clean scikit-learn-style API it bundles the classic algorithms people actually compare against, SVD, SVD++, NMF, k-NN neighborhood methods and Slope One, along with a set of similarity measures. Loading the built-in MovieLens or Jester datasets, or your own rating files, takes a few lines of code, and cross-validation, parameter tuning and error metrics come built in. The documentation walks through each algorithm in detail, so the library works just as well for learning the field as for running experiments. Just note that it targets explicit ratings only; implicit feedback and content-based signals are out of scope.
Articles for this project
No articles for this project yet.
To suggest a topic or contribute an article, contact us.
Related projects in this category
gorse
AI powered open source recommender system engine supports classical/LLM rankers and multimodal content via embedding
DeepCTR
Easy-to-use,Modular and Extendible package of deep-learning based CTR models .
RSPapers
RSTutorials: A Curated List of Must-read Papers on Recommender System.
lightfm
A Python implementation of LightFM, a hybrid recommendation algorithm.
RecBole
A unified, comprehensive and efficient recommendation library