aif360.metrics.DatasetMetric

class aif360.metrics.DatasetMetric(dataset, unprivileged_groups=None, privileged_groups=None)[source]

Class for computing metrics based on one StructuredDataset.

Parameters:
  • dataset (StructuredDataset) – A StructuredDataset.

  • privileged_groups (list(dict)) – Privileged groups. Format is a list of dicts where the keys are protected_attribute_names and the values are values in protected_attributes. Each dict element describes a single group. See examples for more details.

  • unprivileged_groups (list(dict)) – Unprivileged groups in the same format as privileged_groups.

Raises:

Examples

>>> from aif360.datasets import GermanDataset
>>> german = GermanDataset()
>>> u = [{'sex': 1, 'age': 1}, {'sex': 0}]
>>> p = [{'sex': 1, 'age': 0}]
>>> dm = DatasetMetric(german, unprivileged_groups=u, privileged_groups=p)

Methods

difference

Compute difference of the metric for unprivileged and privileged groups.

num_instances

Compute the number of instances, \(n\), in the dataset conditioned on protected attributes if necessary.

ratio

Compute ratio of the metric for unprivileged and privileged groups.

__init__(dataset, unprivileged_groups=None, privileged_groups=None)[source]
Parameters:
  • dataset (StructuredDataset) – A StructuredDataset.

  • privileged_groups (list(dict)) – Privileged groups. Format is a list of dicts where the keys are protected_attribute_names and the values are values in protected_attributes. Each dict element describes a single group. See examples for more details.

  • unprivileged_groups (list(dict)) – Unprivileged groups in the same format as privileged_groups.

Raises:

Examples

>>> from aif360.datasets import GermanDataset
>>> german = GermanDataset()
>>> u = [{'sex': 1, 'age': 1}, {'sex': 0}]
>>> p = [{'sex': 1, 'age': 0}]
>>> dm = DatasetMetric(german, unprivileged_groups=u, privileged_groups=p)
difference(metric_fun)[source]

Compute difference of the metric for unprivileged and privileged groups.

num_instances(privileged=None)[source]

Compute the number of instances, \(n\), in the dataset conditioned on protected attributes if necessary.

Parameters:

privileged (bool, optional) – Boolean prescribing whether to condition this metric on the privileged_groups, if True, or the unprivileged_groups, if False. Defaults to None meaning this metric is computed over the entire dataset.

Raises:

AttributeErrorprivileged_groups or unprivileged_groups must be must be provided at initialization to condition on them.

ratio(metric_fun)[source]

Compute ratio of the metric for unprivileged and privileged groups.