def predict_proba(self, X): """ Return probability estimates for the test vector X. Parameters ---------- X : array-like, shape = [n_samples, n_features] Returns ------- C : array-like, shape = [n_samples, n_classes] Returns the probability of the samples for each class in the model. The columns correspond to the classes in sorted order, as they appear in the attribute `classes_`. """ check_is_fitted(self, "graph_") X = check_array(X, accept_sparse="csr") def _classify(x): _, scores = self._recursive_predict(x, root=self.root) return scores y_pred = apply_along_rows(_classify, X=X) return y_pred
def predict(self, X): """Predict multi-class targets using underlying estimators. Parameters ---------- X : (sparse) array-like, shape = [n_samples, n_features] Data. Returns ------- y : (sparse) array-like, shape = [n_samples, ], [n_samples, n_classes]. Predicted multi-class targets. """ check_is_fitted(self, "graph_") X = check_array(X, accept_sparse="csr") def _classify(x): # TODO support multi-label / paths? path, _ = self._recursive_predict(x, root=self.root) return path[-1] y_pred = apply_along_rows(_classify, X=X) return y_pred