fpde.
fpde and fpde.core.
FPDEEngine
Use FPDEEngine for repeated explanations, batch explanations, Hyb-FPDE, grid search, and validation-based lambda selection.
FPDEEngine.fit
| Parameter | Description |
|---|---|
X_train | Training feature matrix with shape (n_samples, n_features). |
y_train | Training labels with one label per row in X_train. |
model | Optional classifier. Required later when an operation needs predict_proba. |
baseline | Optional replacement vector for perturbation curves. Defaults to the training mean. |
FPDEEngine.
engine.explain_one
(attributions, details).
The details dictionary includes target_label, rival_label, target_probability, lambda_hyb, evidence, exactness_residual, positive_score, and negative_score.
engine.explain_batch
(attribution_matrix, details).
If include_details=False, details is an empty list.
engine.explain_matrix
engine.grid_search
HybFPDEGridSearchResult.
engine.select_lambda
lambda_hyb by held-out deletion and insertion validation.
Returns a HybFPDEValidationSelectionResult.
Prototype helpers
class_mean_prototypes
(prototypes, labels).
select_prototype_pair
(positive_index, negative_index).
prepare_fpde_context
FPDEContext.
Explanation functions
Use these functions when you want direct control over prototypes and labels.diff_fpde
cos_fpde
explain_with_selected_prototypes
FPDEEngine for Hyb-FPDE.
Metrics and probability helpers
regularized_cosine
top_two_labels
(target_label, rival_label, probability_vector) for one sample.
model must implement predict_proba and expose classes_.
predict_proba_for_label
predict_proba(X) column for label.
perturbation_curves
Plotting helpers
The plotting helpers are exported fromfpde and visualize FPDE attributions, prototype similarities, and perturbation curves with matplotlib.
They require the optional plot extra:
Axes it draws on and does not call plt.show() or save files.
Pass an existing ax= to draw into a subplot, or omit it to create a new figure.
plot_attributions
FPDEExplanation.
Positive values support the target class; negative values support the rival class.
Use top_k to limit the number of features and normalize=True to L1-normalize the displayed values.
plot_attribution_waterfall
base_value to base_value + sum(attributions).
Hidden features (outside top_k) are grouped into one other features bar.
plot_attribution_summary
feature_values with the same shape as attributions to color points by the original feature value.
plot_attribution_image
shape=(height, width) for flat image vectors; shape is optional for already-2D arrays.
plot_perturbation_curves
perturbation_curves.
curves must contain fractions, deletion_prob, and insertion_prob.
plot_local_contributions
values to label each bar with the corresponding feature value.
prepare_local_contribution_data
feature, display_name, contribution, abs_contribution, direction, direction_label) suitable for rendering FPDE local attributions in a custom UI.
plot_prototype_similarity_distribution
X to the target prototype.
Pass rival_prototype to overlay the rival distribution and x to mark the explained sample.
metric is "cosine" or "negative_euclidean".
fpde.plots namespace
fpde.plots provides a compact matplotlib API for FPDE contribution arrays inspired by SHAP’s plotting layout.
Pass show=False to receive an Axes without displaying, then save with ax.figure.savefig(...).
| Function | Description |
|---|---|
FPDEPlotExplanation | Lightweight container with values, base_values, data, feature_names, output_names, and predictions. |
bar | Plots local or global contribution importance. A 1D vector is treated as one local explanation; a 2D matrix is summarized by feature importance. |
beeswarm | Plots per-sample contributions grouped by feature. Points are colored by feature value when data is provided. |
scatter | Plots one feature’s original value against its FPDE contribution. feature may be an integer index or a name from feature_names. |
waterfall | Plots one contribution vector from base_value to prediction. Hidden features are grouped into other features. |
Result objects
| Object | Contains |
|---|---|
FPDEExplanation | mode, evidence, attributions, positive_score, negative_score, labels, prototype indices, exactness_residual, and method details. |
FPDEContext | Prototypes, prototype labels, mean anchor, zero anchor, baseline, and feature count. |
HybFPDEGridSearchResult | best_config, best_score, rows, objective, n_candidates, and n_eval_samples. |
HybFPDEValidationSelectionResult | best_lambda, best_config, rows, and n_eval_samples. |
Common errors
| Error | Cause | Fix |
|---|---|---|
model must implement predict_proba | A model-dependent operation was called without probability support. | Pass a fitted classifier with predict_proba. |
model must expose classes_ | The model does not expose class labels. | Use a scikit-learn-style classifier or add compatible classes_ metadata. |
feature dimension mismatch | Input vectors do not match the fitted training feature count. | Apply the same preprocessing pipeline to training, validation, and explanation data. |
lambda_hyb must be in [0, 1] | The Hyb-FPDE mixture weight is outside the valid range. | Pass a finite value from 0.0 to 1.0. |
eps must be positive | Cosine regularization was zero or negative. | Use a positive eps, such as 1e-12. |