CEGP¶
Counterfactual Explanations via Genetic Programming
CEGP uses evolutionary algorithms to search for counterfactual explanations.
Overview¶
CEGP applies genetic programming to evolve counterfactual candidates through mutation and crossover operations.
Usage¶
from counterfactuals.cf_methods.local_methods import CEGP
method = CEGP(
gen_model=gen_model,
disc_model=classifier,
disc_model_criterion=criterion,
device="cuda"
)
result = method.explain(
X=instance,
y_origin=0,
y_target=1,
X_train=X_train,
y_train=y_train
)
API Reference¶
CEGP
¶
Bases: BaseCounterfactualMethod, LocalCounterfactualMixin
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
disc_model
|
PytorchBase
|
Discriminative model to use for counterfactual generation |
required |
beta
|
float
|
Trade-off parameter for distance computation |
0.01
|
c_init
|
float
|
Initial value of c for the attack loss term |
1.0
|
c_steps
|
int
|
Number of steps to adjust c |
5
|
max_iterations
|
int
|
Maximum number of iterations to run optimization |
500
|
Source code in counterfactuals/cf_methods/local_methods/cegp/cegp.py
fit
¶
Fit the CEGP model on training data.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
X_train
|
ndarray
|
Training data to fit the model on |
required |
Source code in counterfactuals/cf_methods/local_methods/cegp/cegp.py
explain
¶
Generate counterfactual explanations for given samples.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
X
|
ndarray
|
Samples to explain |
required |
y_origin
|
ndarray
|
Original labels |
required |
y_target
|
ndarray
|
Target labels |
required |
X_train
|
ndarray | None
|
Training data (used for fitting if not already fitted) |
None
|
y_train
|
ndarray | None
|
Training labels |
None
|
Source code in counterfactuals/cf_methods/local_methods/cegp/cegp.py
explain_dataloader
¶
Generate counterfactual explanations for all samples in dataloader.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dataloader
|
DataLoader
|
DataLoader containing samples to explain |
required |
target_class
|
int
|
Target class for counterfactuals |
required |