[pymvpa] balancing leave-one-out
Ben Acland
benacland at gmail.com
Tue Aug 19 05:07:04 UTC 2014
Thanks Dylan! I'll check this out tomorrow.
Ben
On Aug 18, 2014, at 11:49 PM, Dylan D. Wagner <wagner.1174 at osu.edu> wrote:
> Hi Ben,
>
> I did something nominally similar using Sifter (inspired by an earlier post from Yarick: http://lists.alioth.debian.org/pipermail/pkg-exppsy-pymvpa/2012q4/002322.html). Here's how I think you can set up your partitioning scheme.
>
>
> # Make 4 dummy subjects and give them subject and group ids.
> ds_all = [normal_feature_dataset(nlabels=4, snr=100, perlabel=10, nfeatures = 5, nchunks=5) for _ in range(4)]
> for i in range(0,4,2):
> ds_all[i].sa['subject'] = np.repeat('s%s' %i, len(ds_all[i]))
> ds_all[i].sa['group'] = np.repeat('groupA', len(ds_all[i]))
>
> for i in range(1,4,2):
> ds_all[i].sa['subject'] = np.repeat('s%s' %i, len(ds_all[i]))
> ds_all[i].sa['group'] = np.repeat('groupB', len(ds_all[i]))
>
> # vstack the datasets
> ds_all = vstack(ds_all, a=0)
>
> # Setup the partitioner
> npart = NFoldPartitioner(cvtype=2, attr='subject')
>
> # Sift through the partitions excluding those where the test partition doesn't have one of each group.
> # Should scale up to more than one group id.
> sift = Sifter([('partitions',2), ('group', dict(uvalues=ds_all.sa['group'].unique, balanced=True))])
>
> # Combine npart and sifter
> part = ChainNode([npart, sift], space = 'partitions')
>
> # Check partitions
> for i, split in enumerate(list(part.generate(ds_all))):
> print 'Partition 2, Split %d:' %i
> print split[split.sa.partitions==2].sa['subject'].unique
> print split[split.sa.partitions==2].sa['group'].unique
>
> # And of course...
> clf = LinearCSVMC(space = 'group')
>
>
>
> On 8/18/2014 10:46 PM, Ben Acland wrote:
>> Okay, forget that. Simpler version of the same problem:
>>
>> I'd now like to leave out one subject from each group (I'm trying to decode 'sub_group'). Seems like it should be easy enough. Anyone have the quick answer on this?
>>
>> Ben
>> _______________________________________________
>> 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
>
>
> _______________________________________________
> 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
More information about the Pkg-ExpPsy-PyMVPA
mailing list