MultivariateStats.jl icon indicating copy to clipboard operation
MultivariateStats.jl copied to clipboard

using truncated SVD for whitening in ICA gives 5-10x speedup on large inputs

Open ghost opened this issue 5 years ago • 1 comments

Using truncted SVD for whitening gives huge speedup for me, could be done by replacing the following code:

        Efac = eigen(C)
        ord = sortperm(Efac.values; rev=true)
        (v, P) = extract_kv(Efac, ord, k)

with P, v, _ = tsvd(C, k)

ghost avatar May 04 '20 20:05 ghost

Too bad, that tsvd doesn't follow LinearAlgebra interface by returning SVD object. It's a good that you mention a possibility of other eigendecomposition methods. But, it would require to rewrite API to abstract eigendecomposition part of the package. I have a long standing plan to revise the package interface, see #94. I'll definitely consider this issue during the rewrite. As of a time horizon, can't say anything at this point.

wildart avatar May 05 '20 02:05 wildart