<div dir="ltr"><div><div><div>Hello,<br><br></div>I'm trying to use pearsonr to crossvalidate a ridge regression on some structural data.<br><br></div>My code is:<br><br>#define the classifier <br>from mvpa2.clfs.gnb import GNB<br>from mvpa2.clfs.svm import LinearCSVMC, RbfCSVMC, RbfNuSVMC, LinearNuSVMC<br>from mvpa2.clfs.meta import FeatureSelectionClassifier<br>from mvpa2.clfs.warehouse import SensitivityBasedFeatureSelection, FractionTailSelector, OneWayAnova<br>from mvpa2.clfs.ridge import RidgeReg<br><br><br>clf = RidgeReg()#LinearCSVMC()<br><br><br>#If some sort of feature selection is required use this to get a certain percentage of the tail of an anova<br>"""<br>CLF = LinearCSVMC()<br>clf = FeatureSelectionClassifier(<br>        CLF,<br>        SensitivityBasedFeatureSelection(<br>            OneWayAnova(),<br>            FractionTailSelector(0.05, mode='select', tail='upper'))<br>        )<br>"""<br><br>#Create a partitioner that generates equal sized testing and training sets that are balanced<br>from mvpa2.generators.partition import HalfPartitioner<br>from mvpa2.generators.resampling import Balancer<br>from mvpa2.generators.base import Sifter<br>from mvpa2.base.node import ChainNode<br><br>metaPartitioner = HalfPartitioner()#NFoldPartitioner(cvtype=2)<br>partitioner = ChainNode([metaPartitioner,<br>                         Sifter([('partitions', 2),<br>                         ('targets', [1, 2])]),<br>                         Balancer(attr='targets',<br>                                  count=1, # can set > 1 if you dont have "enough"<br>                                  limit='partitions',<br>                                  apply_selection=True<br>                                 )],<br>                            space='partitions')<br><br>#Train the classifier<br><br>from mvpa2.generators.partition import NFoldPartitioner, HalfPartitioner<br><br>from mvpa2.measures.base import CrossValidation<br>from mvpa2.misc.errorfx import mean_match_accuracy, corr_error, corr_error_prob, pearsonr<br>from mvpa2.mappers.fx import mean_sample<br><br>#use correlation error when using ridge regression<br>cv = CrossValidation(clf, partitioner, postproc=mean_sample(), errorfx=pearsonr, enable_ca=['stats'])<br><br><br></div>the error is:<br><div class=""><div class=""><pre><span class="">---------------------------------------------------------------------------</span>
<span class="">ValueError</span>                                Traceback (most recent call last)
<span class=""><ipython-input-22-0cdf8de46914></span> in <span class=""><module><span class="">()</span>
<span class="">      3</span> <span class="">for</span> </span>dataset <span class="">in</span> datasets<span class="">:</span><span class=""></span>
<span class="">      4</span>     <span class="">print</span> <span class="">"Partition: "</span> <span class="">+</span> dataset<span class="">[</span><span class="">0</span><span class="">]</span><span class=""></span>
<span class="">----> 5<span class="">     </span>cv_results</span> <span class="">=</span> cv<span class="">(</span>dataset<span class="">[</span><span class="">1</span><span class="">]</span><span class="">)</span><span class="">.</span>samples<span class=""></span>
<span class="">      6</span>     <span class="">print</span> cv_results<span class=""></span>
<span class="">      7</span>     resTup <span class="">=</span> <span class="">(</span>dataset<span class="">[</span><span class="">0</span><span class="">]</span><span class="">,</span>cv_results<span class="">)</span><span class=""></span>

<span class="">/home/orkney_01/tnickson/Programming/pyVirtualEnv/lib/python2.6/site-packages/mvpa2/base/learner.pyc</span> in <span class="">__call__<span class="">(self, ds)</span>
<span class="">    257</span>                                    <span class="">"used and auto training is disabled."</span><span class=""></span></span>
<span class="">    258</span>                                    % str(self))
<span class="">--> 259<span class="">         <span class="">return</span> </span>super</span><span class="">(</span>Learner<span class="">,</span> self<span class="">)</span><span class="">.</span>__call__<span class="">(</span>ds<span class="">)</span><span class=""></span>
<span class="">    260</span> <span class=""></span>
<span class="">    261</span> <span class=""></span>

