smx.predicates.generation ========================= .. py:module:: smx.predicates.generation .. autoapi-nested-parse:: PredicateGenerator: generate binary predicates from quantile thresholds on zone aggregation scores. Classes ------- .. autoapisummary:: smx.predicates.generation.PredicateGenerator Module Contents --------------- .. py:class:: PredicateGenerator(quantiles: List[float]) 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 ---------- quantiles : list 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 :meth:`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. .. py:attribute:: quantiles .. py:attribute:: predicates_df_ :type: Optional[pandas.DataFrame] :value: None .. py:attribute:: indicator_df_ :type: Optional[pandas.DataFrame] :value: None .. py:attribute:: co_occurrence_matrix_ :type: Optional[pandas.DataFrame] :value: None .. py:method:: fit(zone_scores_df: pandas.DataFrame) -> PredicateGenerator Learn predicates from *zone_scores_df*. Parameters ---------- zone_scores_df : pd.DataFrame Zone aggregation scores (samples × zones) as returned by :class:`smx.zones.aggregation.ZoneAggregator`. Returns ------- self .. py:method:: transform(zone_scores_df: pandas.DataFrame) -> pandas.DataFrame Apply the fitted predicates to new zone scores data. This re-uses the thresholds learned during :meth:`fit` and is useful for applying predicates to a prediction (validation) set. Parameters ---------- zone_scores_df : pd.DataFrame Zone scores for the samples to evaluate. Returns ------- pd.DataFrame Binary indicator matrix (samples × predicates). .. py:method:: fit_transform(zone_scores_df: pandas.DataFrame) -> pandas.DataFrame Fit and return the indicator matrix in one step.