[pymvpa] Hyperalignment: SVD did not converge

Swaroop Guntupalli swaroopgj at gmail.com
Fri May 18 13:33:56 UTC 2012

Hi Kiefer,

Sorry for late response (I blame abstract submission deadlines).

I sometimes (very few though) encounter this SVD non convergence problem.
One workaround I use (and that works for me) is to try a different SVD
implementation: dgesvd instead of numpy (option in ProcrusteanMapper)
If it doesn't work any SVD implementation, it means the matrix is probably
bad for some reason, which might mean one or more of the data
matrices is messed up (SVD is on the product of 2 data matrices), so make
sure you exclude all invariant voxels from the data (you can do that using
Keep us posted on your progress.


On Tue, May 1, 2012 at 2:38 PM, Kiefer Katovich <kieferk at stanford.edu>wrote:

> Hi again,
> Sorry my messages keep starting new threads; I've been receiving email
> in digest mode but changed my settings to single mail, so I should be
> able to reply properly soon.
> First off – I re-ran the iterative test of hyperalignment starting
> with a different set of subjects. This time 8 of the 21 subjects
> managed to be hyperaligned to each other, and most of the successful
> subjects were different than in the last batch. I just did this to
> confirm that the success of hyperalignment is contingent upon the
> unique set of datasets that you put into it, and not just that some
> subjects were bad and others good.
> Now, on to your comments:
> Thanks for the clarification on hyperalignment and SVD. I should
> probably read the source code to get a better idea of exactly what
> hyperalignment and the procrustean transformation is attempting to do
> with the datasets I give it.
> By "classification error" I only meant the way in which I had coded
> the time points of the dataset into separate classes, not actually
> running a classification algorithm. Sorry for the misconception, that
> was poor phrasing on my part.
> A related question: how much of an impact does the coding of time
> points have on hyperalignment? I assume that the feature selector,
> such as OneWayAnova, chooses features according to the "targets" that
> you assign to each time point, and that this is then fed into
> hyperalignment and procrustean?
> Here are some details on my data:
> 432 time points
> ~58000 voxels per time point (whole brain, masked)
> 3000 features selected using FixedNElementTailSelector
> I assumed that it is only the 3000 features from the tail selector
> that hyperalignment and procrustean use to make the alignment?
> Ideally I would not have to mask out to a specific area of the brain
> prior to the feature selection. I prefer, for this data, to not make
> an initial assumption about which brain areas contain the best
> features for alignment.
> Thanks you,
> Kiefer
> _______________________________________________
> Pkg-ExpPsy-PyMVPA mailing list
> Pkg-ExpPsy-PyMVPA at lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-exppsy-pymvpa
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/pkg-exppsy-pymvpa/attachments/20120518/4b9f925e/attachment.html>

More information about the Pkg-ExpPsy-PyMVPA mailing list