Skip to content

Fix MVN noise handling and train-only CompositePCA scaling - #8

Merged
robinthibaut merged 2 commits into
mainfrom
robin/skbel-inference-contracts
Sep 10, 2026
Merged

robinthibaut merged 2 commits into
mainfrom
robin/skbel-inference-contracts

Conversation

@robinthibaut

Copy link
Copy Markdown
Owner

Summary

  • Assign and validate explicit BEL.predict(noise=...) values before the MVN
    covariance path consumes them. Preserve the historical None reset to0.01.
  • Fit CompositePCA's optional scalers on training PCA scores once, reuse them
    during transform and undo them before inverse projection.
  • Restore batched inverse transforms and derive score widths from fitted PCA
    components, including None and variance-fraction configurations.

The noise parameter retains its existing projected-covariance convention; this
does not reinterpret it as physical-space observation standard deviation.

Verification

Eight new small regression tests capture actual MVN covariance inputs, rejected
noise values, held-out batch invariance, frozen training scalers, roundtrips,
component settings and shape/fittedness errors. The full local upstream suite
and Ruff checks pass; the repository's CI matrix provides additional Python/OS
compatibility checks. No dependencies or other inference algorithms change.

This fixes software contracts. It does not establish posterior calibration or
application-specific scientific performance. Refit previously fitted scaled
CompositePCA objects to establish the new training-scaler state.

@robinthibaut
robinthibaut merged commit 4aaff09 into main Sep 10, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant