#3 · Primary category: Recommender Systems

Surprise

factorization machine-learning matrix recommendation recommender svd systems

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