Пример #1
0
    def test_fnr_diff_edge2(self):

        # Metric
        metric = BinaryFairnessMetrics.FNRDifference()

        # edge case of -1
        y_true = np.array([0, 1, 1, 0, 1, 1, 1, 0, 1, 0])
        y_pred = np.array([0, 0, 0, 0, 0, 1, 1, 1, 1, 1])

        is_member = np.array([0, 0, 0, 0, 0, 1, 1, 1, 1, 1])

        assert metric.get_score(y_true, y_pred, is_member) == -1
Пример #2
0
    def test_fnr_diff_normal_invalid(self):

        # Metric
        metric = BinaryFairnessMetrics.FNRDifference()

        # Data
        y_true = np.array([0, 1, 1, 0, 1, 1, 1, 0, 1, 2])
        y_pred = np.array([0, 0, 1, 0, 0, 1, 1, 1, 0, 0])

        is_member = np.array([1, 1, 1, 1, 1, 0, 0, 0, 0, 0])
        with self.assertRaises(ValueError):
            metric.get_score(y_true, y_pred, is_member)
Пример #3
0
    def test_fnr_diff_normal_list(self):

        # Metric
        metric = BinaryFairnessMetrics.FNRDifference()

        # Data
        y_true = [0, 1, 1, 0, 1, 1, 1, 0, 1, 0]
        y_pred = [0, 0, 1, 0, 0, 1, 1, 1, 0, 0]

        is_member = np.array([1, 1, 1, 1, 1, 0, 0, 0, 0, 0])
        assert np.isclose(metric.get_score(y_true, y_pred, is_member),
                          0.333,
                          atol=0.001)
Пример #4
0
    def test_fnr_diff_normal_df(self):

        my_df = pd.DataFrame.from_dict({
            'y_true': [0, 1, 1, 0, 1, 1, 1, 0, 1, 0],
            'y_pred': [0, 0, 1, 0, 0, 1, 1, 1, 0, 0],
            'is_member': [1, 1, 1, 1, 1, 0, 0, 0, 0, 0]
        })
        # Metric
        metric = BinaryFairnessMetrics.FNRDifference()

        # Score
        score = metric.get_score(my_df['y_true'], my_df['y_pred'],
                                 my_df['is_member'])

        assert np.isclose(score, 0.333, atol=0.001)