holisticai.bias.metrics.frequency_matrix#

holisticai.bias.metrics.frequency_matrix(p_attr, y_pred, groups=None, classes=None, normalize='group')[source]#

Frequency Matrix

This function computes the frequency matrix. For each group, class pair we compute the count of that group for admission within that class. We include the option to normalise over groups or classes. By default we normalise by ‘group’.

Parameters

p_attrarray-like

Multiclass protected attribute vector.

y_predarray-like

Prediction vector (categorical).

groupslist, optional

Unique groups from p_attr in order

classeslist, optional

The unique output classes in order

normalize: str, optional

According to which of group or class we normalize: None, ‘group’ or ‘class’

Returns

pandas DataFrame

Success Rate Matrix : shape (num_groups, num_classes)

Examples

>>> import numpy as np
>>> from holisticai.bias.metrics import frequency_matrix
>>> p_attr = np.array(["A", "A", "A", "A", "B", "B", "B", "B", "C", "C"])
>>> y_pred = np.array([0, 1, 2, 0, 1, 2, 0, 1, 2, 0])
>>> frequency_matrix(p_attr, y_pred, normalize="class")
    0     1     2
A  0.50  0.25  0.25
B  0.25  0.50  0.25
C  0.50  0.00  0.50