docs: def predict_y(self, xq, sigma=None, k=None, **kwargs):
          """Provide an prediction of xq in the output space
  
          @param xq  an array of float of length dim_x
          """
          sigma = sigma or self.sigma
          k = k or self.k
          dists, index = self.dataset.nn_x(xq, k = k)
          w = self._weights(dists, sigma*sigma)
          return np.sum([wi*self.dataset.get_y(idx) for wi, idx in zip(w, index)], axis = 0)