#115115th of 126 in ML frameworks and libraries

surprise

Python scikit for building and evaluating rating-based recommender systems

Stars
6.8k
License
BSD-3-Clause
Last commit
May 2026
Language
Python
Stars, last 30 weeks+83
4 Apr 2026: 6,741 stars11 Apr 2026: 6,744 stars18 Apr 2026: 6,747 stars25 Apr 2026: 6,748 stars2 May 2026: 6,751 stars9 May 2026: 6,754 stars16 May 2026: 6,758 stars23 May 2026: 6,762 stars30 May 2026: 6,765 stars6 Jun 2026: 6,768 stars13 Jun 2026: 6,773 stars20 Jun 2026: 6,777 stars27 Jun 2026: 6,779 stars4 Jul 2026: 6,783 stars11 Jul 2026: 6,786 stars18 Jul 2026: 6,787 stars25 Jul 2026: 6,791 stars1 Aug 2026: 6,793 stars8 Aug 2026: 6,793 stars15 Aug 2026: 6,796 stars22 Aug 2026: 6,798 stars29 Aug 2026: 6,803 stars5 Sept 2026: 6,804 stars12 Sept 2026: 6,805 stars19 Sept 2026: 6,812 stars26 Sept 2026: 6,813 stars3 Oct 2026: 6,816 stars10 Oct 2026: 6,816 stars17 Oct 2026: 6,818 stars24 Oct 2026: 6,821 stars31 Oct 2026: 6,824 stars

6,741 on 4 Apr 20266,824 on 31 Oct 2026

From GitHub's daily star counts.

Checked on GitHub.

Overview

Surprise is a Python scikit with recommender algorithms for explicit rating data: baselines, k-NN variants, SVD, SVD++, NMF, PMF, Slope One and Co-Clustering. It has built-in MovieLens and Jester loaders, scikit-learn-style cross-validation iterators and GridSearchCV for tuning. The maintainer says it only gets bugfixes and occasional performance work.

Who it is for: Data scientists benchmarking explicit-rating recommenders in Python

Strengths

  • Ships SVD, SVD++, NMF, k-NN, Slope One and Co-Clustering with documented details
  • Built-in cross_validate and GridSearchCV; same folds across algorithms for comparison
  • Loads MovieLens and Jester built in, or custom rating datasets
  • README gives RMSE, MAE and runtime benchmarks on MovieLens 100k and 1M

Weaknesses

  • No support for implicit feedback or content-based information
  • Maintenance mode since 1.1.0 (2019); new features are not considered
  • SVD++ took about 35-41 minutes on MovieLens 1M in the README benchmark
  • No tagged release listed in the repository metadata

What it needs

  • no GPU
  • Needs numpy, Cython (source builds)
  • Models: SVD, SVD++, NMF, PMF, k-NN

Quick answers

Is surprise open source?

Yes. Its code is on GitHub under the BSD-3-Clause license.

Does surprise need a GPU?

No, it runs without one.

Also in ML frameworks and libraries

See all 126
Also in ML frameworks and libraries
RankProjectScore
1pytorchPython tensor library with GPU support and tape-based autograd for deep learning105.1k starscustom license95 out of 100
2transformersPython library defining open models for text, vision, audio and multimodal tasks168.4k starsApache-2.094 out of 100
3ultralyticsPython library and CLI for training and running YOLO vision models63k starsAGPL-3.093 out of 100
#4pytorch-image-modelsPyTorch library of image models, pretrained weights and reference training scripts37.3k starsApache-2.093 out of 100
#5supervisionPython toolkit for loading, annotating and counting computer vision detections Live demo ↗ (opens in a new tab)51.4k starsMIT91 out of 100