Add Kernel PCA as an alternative preprocessing step
Using Kernel PCA as a preprocessing step, non-linearities may be added with minimum change to the fit process.
This is controlled with an extra constructor argument: n_pca_nonlinear
, which if set to zero uses only a linear PCA as a preprocessing step. Using the Kernel PCA additional step involves a huge slowdown in training.
This MR includes also a change in the target space, by removing the whitening in the PCA preprocessing there, resulting into a lightly better fit, but the effect of this change is small.
Edited by Danilo Enoque Ferreira de Lima