[pymvpa] biased accuracy with nperlabel='equal'?
David V. Smith
david.v.smith at duke.edu
Sun Oct 23 18:33:09 UTC 2011
Hi,
I have 140 structural images: 78 are in class A and 62 are in class B. To ensure that the training algorithm (LinearNuSVMC) doesn't build a biased model, I am using the nperlabel='equal' option in my splitter. I know this part of my code is working (see below), so I'm confused why my CVs (leave-one-scan-out) are biased with random data (e.g., 55.71%). Can someone please clarify why I'm not getting 50% with random data? I suspect I'm just not understanding something simple...
Thanks!
David
In [11]: print ds.summary()
Dataset / float64 140 x 20068
uniq: 140 chunks 2 labels
stats: mean=0.114425 std=0.318326 var=0.101332 min=0 max=1
No details due to large number of labels or chunks. Increase maxc and maxl if desired
Summary per label across chunks
label mean std min max #chunks
1 0.443 0.497 0 1 62
2 0.557 0.497 0 1 78
In [10]: print '\n'.join([d.summary() for d in list(NFoldSplitter(nperlabel='equal')(ds))[0]])
Dataset / float64 122 x 20068
uniq: 122 chunks 2 labels
stats: mean=0.107628 std=0.30991 var=0.0960441 min=0 max=1
No details due to large number of labels or chunks. Increase maxc and maxl if desired
Summary per label across chunks
label mean std min max #chunks
1 0.5 0.5 0 1 61
2 0.5 0.5 0 1 61
Dataset / float64 1 x 20068
uniq: 1 chunks 1 labels
stats: mean=0.077935 std=0.268069 var=0.0718612 min=0 max=1
Counts of labels in each chunk:
chunks\labels 1.0
---
1.0 1
Summary per label across chunks
label mean std min max #chunks
1 1 0 1 1 1
Summary per chunk across labels
chunk mean std min max #labels
1 1 0 1 1 1
More information about the Pkg-ExpPsy-PyMVPA
mailing list