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.
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.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/vinta/awesome-python/pull/825
**Author:** [@NicolasHug](https://github.com/NicolasHug)
**Created:** 1/30/2017
**Status:** ✅ Merged
**Merged:** 1/31/2017
**Merged by:** [@vinta](https://github.com/vinta)
**Base:** `master` ← **Head:** `master`
---
### 📝 Commits (1)
- [`9f161de`](https://github.com/vinta/awesome-python/commit/9f161deb04f4716810374912cb04b997b70f802e) Add surprise
### 📊 Changes
**1 file changed** (+1 additions, -0 deletions)
<details>
<summary>View changed files</summary>
📝 `README.md` (+1 -0)
</details>
### 📄 Description
Disclaimer: I'm the author of surprise ;)
## What is this Python project?
[Surprise](http://surpriselib.com) is a Python [scikit](https://www.scipy.org/scikits.html) 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](http://surprise.readthedocs.io/en/latest/index.html), 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](http://surprise.readthedocs.io/en/latest/getting_started.html#load-a-custom-dataset). Users can use both *built-in* datasets
([Movielens](http://grouplens.org/datasets/movielens/), [Jester](http://eigentaste.berkeley.edu/dataset/)), and their own *custom* datasets.
- Provide various ready-to-use [prediction algorithms](http://surprise.readthedocs.io/en/latest/prediction_algorithms_package.html) such as [baseline algorithms](http://surprise.readthedocs.io/en/latest/basic_algorithms.html), [neighborhood methods](http://surprise.readthedocs.io/en/latest/knn_inspired.html), matrix factorization-based ( [SVD](http://surprise.readthedocs.io/en/latest/matrix_factorization.html#surprise.prediction_algorithms.matrix_factorization.SVD), [PMF](http://surprise.readthedocs.io/en/latest/matrix_factorization.html#unbiased-note), [SVD++](http://surprise.readthedocs.io/en/latest/matrix_factorization.html#surprise.prediction_algorithms.matrix_factorization.SVDpp), [NMF](http://surprise.readthedocs.io/en/latest/matrix_factorization.html#surprise.prediction_algorithms.matrix_factorization.NMF)), and [many others](http://surprise.readthedocs.io/en/latest/prediction_algorithms_package.html). Also, various [similarity
measures](http://surprise.readthedocs.io/en/latest/similarities.html) (cosine, MSD, pearson...) are built-in.
- Make it easy to implement [new algorithm ideas](http://surprise.readthedocs.io/en/latest/building_custom_algo.html).
- Provide tools to [evaluate](http://surprise.readthedocs.io/en/latest/evaluate.html), [analyse](http://nbviewer.jupyter.org/github/NicolasHug/Surprise/tree/master/examples/notebooks/KNNBasic_analysis.ipynb/) and [compare](http://nbviewer.jupyter.org/github/NicolasHug/Surprise/blob/master/examples/notebooks/Compare.ipynb) the algorithms performance. Cross-validation procedures can be run very easily, as well as [exhaustive search over a set of parameters](http://surprise.readthedocs.io/en/latest/getting_started.html#tune-algorithm-parameters-with-gridsearch).
## What's the difference between this Python project and similar ones?
- According to any google search, [crab](https://muricoca.github.io/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](https://github.com/ocelma/python-recsys). Provides with two prediction algorithms (k-NN and SVD) but is also unmaintained. Evaluation tools are very minimal.
- There's [GraphLab](https://turi.com/), which is not free and needs license registration. I've heard good feedback about it, but never used it.
- [LightFM](http://lyst.github.io/lightfm/docs/index.html). 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](http://surpriselib.com) 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 :+1: to it, and usually, the maintainer will merge it when votes reach **20**.
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/vinta/awesome-python/pull/825
Author: @NicolasHug
Created: 1/30/2017
Status: ✅ Merged
Merged: 1/31/2017
Merged by: @vinta
Base:
master← Head:master📝 Commits (1)
9f161deAdd surprise📊 Changes
1 file changed (+1 additions, -0 deletions)
View changed files
📝
README.md(+1 -0)📄 Description
Disclaimer: I'm the author of surprise ;)
What is this Python project?
Surprise is a Python scikit building and analysing recommender systems.
Main features:
(Movielens, Jester), and their own custom datasets.
measures (cosine, MSD, pearson...) are built-in.
What's the difference between this Python project and similar ones?
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.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.