ExFairness.Validation (ExFairness v0.5.1)
View SourceInput 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
@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]
@spec validate_matching_shapes!([Nx.Tensor.t()], [String.t()]) :: [Nx.Tensor.t()]
Validates that tensors have matching shapes.
Parameters
tensors- List of tensors to validatenames- 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]}
@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]
@spec validate_sensitive_attr!( Nx.Tensor.t(), keyword() ) :: Nx.Tensor.t()
Validates sensitive attribute tensor.
Parameters
sensitive_attr- Tensor to validateopts- 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