Skip to content

Release Notes

0.2.0

  • NNMF_mult and NNMF_sgd now clip predictions to the observed rating range by default (disable with fit(clip_predictions=False)), preventing out-of-range predictions such as negative values caused by unconstrained bias terms (#47). This is the same approach the Surprise package takes when making predictions
  • Fix estimate_performance failing with KeyError: 'user' when the input dataframe's index was not named exactly "User" (#38)
  • Center temporal dilation kernels on each observed sample and average (rather than sum) overlapping dilations (#41). Note: models fit with dilate_by_nsamples will produce numerically different (more accurate) results than previous versions
  • Detect and halt SGD training when predictions diverge to NaN, exposed via a new .error_is_nan model attribute (#42)
  • Fix splitting/combining datasets with mixed or non-string column and index names (#34, #36)
  • Support modern numpy (>=1.26) and pandas (>=2.1, including 3.x)
  • Drop support for Python < 3.11; tested on Python 3.11-3.14
  • Modernized tooling: uv + pyproject.toml for packaging and environments (replacing setup.py and requirements files) and ruff for linting/formatting (replacing black and pycodestyle)

0.1.0

  • Official pypi public release
  • Package rename

0.0.4

  • standardize codebase with black
  • complete API rewrite
  • new estimate_performance function
  • all new tests with pytest fixtures
  • new docs site with mkdocs

0.0.3

  • Fix dilation and convolution issues
  • Update tests
  • Drop support for Python 2

0.0.2

  • Fixed pandas .apply bug
  • Faster create_sub_by_item_matrix

0.0.1

  • Initial internal release