AtheMathmo / rusty-machine

Machine Learning library for Rust
https://crates.io/crates/rusty-machine/
MIT License
1.25k stars 153 forks source link

Implement Principal Component Analysis #104

Open AtheMathmo opened 8 years ago

AtheMathmo commented 8 years ago

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

jprob commented 7 years ago

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?

AtheMathmo commented 7 years ago

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!

jprob commented 7 years ago

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

AtheMathmo commented 7 years ago

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.

tomtung commented 6 years ago

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