<div dir="ltr">Dear all, <div><br></div><div style>I'm struggling with recursive feature selection, a meta classifier (clf), and the final cross validation. Below is what I have done and what I get as error. I would very much appreciate if you could help me here. </div>
<div style><br></div><div style><b>#from rfe manual</b></div><div style><br></div><div style><div><i>rfe</i> = RFE(rfesvm_split.get_sensitivity_analyzer(postproc = ChainMapper([ FxMapper('features', l2_normed), FxMapper('samples', np.mean), FxMapper('samples', np.abs)])), ConfusionBasedError(rfesvm_split, confusion_state='stats'),</div>
<div>Repeater(2), fselector=FractionTailSelector(0.50, mode = 'select', tail= 'upper'), stopping_criterion=NBackHistoryStopCrit(BestDetector(), 10), train_pmeasure=False, update_sensitivity=True)</div><div>
<br></div><div><div style><b>#Meta-classifier with SVM as the final classifier and rfe as feature selector</b></div><div style><b><br></b></div><div><i>clf</i>=FeatureSelectionClassifier(LinearCSVMC(), rfe, descr='SVM+RFE')</div>
</div><div><br></div><div style><b>#cross-validation</b></div><div style><br></div><div style><i>cvte</i>=CrossValidation(clf, HalfPartitioner(), enable_ca=['stats'])<br></div><div style><br></div><div style><b>#running the analysis</b></div>
<div style><b><br></b></div><div style><i>results</i>=cvte(MyData)</div><div style><br></div><div style><b>ERRORS:</b></div><div style><b><br></b></div><div style><div>In [37]: results=cvte(gm_lt)</div><div>---------------------------------------------------------------------------</div>
<div>IndexError                                Traceback (most recent call last)</div><div><ipython-input-37-a9da6f9cc192> in <module>()</div><div><b>----> 1 results=cvte(gm_lt)</b></div><div><br></div><div>
/usr/lib64/python2.6/site-packages/mvpa2/base/learner.pyc in __call__(self, ds)</div><div>    257                                    "used and auto training is disabled."</div><div>    258                                    % str(self))</div>
<div><b>--> 259         return super(Learner, self).__call__(ds)</b></div><div>    260 </div><div>    261 </div><div><br></div><div>/usr/lib64/python2.6/site-packages/mvpa2/base/node.pyc in __call__(self, ds)</div><div>
    109 </div><div>    110         self._precall(ds)</div><div><b>--> 111         result = self._call(ds)</b></div><div>    112         result = self._postcall(ds, result)</div><div>    113 </div><div><br></div><div>/usr/lib64/python2.6/site-packages/mvpa2/measures/base.pyc in _call(self, ds)</div>
