Source code for robustx.robustness_evaluations.ModelChangesRobustnessSetEvaluator

import pandas as pd

from robustx.robustness_evaluations.ModelChangesRobustnessEvaluator import ModelChangesRobustnessEvaluator
from robustx.lib.tasks.Task import Task


[docs] class ModelChangesRobustnessSetEvaluator: """ Class for evaluating the robustness of CEs with respect to model changes. This class uses a specified evaluator to assess the robustness of model predictions for multiple CEs. Attributes: task (Task): The task for which robustness is being evaluated. evaluator (ModelChangesRobustnessEvaluator): An instance of a robustness evaluator used to assess each instance. """ def __init__(self, ct: Task, evaluator=ModelChangesRobustnessEvaluator): """ Initializes the ModelChangesRobustnessSetEvaluator with a task and an evaluator. @param ct: The task to solve, provided as a Task instance. @param evaluator: The evaluator class used to assess robustness of the task's model. Defaults to ModelChangesRobustnessEvaluator. """ self.task = ct self.evaluator = evaluator(ct)
[docs] def evaluate(self, instances, neg_value=0): """ Evaluates the robustness of model predictions for a set of instances. @param instances: A DataFrame containing the instances to evaluate. @param neg_value: The value considered negative in the target variable, used to evaluate the robustness of the model's prediction. @return: A DataFrame containing the robustness evaluation results for each instance. """ res = [] for _, instance in instances.iterrows(): res.append(self.evaluator.evaluate(instance, neg_value=neg_value)) return pd.DataFrame(res)