Пример #1
0
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
Пример #2
0
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
Пример #3
0
    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(),
            }
        }
Пример #4
0
def test_german():
    gd = GermanDataset()
    bldm = BinaryLabelDatasetMetric(gd)
    assert bldm.num_instances() == 1000