[pymvpa] Customize ANOVA Feature Selection

Roberto Guidotti robbenson18 at gmail.com
Tue Oct 4 14:45:12 UTC 2011


Sounds great!!

Thank you Yaroslav!

Roberto.

On 3 October 2011 19:38, Yaroslav Halchenko <debian at onerussian.com> wrote:

> AHA -- that is a "cool" one ;)  if only we refactored those selectors
> into proper Node's, they could have been chained :-/  now you could
> chain (afaik) the corresponding SensitivityBasedFeatureSelection's (or
> just use CombinedFeatureSelection), but that would be wasteful
> since it would compute ANOVA twice... also we could take advantage that
> feature selectors are simple callables so we could craft a corresponding
> funct(ion|tor) which would chain those two:
>
>        def custom_tail_selector(seq):
>            seq1 = FractionTailSelector(0.01, mode='discard',
> tail='upper')(seq)
>            seq2 = FractionTailSelector(0.05, mode='select',
> tail='upper')(seq)
>            return list(set(seq1).intersection(seq2))
>
> it seems to work as desired (pushed a rudimentary smoke unittest for it)
>
> On Mon, 03 Oct 2011, Roberto Guidotti wrote:
>
> >    Thank you for the response,
>
> >    I'm always lazy to improve problem description (and my english doesn't
> >    help me!!!)
>
> >    Theoretically for every fold I have to select important features, so I
> >    perform ANOVA, the algorithm ranks my feature, but I want to drop the
> >    first 1% and use the 5% (or X%) of the new rank after 1% dropping.  I
> >    found on my analysis that most important feature are, in the 90% of
> >    cases, on the brain edge (probably motion artefacts voxels that still
> >    affect the dataset also after preprocessing).
>
> >    For this reason I would like to extract ANOVA ranking stack or to find
> >    a method to use voxels from 1.01% to 5.01%!
>
> >    So I want to perform ANOVA on data, drop the first 1%, select the new
> >    ranking stack (5% of residual voxels)  and train the classifier!
>
> >    Thank you
>
> >    RG
>
> >    On 3 October 2011 18:14, Yaroslav Halchenko <[1]debian at onerussian.com
> >
> >    wrote:
>
> >      I might be missing the problem since you seem to have to know the
> >      blocks
> >      you need ;)  so following the example from the clfs warehouse:
> >         FeatureSelectionClassifier(
> >             kNN(),
> >             SensitivityBasedFeatureSelection(
> >                OneWayAnova(),
> >                FractionTailSelector(0.05, mode='select', tail='upper')),
> >             descr="kNN on 5%(ANOVA)")
> >      logical change would be to use 0.99 instead of 0.05 to select 99%
> >      top voxels
> >      (or in other words to dump 1%)... or just change mode to 'discard'
> >      and specify
> >      0.01 as the fraction
>
> >    On Mon, 03 Oct 2011, Roberto Guidotti wrote:
> >    >    Hi all,
> >    >    I would like to know if there is a method to extract the feature
> >    >    ranking from ANOVA feature selection or if there is a method to
> >    drop
> >    >    first 1% of voxel included in the ranking and select other voxel
> >    as
> >    >    usual (with FractionTailSelection()).
> >    >    Thank you
> >    >    Roberto
>
> >      > _______________________________________________
> >      > Pkg-ExpPsy-PyMVPA mailing list
> >      > [2]Pkg-ExpPsy-PyMVPA at lists.alioth.debian.org
>
> >      [3]
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-expps
> >      y-pymvpa
> --
> =------------------------------------------------------------------=
> Keep in touch                                     www.onerussian.com
> Yaroslav Halchenko                 www.ohloh.net/accounts/yarikoptic
>
> _______________________________________________
> 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/20111004/1d670049/attachment.html>


More information about the Pkg-ExpPsy-PyMVPA mailing list