'Transform the sources back to the mixed data (apply mixing matrix).
Parameters
X : array-like, shape (n_samples, n_components)
Sources, where n_samples is the number of samples
and n_components is the number of components.
copy : bool (optional)
If False, data passed to fit are overwritten. Defaults to True.
Returns
X_new : array-like, shape (n_samples, n_features)'

def inverse_transform(self, X, copy=True):

    check_is_fitted(self, 'mixing_')
    X = check_array(X, copy=(copy and self.whiten), dtype=FLOAT_DTYPES)
    X = np.dot(X, self.mixing_.T)
    if self.whiten:
        X += self.mean_
    return X
