nicolashug/surprise

A Python scikit for building and analyzing recommender systems

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 18 minutes ago
Added to GitGenius on September 9th, 2026
Created on October 23rd, 2016
Open Issues & Pull Requests: 80 (+0)
GitHub issues: Enabled
Number of forks: 1,050
Total Stargazers: 6,811 (+0)
Total Subscribers: 135 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 37.3 hours
Mean response time: 151.0 days
90th percentile: 136.0 days
Tracked items: 13

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 1
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 281 days
Stale 30+ days: 1
Stale 90+ days: 1

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Surprise is a Python scikit for building and analyzing recommender systems that work with explicit rating data.

The tool addresses the challenge of implementing and evaluating recommendation algorithms by providing a unified framework with built-in dataset handling, multiple prediction algorithms, and comprehensive evaluation tools. It handles both well-known datasets like MovieLens and Jester as well as custom datasets. The library includes baseline algorithms, neighborhood methods, and matrix factorization approaches such as SVD, PMF, SVD++, and NMF, along with various similarity measures. Cross-validation and parameter tuning are built in with tools inspired by scikit-learn, and the framework supports custom algorithm implementation.

Surprise suits researchers and practitioners working specifically with explicit rating data who want fine-grained control over experiments and clear documentation of algorithmic details. It is not appropriate for implicit feedback scenarios or content-based recommendation approaches. The tool emphasizes transparency in algorithm behavior and provides analysis and comparison capabilities through notebooks and evaluation metrics like MAE and RMSE.

The project maintains active engagement with its codebase through regular updates and refinements to core functionality. Documentation receives ongoing attention with detailed explanations of algorithm specifics. The tool continues to receive improvements to its evaluation and analysis capabilities, reflecting responsiveness to user needs in the recommender systems domain.