Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • A awesome-python
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 13
    • Issues 13
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 317
    • Merge requests 317
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Vinta Chen
  • awesome-python
  • Merge requests
  • !825

Add surprise

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Administrator requested to merge github/fork/NicolasHug/master into master Jan 30, 2017
  • Overview 3
  • Commits 1
  • Pipelines 0
  • Changes 1

Created by: NicolasHug

Disclaimer: I'm the author of surprise ;)

What is this Python project?

Surprise is a Python scikit building and analysing recommender systems.

Main features:

  • Give the user perfect control over his experiments. To this end, a strong emphasis is laid on documentation, which we have tried to make as clear and precise as possible by pointing out every details of the algorithms.
  • Alleviate the pain of Dataset handling. Users can use both built-in datasets (Movielens, Jester), and their own custom datasets.
  • Provide various ready-to-use prediction algorithms such as baseline algorithms, neighborhood methods, matrix factorization-based ( SVD, PMF, SVD++, NMF), and many others. Also, various similarity measures (cosine, MSD, pearson...) are built-in.
  • Make it easy to implement new algorithm ideas.
  • Provide tools to evaluate, analyse and compare the algorithms performance. Cross-validation procedures can be run very easily, as well as exhaustive search over a set of parameters.

What's the difference between this Python project and similar ones?

  • According to any google search, crab is the go-to package for RS. But it actually only has one prediction algorithm (k-NN), no evaluation tools, no doc, and has been dead for three years.
  • The second most popular package I think is Recsys. Provides with two prediction algorithms (k-NN and SVD) but is also unmaintained. Evaluation tools are very minimal.
  • There's GraphLab, which is not free and needs license registration. I've heard good feedback about it, but never used it.
  • LightFM. This package is focused on a specific set of algorithms (all Boolean-valued) and does not provide with other classical approaches.

I think what makes Surprise is it's doc, the variety of prediction algorithms and the ability to evaluate the performances of algorithms easily (cross-validation, GridSearch, etc.). This makes it a useful tool to get your hands dirty quickly with recommender systems.

--

Anyone who agrees with this pull request could vote for it by adding a 👍 to it, and usually, the maintainer will merge it when votes reach 20.

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/NicolasHug/master