Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kernel PCA #309

Open
dreizehnutters opened this issue Jan 23, 2021 · 3 comments
Open

Kernel PCA #309

dreizehnutters opened this issue Jan 23, 2021 · 3 comments

Comments

@dreizehnutters
Copy link

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
Copy link
Owner

lebedov commented Jan 25, 2021

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
Copy link
Contributor

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
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants