From 78a209b818290a399cfe5d036c40a87d23d321e3 Mon Sep 17 00:00:00 2001 From: Duke Vijitbenjaronk Date: Sun, 16 Jul 2017 15:08:13 -0500 Subject: [PATCH] Ignore underflow in LabelPropagation --- sklearn/semi_supervised/label_propagation.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sklearn/semi_supervised/label_propagation.py b/sklearn/semi_supervised/label_propagation.py index 5e35efe82f914..f271dd94eee08 100644 --- a/sklearn/semi_supervised/label_propagation.py +++ b/sklearn/semi_supervised/label_propagation.py @@ -230,6 +230,10 @@ def fit(self, X, y): self.X_ = X check_classification_targets(y) + # ignore expected underflow + old_error_settings = np.geterr() + np.seterr(invalid='ignore', under='ignore') + # actual graph construction (implementations should override this) graph_matrix = self._build_graph() @@ -290,6 +294,9 @@ def fit(self, X, y): normalizer = np.sum(self.label_distributions_, axis=1)[:, np.newaxis] self.label_distributions_ /= normalizer + # restore error settings + np.seterr(**old_error_settings) + # set the transduction item transduction = self.classes_[np.argmax(self.label_distributions_, axis=1)]