Hi all, 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).
I tried using the code at http://www.pymvpa.org/featsel.html, but got the errors mentioned here ( http://lists.alioth.debian.org/pipermail/pkg-exppsy-pymvpa/2011q2/001747.html), 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.) 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(" 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. Thanks again for any and all help: I only have the manual, google, and this listserv to rely upon when problems arise! Best, Mike In [24]: FtSelClf = FeatureSelectionClassifier( ....: # use a linear SVM classifier: ....: clf = LinearCSVMC(), ....: # on features selected via RFE ....: feature_selection = RFE( ....: # based on sensitivity of a clf which does splitting internally ....: sensitivity_analyzer=rfesvm_split.get_sensitivity_analyzer( ....: transformer=Absolute,combiner=lambda x: N.sum(x,axis=0)), ....: transfer_error=ConfusionBasedError( ....: rfesvm_split, ....: confusion_state="confusion"), ....: # and whose internal error we use ....: feature_selector=FractionTailSelector( ....: 0.3, mode='discard', tail='lower'), ....: # remove 20% of features at each step ....: #enable_states=['feature_ids'], ....: # update sensitivity at each step ....: update_sensitivity=True), ....: enable_states=['feature_ids'], ....: descr='LinSVM+RFE(splits_avg)') --------------------------------------------------------------------------- TypeError Traceback (most recent call last) /Users/mike/Documents/fMRI_analysis/PyMVPA-analysis/subjects/0-pemberton/<ipython-input-24-85837272a049> in <module>() 6 # based on sensitivity of a clf which does splitting internally 7 sensitivity_analyzer=rfesvm_split.get_sensitivity_analyzer( ----> 8 transformer=Absolute,combiner=lambda x: N.sum(x,axis=0)), 9 transfer_error=ConfusionBasedError( 10 rfesvm_split, /Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/mvpa/misc/args.pyc in do_group_kwargs(self, *args_, **kwargs_) 71 if passthrough: kwargs__[k] = skwargs 72 if assign: setattr(self, '_%s' % k, skwargs) ---> 73 return method(self, *args_, **kwargs__) 74 do_group_kwargs.func_name = method.func_name 75 return do_group_kwargs /Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/mvpa/clfs/meta.pyc in get_sensitivity_analyzer(self, slave_kwargs, **kwargs) 1270 self, sa_attr='splits', 1271 analyzer=self.__clf.get_sensitivity_analyzer(**slave_kwargs), -> 1272 **kwargs) 1273 1274 partitioner = property(fget=lambda x:x.__partitioner, /Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/mvpa/misc/args.pyc in do_group_kwargs(self, *args_, **kwargs_) 71 if passthrough: kwargs__[k] = skwargs 72 if assign: setattr(self, '_%s' % k, skwargs) ---> 73 return method(self, *args_, **kwargs__) 74 do_group_kwargs.func_name = method.func_name 75 return do_group_kwargs /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) 962 Arguments to pass to created analyzer if analyzer is None 963 """ --> 964 Sensitivity.__init__(self, clf, **kwargs) 965 if combined_analyzer is None: 966 # sanitarize kwargs /Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/mvpa/measures/base.pyc in __init__(self, clf, force_train, **kwargs) 756 # by default auto train 757 kwargs['auto_train'] = kwargs.get('auto_train', True) --> 758 FeaturewiseMeasure.__init__(self, force_train=force_train, **kwargs) 759 760 _LEGAL_CLFS = self._LEGAL_CLFS /Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/mvpa/measures/base.pyc in __init__(self, **kwargs) 615 616 def __init__(self, **kwargs): --> 617 Measure.__init__(self, **kwargs) 618 619 /Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/mvpa/measures/base.pyc in __init__(self, null_dist, **kwargs) 85 certain value of the computed measure. 86 """ ---> 87 Learner.__init__(self, **kwargs) 88 89 null_dist_ = auto_null_dist(null_dist) /Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/mvpa/base/learner.pyc in __init__(self, auto_train, force_train, **kwargs) 76 All arguments are passed to the baseclass. 77 """ ---> 78 Node.__init__(self, **kwargs) 79 self.__is_trained = False 80 self.__auto_train = auto_train /Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/mvpa/base/node.pyc in __init__(self, space, postproc, **kwargs) 52 result dataset. If None, nothing is done. 53 """ ---> 54 ClassWithCollections.__init__(self, **kwargs) 55 self.set_space(space) 56 self.set_postproc(postproc) /Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/mvpa/base/state.pyc in __init__(self, descr, **kwargs) 855 "Unexpected keyword argument %s=%s for %s." \ 856 % (arg, argument, self) \ --> 857 + " Valid parameters are %s" % known_params 858 859 ## Initialize other base classes 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']
forListServ.py
Description: Binary data
_______________________________________________ Pkg-ExpPsy-PyMVPA mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-exppsy-pymvpa

