ExFairness.Validation (ExFairness v0.5.1)

View Source

Input validation utilities for ExFairness.

Provides comprehensive validation for tensors used in fairness metrics, ensuring data quality and providing helpful error messages.

Summary

Functions

Validates labels tensor.

Validates that tensors have matching shapes.

Validates predictions tensor.

Validates sensitive attribute tensor.

Functions

validate_labels!(labels)

@spec validate_labels!(Nx.Tensor.t()) :: Nx.Tensor.t()

Validates labels tensor.

Parameters

  • labels - Tensor to validate

Returns

The validated labels tensor.

Raises

ExFairness.Error if validation fails.

Examples

iex> labels = Nx.tensor([0, 1, 1, 0])
iex> result = ExFairness.Validation.validate_labels!(labels)
iex> Nx.to_flat_list(result)
[0, 1, 1, 0]

validate_matching_shapes!(tensors, names)

@spec validate_matching_shapes!([Nx.Tensor.t()], [String.t()]) :: [Nx.Tensor.t()]

Validates that tensors have matching shapes.

Parameters

  • tensors - List of tensors to validate
  • names - List of tensor names for error messages

Returns

The list of validated tensors.

Raises

ExFairness.Error if shapes don't match.

Examples

iex> t1 = Nx.tensor([1, 2, 3])
iex> t2 = Nx.tensor([4, 5, 6])
iex> [r1, r2] = ExFairness.Validation.validate_matching_shapes!([t1, t2], ["t1", "t2"])
iex> {Nx.to_flat_list(r1), Nx.to_flat_list(r2)}
{[1, 2, 3], [4, 5, 6]}

validate_predictions!(predictions)

@spec validate_predictions!(Nx.Tensor.t()) :: Nx.Tensor.t()

Validates predictions tensor.

Parameters

  • predictions - Tensor to validate

Returns

The validated predictions tensor.

Raises

ExFairness.Error if validation fails.

Examples

iex> predictions = Nx.tensor([0, 1, 1, 0])
iex> result = ExFairness.Validation.validate_predictions!(predictions)
iex> Nx.to_flat_list(result)
[0, 1, 1, 0]

validate_sensitive_attr!(sensitive_attr, opts \\ [])

@spec validate_sensitive_attr!(
  Nx.Tensor.t(),
  keyword()
) :: Nx.Tensor.t()

Validates sensitive attribute tensor.

Parameters

  • sensitive_attr - Tensor to validate
  • opts - Options:
    • :min_per_group - Minimum samples per group (default: 10)

Returns

The validated sensitive attribute tensor.

Raises

ExFairness.Error if validation fails.

Examples

iex> sensitive_attr = Nx.tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
iex> result = ExFairness.Validation.validate_sensitive_attr!(sensitive_attr)
iex> Nx.size(result)
20