<span class="">/home/orkney_01/tnickson/Programming/pyVirtualEnv/lib/python2.6/site-packages/mvpa2/base/node.pyc</span> in <span class="">__call__<span class="">(self, ds)</span>
<span class="">    119</span> <span class=""></span></span>
<span class="">    120</span>         self<span class="">.</span>_precall<span class="">(</span>ds<span class="">)</span><span class=""></span>
<span class="">--> 121<span class="">         </span>result</span> <span class="">=</span> self<span class="">.</span>_call<span class="">(</span>ds<span class="">)</span><span class=""></span>
<span class="">    122</span>         result <span class="">=</span> self<span class="">.</span>_postcall<span class="">(</span>ds<span class="">,</span> result<span class="">)</span><span class=""></span>
<span class="">    123</span> <span class=""></span>

<span class="">/home/orkney_01/tnickson/Programming/pyVirtualEnv/lib/python2.6/site-packages/mvpa2/measures/base.pyc</span> in <span class="">_call<span class="">(self, ds)</span>
<span class="">    495</span>         <span class=""># always untrain to wipe out previous stats</span><span class=""></span><span class=""></span></span>
<span class="">    496</span>         self<span class="">.</span>untrain<span class="">(</span><span class="">)</span><span class=""></span>
<span class="">--> 497<span class="">         <span class="">return</span> </span>super</span><span class="">(</span>CrossValidation<span class="">,</span> self<span class="">)</span><span class="">.</span>_call<span class="">(</span>ds<span class="">)</span><span class=""></span>
<span class="">    498</span> <span class=""></span>
<span class="">    499</span> <span class=""></span>

<span class="">/home/orkney_01/tnickson/Programming/pyVirtualEnv/lib/python2.6/site-packages/mvpa2/measures/base.pyc</span> in <span class="">_call<span class="">(self, ds)</span>
<span class="">    324</span>                 </span>ca<span class="">.</span>datasets<span class="">.</span>append<span class="">(</span>sds<span class="">)</span><span class=""></span>
<span class="">    325</span>             <span class=""># run the beast</span><span class=""></span><span class=""></span>
<span class="">--> 326<span class="">             </span>result</span> <span class="">=</span> node<span class="">(</span>sds<span class="">)</span><span class=""></span>
<span class="">    327</span>             <span class=""># callback</span><span class=""></span><span class=""></span>
<span class="">    328</span>             <span class="">if</span> <span class="">not</span> self<span class="">.</span>_callback <span class="">is</span> None<span class="">:</span><span class=""></span>

<span class="">/home/orkney_01/tnickson/Programming/pyVirtualEnv/lib/python2.6/site-packages/mvpa2/base/learner.pyc</span> in <span class="">__call__<span class="">(self, ds)</span>
<span class="">    257</span>                                    <span class="">"used and auto training is disabled."</span><span class=""></span></span>
<span class="">    258</span>                                    % str(self))
<span class="">--> 259<span class="">         <span class="">return</span> </span>super</span><span class="">(</span>Learner<span class="">,</span> self<span class="">)</span><span class="">.</span>__call__<span class="">(</span>ds<span class="">)</span><span class=""></span>
<span class="">    260</span> <span class=""></span>
<span class="">    261</span> <span class=""></span>

<span class="">/home/orkney_01/tnickson/Programming/pyVirtualEnv/lib/python2.6/site-packages/mvpa2/base/node.pyc</span> in <span class="">__call__<span class="">(self, ds)</span>
<span class="">    120</span>         </span>self<span class="">.</span>_precall<span class="">(</span>ds<span class="">)</span><span class=""></span>
<span class="">    121</span>         result <span class="">=</span> self<span class="">.</span>_call<span class="">(</span>ds<span class="">)</span><span class=""></span>
<span class="">--> 122<span class="">         </span>result</span> <span class="">=</span> self<span class="">.</span>_postcall<span class="">(</span>ds<span class="">,</span> result<span class="">)</span><span class=""></span>
<span class="">    123</span> <span class=""></span>
<span class="">    124</span>         self<span class="">.</span>ca<span class="">.</span>calling_time <span class="">=</span> time<span class="">.</span>time<span class="">(</span><span class="">)</span> <span class="">-</span> t0 <span class=""># set the calling_time</span><span class=""></span>

<span class="">/home/orkney_01/tnickson/Programming/pyVirtualEnv/lib/python2.6/site-packages/mvpa2/measures/base.pyc</span> in <span class="">_postcall<span class="">(self, dataset, result)</span>
<span class="">    124</span>         <span class="">if</span> </span>self<span class="">.</span>__null_dist <span class="">is</span> None<span class="">:</span><span class=""></span>
<span class="">    125</span>             <span class=""># do base-class postcall and be done</span><span class=""></span><span class=""></span>
<span class="">--> 126<span class="">             </span>result</span> <span class="">=</span> super<span class="">(</span>Measure<span class="">,</span> self<span class="">)</span><span class="">.</span>_postcall<span class="">(</span>dataset<span class="">,</span> result<span class="">)</span><span class=""></span>
<span class="">    127</span>         <span class="">else</span><span class="">:</span><span class=""></span>
<span class="">    128</span>             <span class=""># don't do a full base-class postcall, only do the</span><span class=""></span><span class=""></span>

