code: def fit(self, Xs, ys=None, Xt=None, yt=None):
          
  
          super(EMDTransport, self).fit(Xs, ys, Xt, yt)
  
          returned_ = emd(
              a=self.mu_s, b=self.mu_t, M=self.cost_, numItermax=self.max_iter,
              log=self.log)
  
          # coupling estimation
          if self.log:
              self.coupling_, self.log_ = returned_
          else:
              self.coupling_ = returned_
              self.log_ = dict()
          return self
docs: Build a coupling matrix from source and target sets of samples
          (Xs, ys) and (Xt, yt)
  
          Parameters
          ----------
          Xs : array-like, shape (n_source_samples, n_features)
              The training input samples.
          ys : array-like, shape (n_source_samples,)
              The class labels
          Xt : array-like, shape (n_target_samples, n_features)
              The training input samples.
          yt : array-like, shape (n_target_samples,)
              The class labels. If some target samples are unlabeled, fill the
              yt's elements with -1.
  
              Warning: Note that, due to this convention -1 cannot be used as a
              class label
  
          Returns
          -------
          self : object
              Returns self.