smx.predicates.generation#

PredicateGenerator: generate binary predicates from quantile thresholds on zone aggregation scores.

Classes#

PredicateGenerator

Generate binary predicates from quantile thresholds on zone scores.

Module Contents#

class smx.predicates.generation.PredicateGenerator(quantiles: List[float])[source]#

Generate binary predicates from quantile thresholds on zone scores.

For each spectral zone and each quantile value, two predicates are created:

  • zone <= q_value (samples below the quantile threshold)

  • zone > q_value (samples above the quantile threshold)

Duplicate predicates (same rule) arising from identical quantile values are automatically removed.

Parameters#

quantileslist of float

Quantile fractions in [0, 1] to use as thresholds. Example: [0.25, 0.5, 0.75] creates six predicates per zone.

Attributes (set after fit())#

predicates_df_pd.DataFrame

One row per predicate. Columns: predicate, rule, zone, thresholds, operator.

indicator_df_pd.DataFrame

Binary indicator matrix (samples × predicates). Columns are predicate rule strings; values are 1/0.

co_occurrence_matrix_pd.DataFrame

Pairwise co-occurrence matrix of predicates.

quantiles#
predicates_df_: pandas.DataFrame | None = None#
indicator_df_: pandas.DataFrame | None = None#
co_occurrence_matrix_: pandas.DataFrame | None = None#
fit(zone_scores_df: pandas.DataFrame) PredicateGenerator[source]#

Learn predicates from zone_scores_df.

Parameters#

zone_scores_dfpd.DataFrame

Zone aggregation scores (samples × zones) as returned by smx.zones.aggregation.ZoneAggregator.

Returns#

self

transform(zone_scores_df: pandas.DataFrame) pandas.DataFrame[source]#

Apply the fitted predicates to new zone scores data.

This re-uses the thresholds learned during fit() and is useful for applying predicates to a prediction (validation) set.

Parameters#

zone_scores_dfpd.DataFrame

Zone scores for the samples to evaluate.

Returns#

pd.DataFrame

Binary indicator matrix (samples × predicates).

fit_transform(zone_scores_df: pandas.DataFrame) pandas.DataFrame[source]#

Fit and return the indicator matrix in one step.