detoxai.metrics
Submodules
detoxai.metrics.bias_metrics submodule
- class detoxai.metrics.bias_metrics.BiasMetrics(value)[source]
Bases:
Enum- TPR_GAP = 'TPR_GAP'
- FPR_GAP = 'FPR_GAP'
- TNR_GAP = 'TNR_GAP'
- FNR_GAP = 'FNR_GAP'
- EO_GAP = 'EO_GAP'
- DP_GAP = 'DP_GAP'
- detoxai.metrics.bias_metrics.stabilize(x, epsilon=0.0001)[source]
- Parameters:
x
epsilon – (Default value = 1e-4)
Returns:
- detoxai.metrics.bias_metrics.calculate_bias_metric_torch(metric: BiasMetrics | str, y_pred: Tensor, y_true: Tensor, protected_attribute: Tensor) Tensor[source]
- Parameters:
metric – BiasMetrics | str:
y_pred – torch.Tensor:
y_true – torch.Tensor:
protected_attribute – torch.Tensor:
Returns:
detoxai.metrics.distance_metrics submodule
- detoxai.metrics.distance_metrics.cosine_similarities_batch(a, cav, eps=1e-07)[source]
- Parameters:
a
cav
eps – (Default value = 1e-7)
Returns:
- detoxai.metrics.distance_metrics.euclidean_dist(x, y, dim=-1)[source]
- Parameters:
x
y
dim – (Default value = -1)
Returns:
detoxai.metrics.fairness_metrics submodule
- detoxai.metrics.fairness_metrics.stabilize(x, eps=1e-08)[source]
- Parameters:
x
eps – (Default value = 1e-8)
Returns:
- detoxai.metrics.fairness_metrics.results_to_tidy_df(results, metrics_config)[source]
- Parameters:
results
metrics_config
Returns:
- class detoxai.metrics.fairness_metrics.AllMetrics(metrics_config: Dict[str, Dict[str, Dict[str, List[str]]]], class_labels: List[str], num_groups: int | None = None)[source]
Bases:
object- get_performance_metrics() PerformanceMetrics[source]
- class detoxai.metrics.fairness_metrics.BinaryGroupStatRatesUnwrapped(**kwargs)[source]
Bases:
BinaryGroupStatRates
- class detoxai.metrics.fairness_metrics.FairnessMetrics(metrics_spec: Dict[str, Dict[str, List[str | None]]], *args, **kwargs)[source]
Bases:
BinaryGroupStatRatesUnwrappedComputes derived metrics (like TPR, FPR, etc.) for each group and allows for ratio and difference comparisons between groups to assess fairness. Supports various fairness metrics such as Equalized Odds.
- Parameters:
metrics_spec (metrics_spec_dict_type) – Dictionary specifying metrics to calculate.
args – Additional arguments for the base class initialization.
**kwargs –
Additional arguments for the base class initialization.
Supported metrics: - True Positive Rate (TPR), False Positive Rate (FPR), Error Rate (ER), etc. - Equalized Odds can be calculated with either a ‘ratio’ or ‘difference’ reduction. Example usage:
Returns:
>>> preds = torch.tensor([1, 1, 1, 0, 1, 0, 1, 0]) >>> target = torch.tensor([1, 1, 1, 1, 0, 0, 0, 0]) >>> sensitive_features = torch.tensor([1, 1, 1, 1, 0, 0, 0, 0])
>>> metrics_spec = { ... "TPR": {"reduce": ["ratio", "difference", "per_group"]}, ... "FPR": {"reduce": ["ratio", "difference"]}, ... "EO": {"reduce": ["difference"]}, ... "ACC": {"reduce": ["per_group"]}, ... } >>> derived_metrics = DerivedMetrics(metrics_spec, num_groups=2) >>> results = derived_metrics(preds, target, sensitive_features) #forward calls update and compute internally >>> results { 'TPR_0_group': tensor(1.), 'TPR_1_group': tensor(0.6667), 'TPR_ratio': tensor(nan), 'TPR_difference': tensor(nan), 'FPR_ratio': tensor(1.), 'FPR_difference': tensor(0.), 'EqualizedOdds_difference': tensor(nan), 'ACC_0_group': tensor(0.5000), 'ACC_1_group': tensor(0.5000), }
detoxai.metrics.metrics submodule
- detoxai.metrics.metrics.stabilize_torch(x: Tensor, eps: float = 0.0001) Tensor[source]
Stabilize a tensor by adding a small epsilon
- Parameters:
x – torch.Tensor:
eps – float: (Default value = 1e-4)
Returns:
- detoxai.metrics.metrics.balanced_accuracy_torch(y_true: Tensor, y_pred: Tensor) Tensor[source]
Calculate the balanced accuracy metric
- Parameters:
y_true – torch.Tensor:
y_pred – torch.Tensor:
Returns:
- detoxai.metrics.metrics.comprehensive_metrics_torch(y_true: Tensor, y_pred: Tensor, prot_attr: Tensor | None = None, return_torch: bool = True) dict[str, Tensor | float][source]
Calculate a comprehensive set of metrics
- Parameters:
y_true – torch.Tensor:
y_pred – torch.Tensor:
prot_attr – torch.Tensor | None: (Default value = None)
return_torch – bool: (Default value = True)
Returns: