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 areprotected_attribute_names
and the values are values inprotected_attributes
. Eachdict
element describes a single group. See examples for more details.unprivileged_groups (list(dict)) – Unprivileged groups in the same format as
privileged_groups
.
- Raises:
TypeError –
dataset
must be aStructuredDataset
type.ValueError –
privileged_groups
andunprivileged_groups
must 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
dicts
where the keys areprotected_attribute_names
and the values are values inprotected_attributes
. Eachdict
element describes a single group. See examples for more details.unprivileged_groups (list(dict)) – Unprivileged groups in the same format as
privileged_groups
.
- Raises:
TypeError –
dataset
must be aStructuredDataset
type.ValueError –
privileged_groups
andunprivileged_groups
must 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 toNone
meaning this metric is computed over the entire dataset.- Raises:
AttributeError –
privileged_groups
orunprivileged_groups
must be must be provided at initialization to condition on them.