in src/smclarify/bias/metrics/common.py [0:0]
def DPL(feature: pd.Series, sensitive_facet_index: pd.Series, positive_label_index: pd.Series) -> float:
require(sensitive_facet_index.dtype == bool, "sensitive_facet_index must be of type bool")
require(positive_label_index.dtype == bool, "label_index must be of type bool")
na = len(feature[~sensitive_facet_index])
nd = len(feature[sensitive_facet_index])
na_pos = len(feature[~sensitive_facet_index & positive_label_index])
nd_pos = len(feature[sensitive_facet_index & positive_label_index])
if na == 0:
raise ValueError("Negative facet set is empty.")
if nd == 0:
raise ValueError("Facet set is empty.")
qa = na_pos / na
qd = nd_pos / nd
dpl = qa - qd
return dpl