lebedov / scikit-cuda

Python interface to GPU-powered libraries
http://scikit-cuda.readthedocs.org/
Other
986 stars 179 forks source link

Kernel PCA #309

Open dreizehnutters opened 3 years ago

dreizehnutters commented 3 years ago

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!

lebedov commented 3 years ago

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.

nmerrill67 commented 3 years ago

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.

dreizehnutters commented 3 years ago

@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.