Source code for robustx.robustness_evaluations.InputChangesRobustnessEvaluator

from abc import abstractmethod, ABC
import numpy as np
from robustx.lib.tasks.Task import Task
from robustx.generators.CEGenerator import CEGenerator


[docs] class InputChangesRobustnessEvaluator(ABC): """ Abstract base class for evaluating the robustness of CEs with respect to input changes. """ def __init__(self, ct: Task): """ Initializes the InputChangesRobustnessEvaluator with a given task. @param ct: The task for which robustness evaluations are being made. Provided as a Task instance. """ self.task = ct
[docs] @abstractmethod def evaluate(self, instance, counterfactual, generator: CEGenerator): """ Compare the counterfactuals for the original instance and those for the perturbed instance. @param instance: An input instance. @param counterfactual: One or more CE points for the instance. @param generator: CE generator. """ pass
[docs] def perturb_input(self, instance): """ Default method for perturbing an input instance by adding small Gaussian noise. @param instance: An input instance. """ return instance + np.random.normal(0, 0.1, instance.shape)