'Fit X into an embedded space and return that transformed
output.
Parameters
X : array, shape (n_samples, n_features) or (n_samples, n_samples)
If the metric is \'precomputed\' X must be a square distance
matrix. Otherwise it contains a sample per row.
Returns
X_new : array, shape (n_samples, n_components)
Embedding of the training data in low-dimensional space.'

def fit_transform(self, X, y=None):

    embedding = self._fit(X)
    self.embedding_ = embedding
    return self.embedding_
