from sklearn.datasets import make_swiss_roll from sklearn.metrics import mean_squared_error from sklearn.decomposition import KernelPCA X_swiss, t = make_swiss_roll(n_samples=1500, noise=0.3, random_state=2) kPCA_dict = { "linear": KernelPCA(n_components=2, kernel='linear', fit_inverse_transform=True), "sigmoid": KernelPCA(n_components=2, kernel='sigmoid', gamma=1e-3, coef0=1, fit_inverse_transform=True) } X_pca_swiss = {} X_preimage = {} for kernel_type in kPCA_dict.keys(): X_pca_swiss[kernel_type] = kPCA_dict[kernel_type].fit_transform(X_swiss) X_preimage[kernel_type] = kPCA_dict[kernel_type].inverse_transform(X_pca_swiss[kernel_type]) mse = mean_squared_error(X_swiss, X_preimage[kernel_type]) print('{} kernel -> MSE: {}'.format(kernel_type, mse))