$npx skillfedfor your agent

scikit-surprise

An easy-to-use library for recommender systems.

Worth itPyPI Scientific/EngineeringReleased May 2026119.9K downloads / mopermissive licensePlatform wheel

Decision gist · record as of 2026-08-14

platform wheels — scikit_surprise-1.1.5-cp310-cp310-macosx_11_0_arm64.whl · scikit_surprise-1.1.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl · scikit_surprise-1.1.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
v1.1.5 · released 2026-05-30 · Python >=3.10 · 3 runtime deps: joblib, numpy, scipy

Yes. Scikit-surprise is a mature, actively maintained library (Production/Stable status, 6806 stars, recent release) with no known security vulnerabilities, permissive licensing, and solid support for modern Python versions. It is the standard choice for explicit-rating recommender system research and prototyping. Install it if you need to build, evaluate, or compare collaborative filtering algorithms; skip it only if you require implicit feedback or content-based methods.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Python 3.10 or later; joblib, numpy, and scipy must be installed as runtime dependencies.
  • Medium install friction due to compiled wheels for multiple Python versions (3.10–3.14) and platforms.
  • Active maintenance with recent release (76 days ago) and 6806 repository stars indicate solid ongoing support.

License · maintenance · safety

permissive license (permissive) — BSD 3-Clause license is permissive; you can use, modify, and distribute the package freely in commercial and private projects with attribution and liability disclaimers.

last release 2026-05-30 (76 days) · last repo commit 2026-05-30 · 6,806 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 119,875 downloads/mo, #12,052 on PyPI

Verify before relying

from surprise import SVD, Dataset
from surprise.model_selection import cross_validate

data = Dataset.load_builtin('ml-100k')
algo = SVD()
cross_validate(algo, data, measures=['RMSE', 'MAE'], cv=5)
  • Whether the package supports implicit feedback or content-based filtering (description states it does not, but confirmation of scope limits would help).
  • Performance characteristics on datasets larger than Movielens 1M or with sparse rating matrices.
Same gist for agents: .md · .json

What it is and what it does

Scikit-surprise is a Python library for building and analyzing recommender systems that work with explicit rating data. It provides a collection of ready-to-use prediction algorithms—including SVD, matrix factorization variants (PMF, SVD++, NMF), k-NN methods, baseline algorithms, and co-clustering—along with built-in similarity measures and tools for cross-validation and hyperparameter tuning. The library is designed to give users control over experiments through clear documentation and easy dataset handling, supporting both built-in datasets (Movielens, Jester) and custom data.

The package depends on joblib, numpy, and scipy for its core numerical and parallelization operations. It is actively maintained, supports Python 3.10 through 3.14, and is distributed as precompiled wheels for macOS, Linux, and Windows. The library does not support implicit ratings or content-based information, focusing instead on explicit rating prediction tasks.

Use it for

  • Evaluate and compare different collaborative filtering algorithms on rating datasets using cross-validation and standard metrics (RMSE, MAE).
  • Prototype and tune recommender systems with grid search over algorithm hyperparameters before deploying to production.
  • Analyze algorithm performance on Movielens or Jester datasets to understand baseline behavior and algorithm trade-offs.
  • Build custom recommendation algorithms by extending the library's base classes and integrating them into the evaluation framework.
  • Benchmark matrix factorization and neighborhood-based methods on your own explicit-rating datasets.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

Worth it

Yes.

Scikit-surprise is a mature, actively maintained library (Production/Stable status, 6806 stars, recent release) with no known security vulnerabilities, permissive licensing, and solid support for modern Python versions. It is the standard choice for explicit-rating recommender system research and prototyping. Install it if you need to build, evaluate, or compare collaborative filtering algorithms; skip it only if you require implicit feedback or content-based methods.

Install

scikit-surprise on PyPI

Before you install

Medium install friction due to compiled wheels for multiple Python versions (3.10–3.14) and platforms. Active maintenance with recent release (76 days ago) and 6806 repository stars indicate solid ongoing support.

Requires Python 3.10 or later; joblib, numpy, and scipy must be installed as runtime dependencies.

License in practice

