From a03237d1b35a209569d0add587117a7f4b79d4e0 Mon Sep 17 00:00:00 2001 From: Joan Massich Date: Thu, 14 Sep 2017 12:12:58 +0200 Subject: [PATCH] wip --- sklearn/neighbors/classification.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/sklearn/neighbors/classification.py b/sklearn/neighbors/classification.py index 00099b541a726..d8b1f2afc085b 100644 --- a/sklearn/neighbors/classification.py +++ b/sklearn/neighbors/classification.py @@ -21,6 +21,8 @@ from ..base import ClassifierMixin from ..utils import check_array +import pdb + class KNeighborsClassifier(NeighborsBase, KNeighborsMixin, SupervisedIntegerMixin, ClassifierMixin): @@ -391,7 +393,8 @@ def predict(self, X): for ind in neigh_ind[inliers]], dtype=object) y_pred_k = np.zeros(n_samples, dtype=np.int) - mode = self._mode(pred_labels, weights, inliers) + mode = self._mode(pred_labels, weights, inliers, + is_comming_from_sparse_call=True) y_pred_k[inliers] = mode if outliers and self.outlier_label != 0: @@ -419,11 +422,14 @@ def predict(self, X): return y_pred - def _mode(self, pred_labels, weights, inliers): + def _mode(self, pred_labels, weights, inliers, + is_comming_from_sparse_call=None): if weights is None: mode = np.array([stats.mode(pl)[0] for pl in pred_labels], dtype=np.int) else: + if is_comming_from_sparse_call: + pdb.set_trace() mode = np.array([weighted_mode(pl, w)[0] for (pl, w) in zip(pred_labels, weights[inliers])],