#115115th of 126 in ML frameworks and libraries
surprise
Python scikit for building and evaluating rating-based recommender systems
Documentation ↗
(opens in a new tab)Website ↗
(opens in a new tab)Repository on GitHub ↗
(opens in a new tab)
- Stars
- 6.8k
- License
- BSD-3-Clause
- Last commit
- May 2026
- Language
- Python
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| Rank | Project | Score |
|---|---|---|
| 1 | pytorchPython tensor library with GPU support and tape-based autograd for deep learning | 95 out of 100 |
| 2 | transformersPython library defining open models for text, vision, audio and multimodal tasks | 94 out of 100 |
| 3 | ultralyticsPython library and CLI for training and running YOLO vision models | 93 out of 100 |
| #4 | pytorch-image-modelsPyTorch library of image models, pretrained weights and reference training scripts | 93 out of 100 |
| #5 | supervisionPython toolkit for loading, annotating and counting computer vision detections | 91 out of 100 |