Skip to content

Commit 9f4aed4

Browse files
committed
Modified an existing test to check for errors in ROC-like scores caused by overly aggressive rounding of y_score.
1 parent 896b12a commit 9f4aed4

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

sklearn/metrics/tests/test_ranking.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -597,18 +597,25 @@ def test_precision_recall_curve_toydata():
597597
def test_score_scale_invariance():
598598
# Test that average_precision_score and roc_auc_score are invariant by
599599
# the scaling or shifting of probabilities
600+
# This test was expanded (added scaled_down) in response to github
601+
# issue #3864 (and others), where overly aggressive rounding was causing
602+
# problems for users with very small y_score values
600603
y_true, _, probas_pred = make_prediction(binary=True)
601604

602605
roc_auc = roc_auc_score(y_true, probas_pred)
603-
roc_auc_scaled = roc_auc_score(y_true, 100 * probas_pred)
606+
roc_auc_scaled_up = roc_auc_score(y_true, 100 * probas_pred)
607+
roc_auc_scaled_down = roc_auc_score(y_true, 1e-6 * probas_pred)
604608
roc_auc_shifted = roc_auc_score(y_true, probas_pred - 10)
605-
assert_equal(roc_auc, roc_auc_scaled)
609+
assert_equal(roc_auc, roc_auc_scaled_up)
610+
assert_equal(roc_auc, roc_auc_scaled_down)
606611
assert_equal(roc_auc, roc_auc_shifted)
607612

608613
pr_auc = average_precision_score(y_true, probas_pred)
609-
pr_auc_scaled = average_precision_score(y_true, 100 * probas_pred)
614+
pr_auc_scaled_up = average_precision_score(y_true, 100 * probas_pred)
615+
pr_auc_scaled_down = average_precision_score(y_true, 1e-6 * probas_pred)
610616
pr_auc_shifted = average_precision_score(y_true, probas_pred - 10)
611-
assert_equal(pr_auc, pr_auc_scaled)
617+
assert_equal(pr_auc, pr_auc_scaled_up)
618+
assert_equal(pr_auc, pr_auc_scaled_down)
612619
assert_equal(pr_auc, pr_auc_shifted)
613620

614621

0 commit comments

Comments
 (0)