Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.2.0] - 2026-04-15¶
Added¶
- Convergence overhaul: relative ELBO stopping, curvature stopping, composite convergence criteria, and configurable patience windows.
- K-fold cross-validated model selection via
cross_validate_componentsandCVConfig. - Preprocessing transforms:
MissingAwareLogTransformer,MissingAwarePowerTransformer,MissingAwareWinsorizer. - Preflight data diagnostics via
DataReportandcheck_data(). - Expose prior hyperparameters
hp_va,hp_vb,hp_vas VBPCA constructor parameters. - Expose
niter_broadprioron VBPCA constructor. - Expose
va_init(initial broad prior value) on VBPCA constructor. - Expose
xprobe_fractionfor auto-generated holdout probe masks, andmake_xprobe_maskutility. - Expose
xprobeparameter inVBPCA.fit()for explicit probe data. - Store subspace angle in learning curves (
lc["angle"]).
Fixed¶
- ARD stability with missing data: clamp per-iteration Va shrinkage rate and scale ARD denominator by observed-entry fraction.
_marginal_variancecrash whenrmemptydrops columns.variance_attribute now available on best model returned byselect_n_components.'rms'added to_Metrictype hint in model selection.
Changed¶
- Skip octave-parity CI job when only irrelevant files changed.
- Document RMS oscillation workaround (center data before fitting) in Known Limitations.
[0.1.0] - 2026-02-08¶
Added¶
- Core
VBPCAestimator with sklearn-likefit/transform/inverse_transformAPI. - Support for dense and sparse (CSR/CSC) data with explicit missing-entry masks.
- Optional bias estimation and orthogonal post-rotation to PCA basis.
- Posterior covariances for scores and loadings; probe-set RMS for held-out validation.
- C++ extensions via pybind11/Eigen for performance-critical dense, sparse, noise, and rotate kernels.
- Runtime autotuning: thread counts, buffered accessors, and covariance writeback mode selection.
select_n_componentsmodel selection with configurable metric, patience, and early stopping.SelectionConfigdataclass for sweep control.- Missing-aware preprocessing:
AutoEncoder,MissingAwareOneHotEncoder,MissingAwareStandardScaler,MissingAwareMinMaxScaler. MissingAwareSparseOneHotEncoderfor sparse categorical encoding preserving CSR structure.- Optional plotting utilities:
scree_plot,loadings_barplot,variance_explained_plot. - Property-based tests (hypothesis), integration round-trip tests, and missing-data edge-case tests.
- GitHub Actions CI: lint, format check, mypy --strict, pytest with coverage across Python 3.11–3.13.
justfilecommand runner with recipes for dev, test, benchmark, and CI workflows.- CITATION.cff for machine-readable citation metadata.