Source code for fairxai.explain.explaination.counterfactual_rule_explanation

from fairxai.explain.explaination.generic_explanation import GenericExplanation


[docs] class CounterfactualRuleExplanation(GenericExplanation): """ Counterfactual Rule Explanation. Shows minimal feature changes required to flip the prediction. """ def __init__(self, explainer_name: str, counterfactual_rules: list[dict], explanation_type=None): explanation_type = explanation_type or self.LOCAL_EXPLANATION data = { "rules": counterfactual_rules, "rules_formatted": [self._format_rule(r) for r in counterfactual_rules] } super().__init__(explainer_name, explanation_type, data) def _format_rule(self, rule: dict) -> str: """Convert a counterfactual dict into a readable string.""" return " AND ".join(f"{k}{v}" for k, v in rule.items())
[docs] def to_dict(self) -> dict: """Serializable representation.""" return { "explainer_name": self.explainer_name, "explanation_type": "CounterfactualRuleExplanation", "rules": self.data["rules"], "rules_formatted": self.data["rules_formatted"] }
[docs] def visualize(self): """Return a structure ready for Streamlit.""" return self.to_dict()