BSD 3-Clause license is permissive; you can use, modify, and distribute the package freely in commercial and private projects with attribution and liability disclaimers.

Quickstart

from surprise import SVD, Dataset
from surprise.model_selection import cross_validate

data = Dataset.load_builtin('ml-100k')
algo = SVD()
cross_validate(algo, data, measures=['RMSE', 'MAE'], cv=5)

Verify before relying

  • Whether the package supports implicit feedback or content-based filtering (description states it does not, but confirmation of scope limits would help).
  • Performance characteristics on datasets larger than Movielens 1M or with sparse rating matrices.

Package facts

Licensepermissive license permissive
Python supportSupports the current Python release >=3.10
Install frictionMedium. Platform-specific wheel
Runtime dependencies
3 packages
joblibnumpyscipy
MaintenanceActively maintained 76 days since the last release
Last repo commit
First released
Downloads119,875 / month, #12,052 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: EducationIntended Audience :: Science/ResearchLicense :: OSI Approved :: BSD LicenseProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Scientific/Engineering

Evidence: scikit_surprise-1.1.5-cp310-cp310-macosx_11_0_arm64.whl; scikit_surprise-1.1.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; scikit_surprise-1.1.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; scikit_surprise-1.1.5-cp310-cp310-win_amd64.whl; scikit_surprise-1.1.5-cp311-cp311-macosx_11_0_arm64.whl; scikit_surprise-1.1.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; scikit_surprise-1.1.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; scikit_surprise-1.1.5-cp311-cp311-win_amd64.whl; scikit_surprise-1.1.5-cp312-cp312-macosx_11_0_arm64.whl; scikit_surprise-1.1.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; scikit_surprise-1.1.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; scikit_surprise-1.1.5-cp312-cp312-win_amd64.whl; scikit_surprise-1.1.5-cp313-cp313-macosx_11_0_arm64.whl; scikit_surprise-1.1.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; scikit_surprise-1.1.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; scikit_surprise-1.1.5-cp313-cp313-win_amd64.whl; scikit_surprise-1.1.5-cp314-cp314-macosx_11_0_arm64.whl; scikit_surprise-1.1.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; scikit_surprise-1.1.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; scikit_surprise-1.1.5-cp314-cp314t-macosx_11_0_arm64.whl

Tags

Capabilities
recommender system libraryrating prediction algorithmscollaborative filteringmatrix factorization SVDrecommendation enginecross-validation for recommendationsexplicit rating prediction
Topics
collaborative-filteringrecommender-systemsmachine-learning
PyPI keywords
recommenderrecommendation system

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “rating prediction algorithms”

  • scikit-surpriseScikit-surprise builds and evaluates recommender systems that predict…
  • glicko2Implements the Glicko-2 rating system, a skill-rating algorithm for…
  • trueskillImplements the TrueSkill rating algorithm to compute player skill…

Give your agent the search over MCP, or paste the wish link into any chat.

More Scientific/Engineering packages

numpy Worth it
PyPI · Software Development · released Aug 2026

NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.

BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0compiled wheel · 3.12+
1.1Bdownloads / mo
pandas Worth it
PyPI · Scientific/Engineering · released Jul 2026

pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.

BSD-3-Clausecompiled wheel · 3.11+
769.1Mdownloads / mo
scipy Worth it
PyPI · Libraries · released Jun 2026

scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.

BSD-3-Clausecompiled wheel · 3.12+
449.0Mdownloads / mo
scikit-learn Worth it
PyPI · Software Development · released Jun 2026

scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.

Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.

BSD-3-Clausecompiled wheel · 3.11+
235.5Mdownloads / mo
dill Worth it
PyPI · Software Development · released Jan 2026

dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.

BSD-3-Clausepure Python · 3.9+
208.1Mdownloads / mo
multiprocess Worth it
PyPI · Software Development · released Jan 2026

Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.

Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.

BSD-3-Clausepure Python · 3.9+
202.7Mdownloads / mo

See also tensorflow-recommenders · implicit · imbalanced-learn · trueskill · recbole · phik · spark-sklearn · forestci · treeinterpreter · scikit-learn-extra