Hi all,<div><br></div><div>I'm trying to get a very "basic" script working that implements RFE. I'm not a coder, but I've read the tutorial and am trying to follow others' scripts as best as possible. Generally, I hope to do small modifications of standard scripts (changing my 4d bold data, my mask, attributes.txt file, and label names). </div>
<div><br></div><div>I tried using the code at <a href="http://www.pymvpa.org/featsel.html">http://www.pymvpa.org/featsel.html</a>, but got the errors mentioned here (<a href="http://lists.alioth.debian.org/pipermail/pkg-exppsy-pymvpa/2011q2/001747.html">http://lists.alioth.debian.org/pipermail/pkg-exppsy-pymvpa/2011q2/001747.html</a>), as I'm running v0.6. (I must also mention that the 0.4, 0.6 (with multiple RCs), and coming 2.0 naming has been fairly difficult to navigate.)</div>
<div><br></div><div>Anyway, I followed that thread's advice and changed the method from camelCase naming to incorporate underscores: that line of code now reads "sensitivity_analyzer=rfesvm_split.get_sensitivity_analyzer(" </div>
<div><br></div><div>Python is now reporting a long TypeError which I've pasted below. I've also attached my script. I've gotten simpler scripts (that incorporate no feature selection) to work, so the problem should not be with my nifti or attribute files. </div>
<div><br></div><div>Thanks again for any and all help: I only have the manual, google, and this listserv to rely upon when problems arise! </div><div><br></div><div>Best,</div><div>Mike</div><div><br></div><div><br></div>
<div><div>In [24]: FtSelClf = FeatureSelectionClassifier(</div><div>   ....:     # use a linear SVM classifier:</div><div>   ....:     clf = LinearCSVMC(),</div><div>   ....:     # on features selected via RFE</div><div>   ....:     feature_selection = RFE(</div>
<div>   ....:         # based on sensitivity of a clf which does splitting internally</div><div>   ....:         sensitivity_analyzer=rfesvm_split.get_sensitivity_analyzer(</div><div>   ....:             transformer=Absolute,combiner=lambda x: N.sum(x,axis=0)),</div>
<div>   ....:         transfer_error=ConfusionBasedError(</div><div>   ....:             rfesvm_split,</div><div>   ....:             confusion_state="confusion"),</div><div>   ....:         # and whose internal error we use</div>
<div>   ....:         feature_selector=FractionTailSelector(</div><div>   ....:             0.3, mode='discard', tail='lower'),</div><div>   ....:         # remove 20% of features at each step</div><div>   ....:         #enable_states=['feature_ids'],</div>
<div>   ....:         # update sensitivity at each step</div><div>   ....:         update_sensitivity=True),</div><div>   ....:     enable_states=['feature_ids'],</div><div>   ....:     descr='LinSVM+RFE(splits_avg)')</div>
<div>---------------------------------------------------------------------------</div><div>TypeError                                 Traceback (most recent call last)</div><div>/Users/mike/Documents/fMRI_analysis/PyMVPA-analysis/subjects/0-pemberton/<ipython-input-24-85837272a049> in <module>()</div>
<div>      6         # based on sensitivity of a clf which does splitting internally</div><div><br></div><div>      7         sensitivity_analyzer=rfesvm_split.get_sensitivity_analyzer(</div><div>----> 8             transformer=Absolute,combiner=lambda x: N.sum(x,axis=0)),</div>
<div>      9         transfer_error=ConfusionBasedError(</div><div>     10             rfesvm_split,</div><div><br></div><div>/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/mvpa/misc/args.pyc in do_group_kwargs(self, *args_, **kwargs_)</div>
<div>     71                 if passthrough:   kwargs__[k] = skwargs</div><div>     72                 if assign: setattr(self, '_%s' % k, skwargs)</div><div>---> 73             return method(self, *args_, **kwargs__)</div>
<div>     74         do_group_kwargs.func_name = method.func_name</div><div>     75         return do_group_kwargs</div><div><br></div><div>/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/mvpa/clfs/meta.pyc in get_sensitivity_analyzer(self, slave_kwargs, **kwargs)</div>
<div>   1270                 self, sa_attr='splits',</div><div>   1271                 analyzer=self.__clf.get_sensitivity_analyzer(**slave_kwargs),</div><div>-> 1272                 **kwargs)</div><div>   1273 </div>
<div>   1274     partitioner = property(fget=lambda x:x.__partitioner,</div><div><br></div><div>/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/mvpa/misc/args.pyc in do_group_kwargs(self, *args_, **kwargs_)</div>
<div>     71                 if passthrough:   kwargs__[k] = skwargs</div><div>     72                 if assign: setattr(self, '_%s' % k, skwargs)</div><div>---> 73             return method(self, *args_, **kwargs__)</div>
<div>     74         do_group_kwargs.func_name = method.func_name</div><div>     75         return do_group_kwargs</div><div><br></div><div>/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/mvpa/measures/base.pyc in __init__(self, clf, analyzer, combined_analyzer, sa_attr, slave_kwargs, **kwargs)</div>
<div>    962           Arguments to pass to created analyzer if analyzer is None</div><div>    963         """</div><div>--> 964         Sensitivity.__init__(self, clf, **kwargs)</div><div>    965         if combined_analyzer is None:</div>
<div>    966             # sanitarize kwargs</div><div><br></div><div><br></div><div>/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/mvpa/measures/base.pyc in __init__(self, clf, force_train, **kwargs)</div>
<div>    756         # by default auto train</div><div><br></div><div>    757         kwargs['auto_train'] = kwargs.get('auto_train', True)</div><div>--> 758         FeaturewiseMeasure.__init__(self, force_train=force_train, **kwargs)</div>
<div>    759 </div><div>    760         _LEGAL_CLFS = self._LEGAL_CLFS</div><div><br></div><div>/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/mvpa/measures/base.pyc in __init__(self, **kwargs)</div>
<div>    615 </div><div>    616     def __init__(self, **kwargs):</div><div>--> 617         Measure.__init__(self, **kwargs)</div><div>    618 </div><div>    619 </div><div><br></div><div>/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/mvpa/measures/base.pyc in __init__(self, null_dist, **kwargs)</div>
<div>     85           certain value of the computed measure.</div><div>     86         """</div><div>---> 87         Learner.__init__(self, **kwargs)</div><div>     88 </div><div>     89         null_dist_ = auto_null_dist(null_dist)</div>
<div><br></div><div>/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/mvpa/base/learner.pyc in __init__(self, auto_train, force_train, **kwargs)</div><div>     76           All arguments are passed to the baseclass.</div>
<div>     77         """</div><div>---> 78         Node.__init__(self, **kwargs)</div><div>     79         self.__is_trained = False</div><div>     80         self.__auto_train = auto_train</div><div><br>
</div><div>/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/mvpa/base/node.pyc in __init__(self, space, postproc, **kwargs)</div><div>     52           result dataset. If None, nothing is done.</div>
<div>     53         """</div><div>---> 54         ClassWithCollections.__init__(self, **kwargs)</div><div>     55         self.set_space(space)</div><div>     56         self.set_postproc(postproc)</div>
<div><br></div><div>/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/mvpa/base/state.pyc in __init__(self, descr, **kwargs)</div><div>    855                           "Unexpected keyword argument %s=%s for %s." \</div>
<div>    856                            % (arg, argument, self) \</div><div>--> 857                           + " Valid parameters are %s" % known_params</div><div>    858 </div><div>    859             ## Initialize other base classes</div>
<div><br></div><div><br></div><div>TypeError: Unexpected keyword argument transformer=<function Absolute at 0x1098665f0> for <BoostedClassifierSensitivityAnalyzer>. Valid parameters are ['base_sensitivities', 'raw_results', 'calling_time', 'training_time', 'null_t', 'null_prob']</div>
</div>