Skip to content

cca-zoo v3.0.0 — Full rewrite with cleaner API, strict typing, and new docs

Latest

Choose a tag to compare

@jameschapman19 jameschapman19 released this 07 Mar 21:04
b419b6a

Release notes:

What's new in v3.0.0

This is a ground-up rewrite focused on simplicity, correctness, and
long-term maintainability.

API changes (breaking)

  • Unified sklearn-style interface across all model families —
    fit(), transform(), fit_transform(), score(), get_params(),
    set_params() work consistently everywhere
  • model.weights replaces the old per-model attribute names
  • JointData(n_views=...).sample() replaces the old data-generation API
  • Deep models no longer ship built-in encoder architectures — pass your
    own nn.Module encoders; this removes the hidden coupling to specific
    network shapes
  • Probabilistic CCA results are now in model.posterior_samples_

New / improved models

  • Gradient linear models: PLS_EY, CCA_EY, MCCA_EY — Riemannian
    gradient descent on the Stiefel manifold with polar retraction
  • Full multiview support throughout: MCCA, GCCA, TCCA, KGCCA, KTCCA,
    DCCA variants, DTCCA

Quality

  • Fully typed codebase — passes mypy --strict with zero errors
  • Passes ruff check and ruff format with zero errors
  • Test suite with correctness/optimality checks (not just "code runs"):
    • CCA finds >0.95 correlation on correlated data; perfect on identical views
    • MCCA(2 views) == CCA; rCCA(c=0) == CCA; KCCA(linear, c→0) ≈ CCA
    • Canonical variates are orthogonal across dimensions
    • Gradient methods converge within atol=0.05 of exact eigendecomposition

Documentation

Removed

  • Built-in deep encoder architectures (architectures.py)
  • Old Sphinx documentation