From 6864d4a7c9a8fb2b7b8989bb5c0c953f04580ee0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Wed, 7 Sep 2022 10:07:20 +0200 Subject: [PATCH 1/3] FIX remove np.divide with where without out argument --- sklearn/metrics/_ranking.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sklearn/metrics/_ranking.py b/sklearn/metrics/_ranking.py index 828be16aacb88..938f3e743996e 100644 --- a/sklearn/metrics/_ranking.py +++ b/sklearn/metrics/_ranking.py @@ -871,7 +871,8 @@ def precision_recall_curve(y_true, probas_pred, *, pos_label=None, sample_weight ) ps = tps + fps - precision = np.divide(tps, ps, where=(ps != 0)) + precision = np.zeros_like(tps) + np.divide(tps, ps, out=precision, where=(ps != 0)) # When no positive label in y_true, recall is set to 1 for all thresholds # tps[-1] == 0 <=> y_true == all negative labels From b25de9af04480149f170136a7aabb498394ba472 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Wed, 7 Sep 2022 13:35:20 +0200 Subject: [PATCH 2/3] Update sklearn/metrics/_ranking.py Co-authored-by: Olivier Grisel --- sklearn/metrics/_ranking.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sklearn/metrics/_ranking.py b/sklearn/metrics/_ranking.py index 938f3e743996e..2536135dad52b 100644 --- a/sklearn/metrics/_ranking.py +++ b/sklearn/metrics/_ranking.py @@ -871,6 +871,8 @@ def precision_recall_curve(y_true, probas_pred, *, pos_label=None, sample_weight ) ps = tps + fps + # Initialize the result array with zeros to make sure that precision[ps == 0] + # does not contain uninitialized values. precision = np.zeros_like(tps) np.divide(tps, ps, out=precision, where=(ps != 0)) From d40c4c35e63a161358b068f66ef8ad3f8bf42885 Mon Sep 17 00:00:00 2001 From: Guillaume Lemaitre Date: Wed, 7 Sep 2022 13:40:10 +0200 Subject: [PATCH 3/3] Update sklearn/metrics/_ranking.py --- sklearn/metrics/_ranking.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sklearn/metrics/_ranking.py b/sklearn/metrics/_ranking.py index 2536135dad52b..dadb764d3df66 100644 --- a/sklearn/metrics/_ranking.py +++ b/sklearn/metrics/_ranking.py @@ -872,7 +872,7 @@ def precision_recall_curve(y_true, probas_pred, *, pos_label=None, sample_weight ps = tps + fps # Initialize the result array with zeros to make sure that precision[ps == 0] - # does not contain uninitialized values. + # does not contain uninitialized values. precision = np.zeros_like(tps) np.divide(tps, ps, out=precision, where=(ps != 0))