joshday / OnlineStats.jl

⚡ Single-pass algorithms for statistics
https://joshday.github.io/OnlineStats.jl/latest/
MIT License
831 stars 62 forks source link

Feature Request: PCA wrapper around CovMatrix which also supports transform methods #280

Open schlichtanders opened 6 months ago

schlichtanders commented 6 months ago

There is already CCIPCA, but it unfortunately does not support merge! and hence cannot be used on combination with DTables.jl.

It would be great to have a PCA Monoid which builds on top of CovMatrix (which thankfully supports merge!). It probably uses LinearAlgebra.svd to do the eigenvalue decomposition.

It should then support CCIPCA's extra functions like

OnlineStats.transform(o, data)
OnlineStats.fittransform!(o, moredata)
OnlineStats.relativevariances(o)