def LP_norm()

in src/smclarify/bias/metrics/pretraining.py [0:0]


def LP_norm(label: pd.Series, sensitive_facet_index: pd.Series, norm_order) -> float:
    require(sensitive_facet_index.dtype == bool, "sensitive_facet_index must be of type bool")
    xs_a = label[~sensitive_facet_index]
    xs_d = label[sensitive_facet_index]
    (Pa, Pd) = pdfs_aligned_nonzero(xs_a, xs_d)
    if len(Pa) == 0 or len(Pd) == 0:
        raise ValueError("No instance of common facet found, dataset may be too small")
    res = float(np.linalg.norm(Pa - Pd, norm_order))
    return res