<span class="">/home/orkney_01/tnickson/Programming/pyVirtualEnv/lib/python2.6/site-packages/mvpa2/base/node.pyc</span> in <span class="">_postcall<span class="">(self, ds, result)</span>
<span class="">    164</span>         """
<span class="">    165</span>         </span>result <span class="">=</span> self<span class="">.</span>_pass_attr<span class="">(</span>ds<span class="">,</span> result<span class="">)</span><span class=""></span>
<span class="">--> 166<span class="">         </span>result</span> <span class="">=</span> self<span class="">.</span>_apply_postproc<span class="">(</span>ds<span class="">,</span> result<span class="">)</span><span class=""></span>
<span class="">    167</span>         <span class="">return</span> result<span class=""></span>
<span class="">    168</span> <span class=""></span>

<span class="">/home/orkney_01/tnickson/Programming/pyVirtualEnv/lib/python2.6/site-packages/mvpa2/base/node.pyc</span> in <span class="">_apply_postproc<span class="">(self, ds, result)</span>
<span class="">    238</span>                       "Applying post-processing node %s", (self.__postproc,))
<span class="">    239</span>             </span>self<span class="">.</span>ca<span class="">.</span>raw_results <span class="">=</span> result<span class=""></span>
<span class="">--> 240<span class="">             </span>result</span> <span class="">=</span> self<span class="">.</span>__postproc<span class="">(</span>result<span class="">)</span><span class=""></span>
<span class="">    241</span>         <span class="">return</span> result<span class=""></span>
<span class="">    242</span> <span class=""></span>

<span class="">/home/orkney_01/tnickson/Programming/pyVirtualEnv/lib/python2.6/site-packages/mvpa2/base/node.pyc</span> in <span class="">__call__<span class="">(self, ds)</span>
<span class="">    119</span> <span class=""></span></span>
<span class="">    120</span>         self<span class="">.</span>_precall<span class="">(</span>ds<span class="">)</span><span class=""></span>
<span class="">--> 121<span class="">         </span>result</span> <span class="">=</span> self<span class="">.</span>_call<span class="">(</span>ds<span class="">)</span><span class=""></span>
<span class="">    122</span>         result <span class="">=</span> self<span class="">.</span>_postcall<span class="">(</span>ds<span class="">,</span> result<span class="">)</span><span class=""></span>
<span class="">    123</span> <span class=""></span>

<span class="">/home/orkney_01/tnickson/Programming/pyVirtualEnv/lib/python2.6/site-packages/mvpa2/mappers/fx.pyc</span> in <span class="">_call<span class="">(self, ds)</span>
<span class="">    582</span>         <span class="">if</span> </span>np<span class="">.</span>isscalar<span class="">(</span>err<span class="">)</span><span class="">:</span><span class=""></span>
<span class="">    583</span>             err <span class="">=</span> np<span class="">.</span>array<span class="">(</span>err<span class="">,</span> ndmin<span class="">=</span><span class="">2</span><span class="">)</span><span class=""></span>
<span class="">--> 584<span class="">         <span class="">return</span> </span>Dataset</span><span class="">(</span>err<span class="">)</span><span class=""></span>

<span class="">/home/orkney_01/tnickson/Programming/pyVirtualEnv/lib/python2.6/site-packages/mvpa2/base/dataset.pyc</span> in <span class="">__init__<span class="">(self, samples, sa, fa, a)</span>
<span class="">    213</span>         <span class="">if</span> <span class="">not</span> </span>hasattr<span class="">(</span>samples<span class="">,</span> <span class="">'dtype'</span><span class="">)</span><span class="">:</span><span class=""></span>
<span class="">    214</span>             raise ValueError(
<span class="">--> 215<span class="">                 <span class="">"AttrDataset only supports dtypes as samples that have a "</span><span class=""></span></span>
</span><span class="">    216</span>                 <span class="">"`dtype` attribute that behaves similar to the one of an "</span><span class=""></span>
<span class="">    217</span>                 "array-like.")

<span class="">ValueError</span>: AttrDataset only supports dtypes as samples that have a `dtype` attribute that behaves similar to the one of an array-like.

</pre></div></div><div class="">Anybody know what this error is?<br><br>Thanks,<br><br>Tom<br></div><br></div>