'Predict multi-class targets using underlying estimators.
Parameters
X : (sparse) array-like, shape = [n_samples, n_features]
Data.
Returns
y : numpy array of shape [n_samples]
Predicted multi-class targets.'

def predict(self, X):

    check_is_fitted(self, 'estimators_')
    X = check_array(X)
    Y = np.array([_predict_binary(e, X) for e in self.estimators_]).T
    pred = euclidean_distances(Y, self.code_book_).argmin(axis=1)
    return self.classes_[pred]
