[pymvpa] Sensitivities same for each fold?

Per B. Sederberg psederberg at gmail.com
Fri Aug 19 15:03:46 UTC 2011

Here's a short script that illustrates the bug:

from mvpa.suite import *

dataset = normal_feature_dataset(perlabel=100, nlabels=2, nfeatures=10,
                                nonbogus_features=[0,1], snr=0.3, nchunks=2)

zscore(dataset, chunks_attr='chunks')

clfr = LinearCSVMC(enable_ca=['estimates'])

sclf = SplitClassifier(clfr,

analyzer = sclf.get_sensitivity_analyzer()

senses = analyzer(dataset)

print "This should be False: "
print "\tnp.allclose(senses.samples[0],senses.samples[1]) = " +

I'll also try and make a unit test.


On Thu, Aug 18, 2011 at 10:27 PM, Per B. Sederberg <psederberg at gmail.com> wrote:
> I forgot to mention that I'm running the latest master branch on
> github.  My machine is running Debian testing (64-bit).
> Best,
> Per
> On Thu, Aug 18, 2011 at 10:26 PM, Per B. Sederberg <psederberg at gmail.com> wrote:
>> Hi Folks!
>> Long time no chat, but I hope all is well.  I'm working on an analysis
>> that hinges on the weights assigned to each voxel to make the
>> classification.  I figured the easy way to do this was with a
>> sensitivity analyzer as such:
>>    clfr = SMLR()
>>    sclf = SplitClassifier(clfr,
>>                           NFoldPartitioner(),
>>                           enable_ca=['stats'])
>>    print "Running CV"
>>    analyzer = sclf.get_sensitivity_analyzer()
>>    senses = analyzer(dat)
>> The problem is that the dataset returned by analyzer has a vector of
>> weights for each class for each fold, but they are the same for each
>> fold, which I can't believe is correct.  I get the same outcome with a
>> LinearSVMC classifier, so it's not an issue in one single classifier.
>> Do we need to do a copy somewhere in there?
>> Thanks for any tips,
>> Per

More information about the Pkg-ExpPsy-PyMVPA mailing list