nirs4all.data.meta_features module

Meta-feature alignment utilities for late fusion and stacking (N8).

class nirs4all.data.meta_features.AlignedMetaFeatures(X: ndarray, unit_ids: list[str], feature_names: list[str], mask: ndarray | None, dropped_units: list[str], dropped_features: list[str], plan: MetaFeaturePlan)[source]

Bases: object

Aligned matrix returned by align_prediction_feature_vectors().

X: ndarray
dropped_features: list[str]
dropped_units: list[str]
feature_names: list[str]
mask: ndarray | None
plan: MetaFeaturePlan
to_manifest() → dict[str, Any][source]

Return a JSON-safe manifest without array values.

unit_ids: list[str]
exception nirs4all.data.meta_features.MetaFeatureAlignmentError[source]

Bases: ValueError

Raised when meta-features cannot be aligned by explicit unit ids.

class nirs4all.data.meta_features.PredictionFeatureVector(name: str, unit_ids: Sequence[Any], values: Sequence[Any] | ndarray)[source]

Bases: object

One model/branch prediction vector with explicit alignment units.

name: str
unit_ids: Sequence[Any]
values: Sequence[Any] | ndarray
nirs4all.data.meta_features.align_prediction_feature_vectors(vectors: Sequence[PredictionFeatureVector], *, plan: MetaFeaturePlan | None = None, target_unit_ids: Sequence[Any] | None = None, impute_values: Mapping[str, float] | None = None) → AlignedMetaFeatures[source]

Align branch/model prediction vectors by explicit unit id.

The function never aligns by row position. In strict mode every feature vector must provide every target unit exactly once.