<div>    495         # always untrain to wipe out previous stats</div><div>    496         self.untrain()</div><div><b>--> 497         return super(CrossValidation, self)._call(ds)</b></div><div>    498 </div><div>    499 </div>
<div><br></div><div>/usr/lib64/python2.6/site-packages/mvpa2/measures/base.pyc in _call(self, ds)</div><div>    324                 ca.datasets.append(sds)</div><div>    325             # run the beast</div><div><b>--> 326             result = node(sds)</b></div>
<div>    327             # callback</div><div>    328             if not self._callback is None:</div><div><br></div><div>/usr/lib64/python2.6/site-packages/mvpa2/base/learner.pyc in __call__(self, ds)</div><div>    257                                    "used and auto training is disabled."</div>
<div>    258                                    % str(self))</div><div><b>--> 259         return super(Learner, self).__call__(ds)</b></div><div>    260 </div><div>    261 </div><div><br></div><div>/usr/lib64/python2.6/site-packages/mvpa2/base/node.pyc in __call__(self, ds)</div>
<div>    109 </div><div>    110         self._precall(ds)</div><div><b>--> 111         result = self._call(ds)</b></div><div>    112         result = self._postcall(ds, result)</div><div>    113 </div><div><br></div><div>
/usr/lib64/python2.6/site-packages/mvpa2/measures/base.pyc in _call(self, ds)</div><div>    589                     for i in dstrain.get_attr(splitter.get_space())[0].unique])</div><div>    590         # ask splitter for first part</div>
<div><b>--> 591         measure.train(dstrain)</b></div><div>    592         # cleanup to free memory</div><div>    593         del dstrain</div><div><br></div><div>/usr/lib64/python2.6/site-packages/mvpa2/base/learner.pyc in train(self, ds)</div>
<div>    130             # things might have happened during pretraining</div><div>    131             if ds.nfeatures > 0:</div><div><b>--> 132                 result = self._train(ds)</b></div><div>    133             else:</div>
<div>    134                 warning("Trying to train on dataset with no features present")</div><div><br></div><div>/usr/lib64/python2.6/site-packages/mvpa2/clfs/meta.pyc in _train(self, dataset)</div><div>   1346         # XXX: should training be done using whole dataset or just samples</div>
<div>   1347         # YYY: in some cases labels might be needed, thus better full dataset</div><div><b>-> 1348         self.__mapper.train(dataset)</b></div><div>   1349 </div><div>   1350         # for train() we have to provide dataset -- not just samples to train!</div>
<div><br></div><div>/usr/lib64/python2.6/site-packages/mvpa2/base/learner.pyc in train(self, ds)</div><div>    130             # things might have happened during pretraining</div><div>    131             if ds.nfeatures > 0:</div>
<div><b>--> 132                 result = self._train(ds)</b></div><div>    133             else:</div><div>    134                 warning("Trying to train on dataset with no features present")</div><div><br>
</div><div>/usr/lib64/python2.6/site-packages/mvpa2/featsel/rfe.pyc in _train(self, ds)</div><div>    246             # Compute sensitivity map</div><div>    247             if self.__update_sensitivity or sensitivity == None:</div>
<div><b>--> 248                 sensitivity = self._fmeasure(wdataset)</b></div><div>    249                 if len(sensitivity) > 1:</div><div>    250                     raise ValueError(</div><div><br></div><div>
/usr/lib64/python2.6/site-packages/mvpa2/base/learner.pyc in __call__(self, ds)</div><div>    251                     debug('LRN', "Auto-training %s on %s",</div><div>    252                           (self, ds))</div>
<div><b>--> 253                 self.train(ds)</b></div><div>    254             else:</div><div>    255                 # we always have to have trained before using a learner</div><div><br></div><div>/usr/lib64/python2.6/site-packages/mvpa2/base/learner.pyc in train(self, ds)</div>
<div>    130             # things might have happened during pretraining</div><div>    131             if ds.nfeatures > 0:</div><div><b>--> 132                 result = self._train(ds)</b></div><div>    133             else:</div>
<div>    134                 warning("Trying to train on dataset with no features present")</div><div><br></div><div>/usr/lib64/python2.6/site-packages/mvpa2/measures/base.pyc in _train(self, dataset)</div><div>
    805                     True:  "although it was trained previously"}</div><div>    806                    [clf.trained]))</div><div><b>--> 807         return clf.train(dataset)</b></div><div>    808 </div>
<div>    809 </div><div><br></div><div>/usr/lib64/python2.6/site-packages/mvpa2/base/learner.pyc in train(self, ds)</div><div>    130             # things might have happened during pretraining</div><div>    131             if ds.nfeatures > 0:</div>
<div><b>--> 132                 result = self._train(ds)</b></div><div>    133             else:</div><div>    134                 warning("Trying to train on dataset with no features present")</div><div><br>
</div><div>/usr/lib64/python2.6/site-packages/mvpa2/clfs/meta.pyc in _train(self, dataset)</div><div>   1268 </div><div>   1269             if ca.is_enabled("stats"):</div><div><b>-> 1270                 predictions = clf.predict(split[1])</b></div>
<div>   1271                 self.ca.stats.add(split[1].sa[targets_sa_name].value,</div><div>   1272                                           predictions,</div><div><br></div><div><b>IndexError: list index out of range</b></div>
</div><div style><br></div><div style><br></div><div><br></div><div><br></div></div></div>