All Versions
Latest Version
Avg Release Cycle
115 days
Latest Release

Changelog History
Page 1

  • v1.1.1 Changes

    Date: 19/07/2020

    โœ๏ธ Mostly doc typos and some minor bug fixes. Future versions (if any) ๐Ÿ‘ will not support Python 2 anymore.

    ๐Ÿ› Bug Fixes

    • 'mse' is now available in GridSearCV and RandomizedSearchCV
    • โšก๏ธ The Jester dataset link was updated
    • ๐Ÿ›  Fixed a potential race condition when creating dataset directories
  • v1.1.0 Changes

    September 13, 2019

    Date: 13/11/2019

    1.1.0 will be the last stable version with new features. Next versions will ๐Ÿ›  only provide bug-fixes, but no new features. (And probably not support Python 2 at all).

    โœจ Enhancements

    • The prompt confirmation can now be disabled when downloading a dataset.
    • The MSE metric has been added.

    ๐Ÿ› Bug Fixes

    • ๐Ÿ›  Fixed a bug where msd and peasron would not properly set the similarity to zero when min_support wasn't reached.

    API Changes

    • ๐Ÿ—„ Tools that were deprecated before (data.split(), GridSearch, evaluate) are now removed.
  • v1.1.rc0

    September 13, 2019
  • v1.0.6 Changes

    April 22, 2018

    Date: 22/04/18

    โœจ Enhancements

    • โž• Added verbose option to algorithms using a similarity matrix or baseline computation, to avoid unwanted printed messages.
    • When PredictionImpossible is raised, the prediction is now deferred to default_prediction() method, which can be overridden is child classes. This allows to not always set the default prediction to the average rating, which can be useful for some algorithms (e.g. those working with implicit positive feedback).
    • LeaveOneOut() now accepts a min_n_ratings parameter to make sure users in the trainset have at least min_n_ratings ratings.
    • Dumping is now done with pickle's highest protocol which allows for larger files.

    ๐Ÿ› Bug Fixes

    • 0๏ธโƒฃ Joblib parameter n_jobs now defaults to 1 (no use of multiprocessing). Should fix issues with Windows users.
    • cross_validate now returns correct values for training measures (used to return test measures instead).
  • v1.0.5 Changes

    January 09, 2018

    Date: 09/01/18

    โœจ Enhancements

    • Cross-validation tools have been entirely reworked. We can now rely on powerful and flexible cross-validation iterators, inspired by scikit-learn's API.
    • the evaluate() method has been replaced by cross-validate which is parallel and can return measures on trainset as well as computation times.
    • ๐Ÿ‘ท GridSearch is now parallel, using joblib.
    • GridSearch now allows to refit an algorithm on the whole dataset.
    • 0๏ธโƒฃ default data directory can now be custom with env variable SURPRISE_DATA_FOLDER
    • the fit() (and train()) methods now return self, which allows one-liners like
    • Algorithms using a random initialization (e.g. SVD, NMF, CoClustering) now have a random_state parameter for seeding the RNG.
    • The getting started guide has been rewritten

    API Changes

    • ๐Ÿ—„ The train() method is now deprecated and replaced by the fit() method (same signature). Calls to train() should still work as before.
    • ๐Ÿ—„ Using data.split() or accessing the data.folds() generator is deprecated and replaced by the use of the more powefull CV iterators.
    • evaluate() is deprecated and replaced by model_selection.cross_validate(), which is parallel.
    • ๐Ÿ—„ GridSearch is deprecated and replaced by model_selection.GridSearchCV()
  • v1.0.4 Changes

    September 30, 2017

    Date: 20/09/17

    โœจ Enhancements

    • โž• Added possibility to load a dataset from a pandas dataframe
    • โž• Added Precision and Recall examples to the FAQ (Maher Malaeb)
    • โž• Added a kNN algorithm with normalization by z-score (Hengji Liu)
    • kNN algorithms now use heapq instead of list.sort() (computation time enhancement for large datasets).

    ๐Ÿ›  Fixes

    • Prediciont.str() when r_ui is None
    • GridSearch for dict parameters is now working as expected

    API Changes

    • ๐Ÿ‘€ param_grid for GridSearch is now slightly different for dict parameters (see note on the docs).
  • v1.0.3 Changes

    May 03, 2017

    Date: 03/05/17

    โœจ Enhancements

    • โž• Added FAQ in the doc
    • โž• Added the possibility to retrieve the k nearest neighbors of a user or an item.
    • ๐Ÿ”„ Changed the dumping process a bit (see API changes). Plus, dumps can now be loaded.
    • โž• Added possibility to build a testset from the ratings of a training set
    • โž• Added inner-to-raw id conversion in the Trainset class
    • The r_ui parameter of the predict() method is now optional

    ๐Ÿ›  Fixes

    • ๐Ÿ›  Fixed verbosity of the evaluate function
    • Corrected prediction when only user (or only item) is unknown in SVD and NMF algorithms. Thanks to kenoung!
    • Corrected factor vectors initialization of SVD algorithms. Thanks to adideshp!

    API Changes

    • The dump() method now dumps a list of predition (optional) and an algorithm (optional as well). The algorithm is now a real algorithm object. The trainset is not dumped anymore as it is already part of the algorithm anyway.
    • The dump() method is now part of the dump namespace, and not the global namespace (so it is accessed by surprise.dump.dump)
  • v1.0.2 Changes

    January 04, 2017

    Date: 04/01/17

    ๐Ÿ‘ Just a minor change so that is converted to rst for better rendering on PyPI.

  • v1.0.1 Changes

    January 02, 2017

    Date: 02/01/17

    โœจ Enhancements

    • โž• Added the GridSearch feature, by Maher
    • โž• Added a 'clip' option to the predict() method
    • โž• Added NMF algorithm
    • โž• Added entry point for better command line usage.
    • โž• Added CoClustering algorithm.
    • โž• Added SlopeOne algorithm.
    • โž• Added Probabilistic Matrix Factorization as an option SVD
    • Cythonized Baseline Computation


    • Surprise is now a scikit!
    • ๐Ÿ”„ Changed license to BSD
    • Six is now a dependency
  • v1.0.0 Changes

    November 22, 2016

    Date: 22/11/16

    • ๐Ÿ”„ Changed name from recsys to surprise
    • ๐Ÿ‘Œ Improved printing of accuracy measures.
    • โž• Added version number.
    • Rewrote the the