Skip to content

Group Methods

Group counterfactual methods generate explanations for clusters or subgroups of similar instances. They balance individual precision with broader applicability.

Available Methods

Method Description Key Feature
ReViCE Regional variant of PPCEF Flow-based group CFs
GLANCE Group-level anchor counterfactuals Anchor-based grouping
Group GLOBE-CE Group variant of GLOBE-CE Subpopulation focus

When to Use Group Methods

Group methods are ideal when you need to:

  • Provide explanations for similar users
  • Balance personalization with scalability
  • Identify subpopulation-specific patterns
  • Generate semi-personalized recourse

How Groups Are Formed

Group methods typically cluster instances based on:

  • Feature similarity
  • Prediction confidence
  • Demographic attributes
  • Custom grouping criteria
flowchart LR
    A[Dataset] --> B[Clustering]
    B --> C[Group 1]
    B --> D[Group 2]
    B --> E[Group N]
    C --> F[Group CF 1]
    D --> G[Group CF 2]
    E --> H[Group CF N]

Example Usage

from counterfactuals.cf_methods.group_methods import GroupPPCEF

# Initialize method
method = GroupPPCEF(
    gen_model=flow_model,
    disc_model=classifier,
    disc_model_criterion=criterion,
    device="cuda"
)

# Generate group counterfactuals
result = method.explain(
    X=X_test,
    y_origin=y_test,
    y_target=target_class,
    X_train=X_train,
    y_train=y_train,
    n_groups=5  # Number of groups
)

# Each instance is assigned to a group
print(f"Group assignments: {result.cf_group_ids}")