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
dictswhere the keys areprotected_attribute_namesand the values are values inprotected_attributes. Eachdictelement describes a single group. See examples for more details.unprivileged_groups (list(dict)) – Unprivileged groups in the same format as
privileged_groups.
- Raises:
TypeError –
datasetmust be aStructuredDatasettype.ValueError –
privileged_groupsandunprivileged_groupsmust be disjoint.
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
Compute difference of the metric for unprivileged and privileged groups.
Compute the number of instances, \(n\), in the dataset conditioned on protected attributes if necessary.
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
dictswhere the keys areprotected_attribute_namesand the values are values inprotected_attributes. Eachdictelement describes a single group. See examples for more details.unprivileged_groups (list(dict)) – Unprivileged groups in the same format as
privileged_groups.
- Raises:
TypeError –
datasetmust be aStructuredDatasettype.ValueError –
privileged_groupsandunprivileged_groupsmust be disjoint.
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, ifTrue, or theunprivileged_groups, ifFalse. Defaults toNonemeaning this metric is computed over the entire dataset.- Raises:
AttributeError –
privileged_groupsorunprivileged_groupsmust be must be provided at initialization to condition on them.