def test_adult_no_drop(): ad = AdultDataset(protected_attribute_names=['sex'], privileged_classes=[['Male']], categorical_features=[], features_to_keep=['age', 'education-num']) bldm = BinaryLabelDatasetMetric(ad) assert bldm.num_instances() == 48842
def test_adult(): ad = AdultDataset() # print(ad.feature_names) assert np.isclose(ad.labels.mean(), 0.2478, atol=5e-5) bldm = BinaryLabelDatasetMetric(ad) assert bldm.num_instances() == 45222
def explain(self, request: Dict) -> Dict: inputs = request["instances"] predictions = np.array(request["outputs"]) dataframe_predicted = pd.DataFrame(inputs, columns=self.feature_names) dataframe_predicted[self.label_names[0]] = predictions dataset_predicted = BinaryLabelDataset( favorable_label=self.favorable_label, unfavorable_label=self.unfavorable_label, df=dataframe_predicted, label_names=self.label_names, protected_attribute_names=['age']) metrics = BinaryLabelDatasetMetric( dataset_predicted, unprivileged_groups=self.unprivileged_groups, privileged_groups=self.privileged_groups) return { "predictions": predictions.tolist(), "metrics": { "base_rate": metrics.base_rate(), "consistency": metrics.consistency().tolist(), "disparate_impact": metrics.disparate_impact(), "num_instances": metrics.num_instances(), "num_negatives": metrics.num_negatives(), "num_positives": metrics.num_positives(), "statistical_parity_difference": metrics.statistical_parity_difference(), } }
def test_german(): gd = GermanDataset() bldm = BinaryLabelDatasetMetric(gd) assert bldm.num_instances() == 1000