Changelog

Version 0.3.0 (Current)

Major Features

  • Added free decoder option for reconstruction objective

  • Added option to disable nonlinearity in distance distortion objective

  • Fixed normalization handling in optimization

  • Improved mathematical correctness and documentation

New Parameters

  • tied_weights (bool): Whether to use tied weights for reconstruction (default: True)

  • l2_reg (float): L2 regularization strength for decoder weights (default: 0.0)

  • use_nonlinearity_in_distance (bool): Whether to apply ridge function before computing distances (default: True)

New Properties

  • decoder_weights_: Access to decoder weights for untied reconstruction models

API Improvements

  • Maintained full backward compatibility

  • Enhanced parameter validation and error messages

  • Improved optimization convergence through better normalization handling

Documentation

  • Added comprehensive Sphinx documentation

  • Clarified mathematical formulations in README

  • Added detailed examples and API reference

  • Fixed mathematical notation inconsistencies

Testing

  • Added comprehensive test suite for new features

  • Verified mathematical correctness of implementations

  • Added performance and convergence tests

Version 0.1.x (Previous)

  • Initial implementation of projection pursuit

  • Basic distance distortion and reconstruction objectives

  • PCA and random initialization strategies

  • Integration with scikit-learn API