Release Notes – PyMVPA 0.6¶
All mappers, classifiers, regressions, and measures are now implemented as
Node
s that can be called with aDataset
and return a processed dataset. All nodes provide agenerate()
method that causes the node to yield the result. In addition, special nodes added implementing more complex generators yielding multiple results (e.g. resampling, permuting, or splitting nodes).Splitters as such do not exist any longer. They have been replaced by a number of generators that offer the same functionality, but can be combined in more flexible way.
Splitter
now is just a generator which implements only the actual splitting of theDataset
into a set of disjoint pieces (e.g. one for training and one for testing).There is no
TransferError
anymore. Any classifier (or measure) can evaluate error functions using a post-processing node, e.g.:SVM(..., postproc=BinaryFxNode(mean_mismatch_error, 'targets')
This is possible, because by default classifiers simply return a dataset with all predictions as samples and assign the actual targets as a samples attribute. The post-processing node can subsequently compute arbitrary error values (total, or per-unique sample id, ...).
Feature selections are no longer a separate entity, but are implemented as training procedures for
SliceMapper
. The most important effect is thatSliceMapper
tries to perform slicing without copying whenever possible. Note that any feature selection procedure has to be trained on a dataset before it can be used – otherwise it won’t do the right thing(TM).There is no dependency on PyNIfTI for any functionality anymore. It has been replaced by NiBabel (http://nipy.org/nibabel).