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.