--- id: scikit-surprise version: "1.1.5" license: Copyright (c) 2016, Nicolas Hug All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1.… (full text in the JSON record) license_treatment: permissive maintenance: active --- # scikit-surprise — An easy-to-use library for recommender systems. License: permissive · Maintenance: active · Downloads: 119.9K/mo ## 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 above — verify before relying. Scikit-surprise builds and evaluates recommender systems that predict explicit ratings using algorithms like SVD, matrix factorization, k-NN, and baseline methods. 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 pip install scikit-surprise uv add scikit-surprise poetry add scikit-surprise ## Installing scikit-surprise 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. 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) Requires Python 3.10 or later; joblib, numpy, and scipy must be installed as runtime dependencies. 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 - License: Copyright (c) 2016, Nicolas Hug All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1.… (full text in the JSON record) (permissive) - Python support: supports_current - Install friction: medium - Maintenance: active - Downloads: 119.9K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags recommender system library, rating prediction algorithms, collaborative filtering, matrix factorization SVD, recommendation engine, cross-validation for recommendations, explicit rating prediction, collaborative-filtering, recommender-systems, machine-learning [View on SkillFed](https://skillfed.io/packages/scikit-surprise) · [View on PyPI](https://pypi.org/project/scikit-surprise/)