rusty-machine icon indicating copy to clipboard operation
rusty-machine copied to clipboard

Implement Principal Component Analysis

Open AtheMathmo opened this issue 9 years ago • 5 comments

Rulinalg now supports SVD - it would be nice to have PCA as a result.

AtheMathmo avatar Jul 18 '16 00:07 AtheMathmo

I could do this, I am quite new to rust but I'd love to get involved here and PCA should be doable. Is there any good starting point into how the stuff for this project should look like?

jprob avatar Mar 22 '17 12:03 jprob

There is actually an (in?)active PR right now for PCA ( #158 ). Maybe @sinhrks can say whether he will want to continue this or pass it on. I'd say that reading through the PR (and attached discussion) is a good starting point.

If you do end up taking this over I am happy to help out wherever I can. Sadly I am very busy right now but will do my best to find the time!

AtheMathmo avatar Mar 22 '17 12:03 AtheMathmo

Oh sorry, I didn't understand that someone is working on it already. What about other dimension reduction methods? I am quite interested in that area and could maybe also introduce some nonlinear dimension reduction methods if this is appreciated. I could take a look at the PR for PCA to get a feeling about how a DR method should be done

jprob avatar Mar 22 '17 13:03 jprob

Yes, please feel free to suggest any other techniques! t-SNE would be a cool one to have added.

I think that dimension reduction is an algorithm that the current rusty-machine API doesn't capture well. I think the Transformer trait is probably the best way to implement one.

Let me know if you need any help finding/understanding things.

AtheMathmo avatar Mar 22 '17 13:03 AtheMathmo

Since there's SVD implemented, might also be interesting to introduce collatborative filtering methods into the library..?

tomtung avatar Jun 25 '18 00:06 tomtung