scikit-cuda icon indicating copy to clipboard operation
scikit-cuda copied to clipboard

Kernel PCA

Open dreizehnutters opened this issue 3 years ago • 3 comments

Is it planned to offer the kernel based version of PCA ? Pardon my ignorance but how difficult is it to extend to PCA implementation, i would like to help ?

Thanks for the awesome CUDA library!

dreizehnutters avatar Jan 23 '21 11:01 dreizehnutters

I don't have plans to do so. The current PCA implementation (which was contributed, incidentally) is based on an iterative algorithm that uses classical Gram-Schmidt orthogonalization, which can be implemented using CUBLAS functions. You will probably want to pursue an iterative approach for kPCA as well if you want to try to investigate; a bit of searching online suggests that folks have developed parallel approaches to kPCA, but I'm not familiar with the specifics.

lebedov avatar Jan 25 '21 06:01 lebedov

Hello I contributed the PCA module. There is no plan for kPCA right now, since I essentially just read the paper linked in docs and converted their C/CUDA code to scikit cuda Python. I would however be interested in generally improving skcuda.PCA with more usage options and available algorithms. If you would like to take on the task of implementing GPU kPCA I would be happy to help in any way I can. Feel free to email me or contact me here with any questions or anything.

nmerrill67 avatar Jan 25 '21 15:01 nmerrill67

@nmerrill67 Thanks for the implementation!

I am currently pretty loaded with TODOs so i have to pass for now. Is there an good paper one can reference an kPCA implementation upon ? Maybe this would be a good starting point for anybody.

dreizehnutters avatar Jan 27 '21 20:01 dreizehnutters