Development Changelog
This changelog only lists rather macroscopic changes to PyMVPA. The full VCS
changelog for 2.x series of PyMVPA is available here:
In addition there is also a somewhat unconventional visual changelog.
‘Closes’ and ‘Fixes’ statement IDs refer to the Debian and Github bug
tracking systems accordingly and can be queried by visiting the URLs:
http://bugs.debian.org/<closed bug id>
https://github.com/PyMVPA/PyMVPA/issues/<fixed bug id>
Releases
2.3.1 (Tue, 20 May 2014)
Primarily a bugfix release pushed out to avoid mvpa2.suite meltdown
if new scipy 1.4.0 is used.
- API changes
- Deprecation: Parameter now uses constraints argument
of type Constraint instead of string
allowedtype. allowedtype argument will be removed completely in the
future 2.4 release.
- New changes
- dummies now provides utterly useful
RandomClassifier and others for code testing
which could also be used to verify absent double-dipping etc.
- Enhancements
- FxMapper now will provide consistent order
of groups of items. It also got a new argument order with available
value of ‘occurrence’ to that groups would get ordered by their occurance
in the original dataset.
- Fixes
- CorrStability should be able to
deal with other sample attributes (not only ‘targets’) and should divide
by variance correctly to provide correlation coefficient as output.
- robustify check scipy’s rdist which should avoid crash upon import of
mvpa2.suite because of stripped down scipy 1.4.0 API.
- various typos in docstrings (we do welcome contributions ;) ).
2.3.0 (Thu, 5 March 2014)
- Warning: Due to a significant number of new features and some internal
changes, loading of HDF5 files saved with previous versions might be
impaired.
- New functionality (>73 commits)
- Multi-threaded, surface-based searchlight queryengine
disc_surface_queryengine()
supporting as output space either surfaces
(SurfaceVerticesQueryEngine;
recommended) or volumes
(SurfaceVoxelsQueryEngine).
- FlatSurfacePlotter supporting
flattened cortical surfaces.
- I/O support for AFNI NIML (dset,
afni_niml_dset; annotation,
afni_niml_annot), AFNI 1D datasets
(afni_suma_1d), SUMA surface specification
(afni_suma_spec), Freesurfer ASCII surfaces
(surf_fs_asc), GIFTI surfaces
(surf_gifti through nibabel).
Input support for Caret
binary surfaces (surf_caret), EEGlab ASCII
(mvpa2.datasets.eeglab.eeglab_dataset()), AFNI NIML ( ROI,
afni_niml_roi).
- Experimental support for saving AttrDataset files directly to NIML format
using niml.
- Freesurfer/AFNI/SUMA preprocessing wrapper script
pymvpa2-prep-afni-surf for surface-based analyses.
- Winner-take-all measures winner.
- New command line interface that provides access to the most commonly
used functionality (dataset creation, pre-processing, cross-vlaidation,
searchlights and data export).
- StatsmodelsGLMMapper and
NiPyGLMMapper.
- Spectral filtering mapper IIRFilter.
- Enhancements (>130 commits)
- fmri_dataset() load support for AFNI NIFTI
volumes with time in the fifth dimension (data is automagically squeezed
to 4D).
- map2nifti() sets cal_ fields to correspond
to the range of the data.
- Many parts of the tutorial were reworked, set of examples expanded, and
also converted to IPython notebooks.
- eventrelated() extended to output GLM regression
fits as features from HRF models (relying on NiPy for GLM modeling).
- Class parameters now support programatic validation of values,
auto-generated documentation and improved error messages.
- More informative progress bar for long running processes, such as
searchlights.
- Replace all (broken) implementations for similarity structure analyses
with new measures for computing pairwise pattern distances, and their
consistency, or similarity to a target structure
(rsa).
- New examples to show integration with scikit-learn implementations of
classification, regression, and data transformation algorithm.
- Fixes (>88 commits)
- Makefile fetch-data retrieves the data correctly.
- HDF5 backend fixes to deal with nested/recursive structures and higher
tollerance in loading HDF5 from older version
2.2.0 (Sun, Sep 16 2012)
- New functionality (14 commits)
- New HDF5-based storage backend for
Searchlight the can significantly
speed up serialization of large result dataset in parallelized
computations.
- New fast searchlight
M1NNSearchlight (and
helper sphere_m1nnsearchlight()) to
run mean-1-nearest-neighbor searchlights.
- New mappers for adding an axis to a dataset
(AddAxisMapper), and for transposing a
dataset (TransposeMapper).
- Improved implementation of SciPy’s ttest_1samp()
with support for masked arrays and alternative hypotheses.
- Individual tutorial chapters are now available for download as IPython
notebooks. A rst2ipynb converter is available in tools/.
- New pymvpa2-tutorial command line utility to start a PyMVPA tutorial
session, either in a console IPython session, or using the IPython
notebook server.
- New wrapper functions for data generators/loaders in sklearn.datasets,
available in mvpa2.datasets.sources.sklearn_data.
- Enhancements (89 commits)
- Initial Python 3 compatibility (spear-headed by Tiziano Zito).
- Bayesian hypothesis testing with
BayesConfusionHypothesis now supports
literal hypotheses specification, custom hypotheses subsets, and
computing of posterior probabilities.
- Allow for accessing fitted distributions in
MCNullDist.
- Extensions and improvements to the tutorial chapter on statistical
evaluation.
- Expose distance function as a property dfx of
kNN.
- Extended Sifter with ability to discard
unbalanced partitions.
- h5save() now creates missing directories
automatically by default.
- Dedicated training for
Hyperalignment, and new
auto-train capability.
- BayesConfusionHypothesis now computes
optional posterior probabilities, and supports hypothesis definitions
using literal labels.
- API changes
- All command line tools have been renamed to have a consistent ‘pymvpa2-‘
prefix.
- Fixes (77 commits)
- HDF5 now properly stores object-type ndarray, where it the array shape
was unintentionally modified on-load before (Fixes #84).
- HDF5 can now reconstruct ‘builtin’ objects (Fixes #86).
- Check value data type and convert to float when collecting performance
statistics to avoid numerical problems.
- Do not fail in BayesConfusionHypothesis
when a dataset does not provide class labels.
2.1.0 (Fri, June 29 2012)
- Fixes
- mask2slice() failed to convert an array of
False values into slice(None, 0, None) (Fixes #56).
- A number of fixes to the HDF5 IO code that ignored parts of an object’s
state when custom __reduce__() implementations were used (Fixes #42),
and had problems storing metaclass types (Fixes #78).
- Proper single quotes in documentation code snippets within PDFs.
- Memory leak (model pointer) in LIBSVM bindings.
- Enhancements
- All searchlight implementations can now optionally store the IDs of all
features for each generated ROI (conditional attr. roi_feature_ids)
- Add scatter_neighborhoods() to aid
sparse sampling of spaces.
- Add ConfusionMatrixError to compute
confusion matrices with an error function interface (e.g. for
CrossValidation(errorfx=...)). This class existed for a long time, but
was hidden in the unit tests.
- Add Confusion to compute
confusion matrices with a Node interface (e.g. for
CrossValidation(postproc=...)). This is useful if confusion matrices
are necessary as an intermediate result and further processing with
other nodes is desired.
- New functionality
- Add BayesConfusionHypothesis to perform
Bayesian hypothesis testing of multi-class confusion statistics. This is
useful to assess the likelihood of a particular (or all possible)
grouping of classes being distinguishable.
- Add FxyMapper to perform arbitrary
computations involving two datasets.
- Add CombinedMapper to run a dataset through
a set of mappers and combine their outputs.
- Add UnivariateStatsModels a wrapper
for using models from the statsmodels package as a
FeaturewiseMeasure.
- Add dCOV and
dcorcoef() to quantify independence of
(multivariate) signals.
- API changes
- Deprecating GLM that is now implemented with UnivariateStatsModels.
This deprecated GLM class no longer supports the zstat calculation,
and none of its previous conditional attributes are available anymore.
2.0.1 (Tue, Mar 27 2012)
Primarily a bugfix release
- Fixes (21 BF commits)
- HDF5 storage – handle loading of objects with bound
builtin_function_or_method.
- Use system-wide autosummary/generate.py for sphinx >= 1.1.2
(Closes: #658593).
- ConditionalAttribute should not loose
value in deepcopy when default off (Fixes #63).
- Correct handling of scalar mean/std values for
ZScoreMapper.
- MRI data import via _img2data now works with unicode
filenames (Fixes #60).
- Should work with IPython >= 0.11 now (Fixes #59).
- Various small fixes to improve tests and functionality.
- Fix SMLR segfaults on Windows (Thanks cgohlke for the patch).
- Enhancements (29 ENH, OPT, and NF commits)
- FxMapper calls functions natively
(instead of a slow row/column at a time) if they carry axis
as the 2nd argument. Provides tremendous speed up for
mean_sample() etc.
- xrandom_unique_combinations()
generator for random unique combinations.
- dual_gaussian() made more robust by not
handling negative values for the standard deviations.
- dual_positive_gaussian().
- Expose “sensitivities” for PLR.
- NFoldPartitioner float
option for cvtype and intelligent behavior on ‘random’
limited by ‘count’ given a large number of folds.
- Add few additional learners from sklearn to the warehouses:
ExtraTrees, RandomForest, LassoLarsIC.
- __repr__ for :class:`Partitioner`s.
- Add new performance metric – F1 score – in the confusion matrix
summary stats.
- CachedQueryEngine does not rely now on id but on the
exact value of the query parameters (converted to hashable
types). Before it could behave incorrectly on rare occasions.
- API changes
2.0.0 (Mon, Dec 19 2011)
This release aggregates all the changes occurred between official
releases in 0.4 series and various snapshot releases (in 0.5 and 0.6
series). To get better overview of high level changes see
release notes for 0.5 and 0.6 as well as summaries of release candidates
below
- Fixes (23 BF commits)
- Significance level in the right tail was fixed to include the
value tested – otherwise resulted in optimistic bias (or
absurdly high significance in improbable case if all estimates
having the same value).
- Compatible with the upcoming IPython 0.12 and renamed sklearn
(Fixes #57).
- Do not double-train slave classifiers while assessing
sensitivities (Fixes #53).
- Enhancements (30 ENH + 3 NF commits)
- Resolving voting ties in kNN based on mean distance, and
randomly in SMLR.
- kNN‘s ca.estimates now contains dictionaries with
votes for each class.
- Consistent zscoring in Hyperalignment.
2.0.0~rc5 (Wed, Oct 19 2011)
- Major: to allow easy co-existence of stable PyMVPA 0.4.x, 0.6
development mvpa module was renamed into mod:mvpa2.
- Fixes
- Compatible with the new Shogun 1.x series.
- Compatible with the new h5py 2.x series.
- mvpa-prep-fmri – various compatibility fixes and smoke testing.
- Deepcopying SummaryStatistics during __add__.
- Enhancements
- Tutorial uses mvpa2.tutorial_suite now.
- Better suppression of R warnings when needed.
- Internal attributes of many classes were exposed as properties.
- More unification of __repr__ for many classes.
0.6.0~rc4 (Wed, Jun 14 2011)
- Fixes
- Finished transition to nibabel conventions in plot_lightbox.
- Addressed matplotlib.hist API change.
- Various adjustments in the tests batteries (nibabel 1.1.0
compatibility, etc)
- New functionality
- Explicit new argument flatten to from_wizard – default
behavior changed if mapper was provided as well
- Enhancements
- Elaborated __str__ and __repr__ for some Classifiers and
Measures
0.6.0~rc3 (Thu, Apr 12 2011)
- Fixes
- Bugfixes regarding the interaction of FlattenMapper and
BoxcarMapper that affected event-related analyses.
- Splitter now handles attribute value None for splitting
properly.
- GNBSearchlight handling of roi_ids.
- More robust detection of mod:scikits.learn and nipy
externals.
- New functionality
- Added a Repeater node to yield a dataset multiple times and
Sifter node to exclude some datasets. Consequently, the
“nosplitting” mode of Splitter got removed at the same time.
- tools/niils – little tool to list details
(dimensionality, scaling, etc) of the files in nibabel-supported formats.
- Enhancements
- Numerous documentation fixes.
- Various improvements and increased flexibility of null distribution
estimation of Measures.
- All attribute are now reported in sorted order when printing a dataset.
- fmri_dataset now also stores the input image type.
- Crossvalidation can now take a custom Splitter instance. Moreover, the
default splitter of CrossValidation is more robust in terms of number and
type of created splits for common usage patterns (i.e. together with
partitioners).
- CrossValidation takes any custom Node as errorfx argument.
- ConfusionMatrix can now be used as an errorfx in Crossvalidation.
- LOE(ACC): Linear Order Effect in ACC was added to
ConfusionMatrix to detect trends in performances across
splits.
- A Nodes postproc is now accessible as a property.
- RepeatedMeasure has a new ‘concat_as’ argument that allows results to be
concatenated along the feature axis. The default behavior, stacking as
multiple samples, is unchanged.
- Searchlight now has the ability to mark the center/seed of an ROI in
with a feature attribute in the generated datasets.
- debug takes args parameter for delayed string
comprehensions. It should reduce run-time impact of debug()
calls in regular, non -O mode of Python operation.
- String summaries and representations (provided by __str__
and __repr__) were made more exhaustive and more coherent.
Additional properties to access initial constructor arguments
were added to variety of classes.
- Internal changes
- New debug target STDOUT to allow attaching metrics
(e.g. traceback, timestamps) to regular output printed to stdout
- New set of decorators to help with unittests
- @nodebug to disable specific debug targets for the duration
of the test.
- @reseed_rng to guarantee consistent random data given
initial seeding.
- @with_tempfile to provide a tempfile name which would get
removed upon completion (test success or failure)
- Dropping daily testing of maint/0.5 branch – RIP.
- Collections were provided with adequate (deep|)copy.
And Dataset was refactored to use Collections copy
method.
- update-* Makefile rules automatically should fast-forward
corresponding website-updates branch
- MVPA_TESTS_VERBOSITY controls also numpy warnings now.
- Dataset.__array__ provides original array instead of copy
(unless dtype is provided)
Also adapts changes from 0.4.6 and 0.4.7 (see corresponding
changelogs).
0.6.0~rc2 (Thu, Mar 3 2011)
- Various fixes in the mvpa.atlas module.
0.6.0~rc1 (Thu, Feb 24 2011)
0.5.0 (sometime in March 2010)
This is a special release, because it has never seen the general public.
A summary of fundamental changes introduced in this development version
can be seen in the release notes.
Most notably, this version was to first to come with a comprehensive two-day
workshop/tutorial.
0.4.7 (Tue, Mar 07 2011) (Total: 12 commits)
A bugfix release
- Fixed
- Addressed the issue with input NIfTI files having scl_ fields
set: it could result in incorrect analyses and
map2nifti-produced NIfTI files. Now input files account for
scaling/offset if scl_ fields direct to do so. Moreover upon
map2nifti, those fields get reset.
- doc/examples/searchlight_minimal.py - best error is the
minimal one
- Enhancements
- GNB can now tolerate training datasets
with a single label
- TreeClassifier can have trailing nodes
with no classifier assigned
0.4.6 (Tue, Feb 01 2011) (Total: 20 commits)
A bugfix release
- Fixed (few BF commits):
- Compatibility with numpy 1.5.1 (histogram) and scipy 0.8.0
(workaround for a regression in legendre)
- Compatibility with libsvm 3.0
- PLR robustification
- Enhancements
- Enforce suppression of numpy warnings while running unittests.
Also setting verbosity >= 3 enables all warnings (Python, NumPy,
and PyMVPA)
- doc/examples/nested_cv.py example (adopted from 0.5)
- Introduced base class LearnerError for
classifiers’ exceptions (adopted from 0.5)
- Adjusted example data to live upto nibabel’s warranty of NIfTI
standard-compliance
- More robust operation of MC iterations – skip iterations where
classifier experienced difficulties and raise an exception
(e.g. due to degenerate data)
0.4.5 (Fri, Oct 01 2010) (Total: 27 commits)
A bugfix release
- Fixed (13 BF commits):
- Compatible with LIBSVM >= 2.91 (Closes: #583018)
- No string exceptions raised (Python 2.6 compatibility)
- Setting of shrinking parameter in sg interface
- Deducing number of SVs for SVR (LIBSVM)
- Correction of significance in the tails of non-parametric
tests
- Miscellaneous:
0.4.4 (Mon, Feb 2 2010) (Total: 144 commits)
Primarily a bugfix release, probably the last in 0.4 series since
development for 0.5 release is leaping forward.
- New functionality (19 NF commits):
- GNB implements Gaussian Naïve Bayes
Classifier.
- read_fsl_design() to read FSL FEAT design.fsf
files (Contributed by Russell A. Poldrack).
- SequenceStats to provide basic
statistics on labels sequence (counter-balancing,
autocorrelation).
- New exceptions DegenerateInputError and
FailedToTrainError to be thrown by
classifiers primarily during training/testing.
- Debug target STATMC to report on progress of Monte-Carlo
sampling (during permutation testing).
- Refactored (15 RF commits):
- To get users prepared to 0.5 release, internally and in some
examples/documentation, access to states and
parameters is done via corresponding collections, not from the
top level object (e.g. clf.states.predictions instead of
soon-to-be-deprecated clf.predictions). That should lead also
to improved performance.
- Adopted copy.py from python2.6 (support Ellipsis as well).
- Fixed (38 BF commits):
- GLM output does not depend on the enabled states any more.
- Variety of docstrings fixed and/or improved.
- Do not derive NaN scaling for SVM’s C whenever data is
degenerate (lead to never finishing SVM training).
- sg :
- KRR is optional now – avoids crashing if KRR is not available.
- tolerance to absent set_precompute_matrix in svmlight in
recent shogun versions.
- support for recent (present in 0.9.1) API change in exposing
debug levels.
- Python 2.4 compatibility issues: kNN and
IFS
0.4.3 (Sat, 5 Sep 2009) (Total: 165 commits)
- Online documentation editor is no longer available due to low
demand – please submit changes via email.
- Performance (Contributed by Valentin Haenel) (3 OPT commits):
- Further optimized LIBSVM bindings.
- Copy-if-sorted in
selectFeatures.
- New functionality (25 NF commits):
- ProcrusteanMapper with
orthogonal and oblique transformations.
- Ability to generate simple reports using reportlab.
See/run examples/match_distribution.py for example.
- TreeClassifier – construct simple
hierarchies of classifiers.
- wtf() to report information about the
system/PyMVPA to be included in the bug reports.
- Parameter ‘reverse’ to swap training/testing splits in
Splitter .
- Example code for the analysis of event-related dataset using
ERNiftiDataset.
- toEvents() to create
lists of Event.
- mvpa-prep-fmri was extended with plotting of motion
correction parameters.
- ColumnData can be explicitly told
either file contains a header.
- In XMLBasedAtlas
(e.g. fsl atlases) it is now possible to
provide custom ‘image_file’ to get maps or
indexes for the areas given an atlas’s volume registered into
subject space.
- Updated included LIBSVM version to 2.89 and provided support for
its “silencing”.
- Refactored (27 RF commits):
- Dataset’s copy() with
deep=False allows for shallow copying the dataset.
- FeatureSelectionClassifier s in
warehouse not to reuse the same classifiers,
but to use clones.
- Fixed (70 BF commits):
- OneWayAnova: previously degrees of
freedom were not considered while computing F-scores.
- Majority voting strategy in kNN: it was
not working.
- Various fixes to ensure cross-platform building (numpy header
locations, etc).
- Stability fixes in ConfusionMatrix.
- idsonboundaries(): samples
at the end of the sequence were not handled properly.
- Proper “untraining” of
FeatureSelectionClassifier s
classifiers which use sensitivities: it could lead to various
unpleasant side-effects if the same slave classifier was used
simultaneously by multiple MetaClassifiers (like
TreeClassifier).
- Documentation (25 DOC commits): citations, spelling corrections,
etc.
0.4.2 (Mon, 25 May 2009)
- New correlation stability measure
(CorrStability).
- New elastic net classifier (ENET).
- New GLM-Net regression/classifier (GLMNET).
- New measure CompoundOneWayAnova.
- New measure DSMDatasetMeasure.
- New meta-measure
TScoredFeaturewiseMeasure.
- New basic GLM implementation.
- New examples for Gaussian process regression.
- New example showing a searchlight analysis employing a dissimilarity
matrix based measure.
- New ZScoreMapper.
- New import helper for FSL design matrices
(FslGLMDesign).
- New implementation of a mapper using a self-organizing map
(SimpleSOMMapper) and a corresponding example.
- Matplotlib backend is now configurable via
MVPA_MATPLOTLIB_BACKEND.
- PyMVPA version is now avialable from mvpa.__version__.
- Renamed mvpa.misc.plot.errLinePLot to
plotErrLine() for consistency.
- Fixed NFoldSplitter to support N-3 and
larger splits.
- Improved speed of LIBSVM backend. Thanks to Valentin Haenel and Tiziano
Zito.
- Updated included LIBSVM version to 2.89.
- Adjust LIBSVM Python interface for recent NumPy API and latest LIBSVM
release 2.89.
- Refactored examples parser into a standalone tool to turn PyMVPA examples
into restructured text sources.
0.4.1 (Sat, 24 Jan 2009)
- Unit tests and example data are now also installed. In conjunction with
mvpa.test(), this allow to easily run unittests from within Python.
- NiftiDataset capable to handle files
with less than 4 dimensions, which can, optionally, be provided as
a list of filenames or NiftiImage objects. That
makes it easy to load data from a sequence of files.
- Changes (code refactorings) which might impact any user who
imports from suite:
- Pre-populated warehouses of classifiers and regressions are
renamed from clfs and regrs into
clfswh and
regrswh respectively.
- Hamster is not derived from
dict any longer – just from a basic object class.
API includes methods ‘dump’, ‘asdict’ and a property ‘registered’.
- Changes (code refactorings) which should not impact any user who
imports from suite:
- Meta classifiers definitions moved from base into
meta.
- Splitters definitions moved from splitter into
splitters
0.4.0 (Sat, 15 Nov 2008)
- Add Hamster, as a simple facility to easily
store any serializable objects in a compressed file and later on resurrect
all of them with a single line of code.
- SVM backend is now configurable via MVPA_SVM_BACKEND (libsvm or
shogun).
- Non-deterministic tests in the unittest battery are now configurable via
MVPA_TESTS_LABILE.
- New helper to determine and plot the best matching distribution(s) for
the data (matchDistribution, plotDistributionMatches). It is WiP
thus API can change in the upcoming release.
- Simplifies API of mappers.
- Splitters can now limit the number of splits automatically.
- New CombinedMapper to map between multiple,
independent dataspace and a common feature space.
- New ChainMapper to create chains of mappers
of abitrary lenght (e.g. to build preprocessing pipelines).
- New EventDataset to rapidly extract
boxcar-shaped samples from data array using a simple list of
Event definitions.
- Removed obsolete MetricMapper class. Mapper
itself provides the facilities for dealing with metrics.
- BoxcarMapper can now handle data with more
than four dimensions/axis and also performs reverse mapping of single
boxcar samples.
- FslEV3 can now convert EV3 files into
a list of Event instances.
- Results of tests for external dependencies are now stored in PyMVPA’s
config manager (mvpa.cfg) and can be stored to a file (not done
automatically at the moment). This will significantly decrease the time
needed to import the mvpa module, as it prevents the repeated and lengthy
tests for working externals.
- Initial support for ROC computing and AUC as an accuracy measure.
- Weights of LARS are now available via LARSWeights.
- Added an initial list of MVPA-related references to the manual, tagged with
keywords and comments as well is DOI or similar URL reference to the
original document.
- Added initial glossary to the manual.
- New ‘Module reference’, as a middle-ground between manual and API
reference.
- New manual section about meta-classifiers (contributed by James M.
Hughes).
- New minimal example for a ‘getting started’ section in the manual.
- Former MVPA_QUICKTEST was renamed to MVPA_TESTS_QUICK.
- Update installation instructions for RPM-based distributions to make use
of the OpenSUSE Build Service.
- Updated install instructions for several RPM-based GNU/Linux
distributions.
- Switch from distutils to numpy.distutils (no change in dependencies).
- Depend on PyNIfTI >= 0.20081017.1 and gain a smaller memory footprint when
accessing NIfTI files via all datasets with NIfTI support.
- Added workaround to make PyMVPA work with older Shogun releases and those
from 0.6.4 on, which introduced backward-incompatible API changes.
0.3.1 (Sun, 14 Sep 2008)
- New manual section about feature selection with a focus on RFE.
Contributed by James M. Hughes.
- New dataset type ChannelDataset for data
structured in channels. Might be useful for data modalities like EEG and
MEG. This dataset includes support for common preprocessing steps like
resampling and baseline signal substraction.
- Plotting of topographies on heads. Thanks to Ingo Fründ for contributing
this code. Additionally, a new example shows how to do such plots.
- New general purpose function for generating barplots and candlestick plots
with error bars (plotBars()).
- Dataset supports mapping of string labels onto numerical labels, removing
the need to perform this mapping manually in user code. ‘clfs_examples.py’
is adjusted accordingly to demonstrate the new feature.
- New mvpa.clfs.base.Classifier.summary() method to dump classifier
settings.
- Improved and more flexible plotERPs().
- New IterativeRelief sensitivity analyzer.
- Added visualization of confusion matrices via
mvpa.clfs.transerror.ConfusionMatrix.plot() inspired by Ingo Fründ.
- The PyMVPA version is now globally available in mvpa.pymvpa_version.
- BugFix: TuebingenMEG reader failed in some cases.
- Several improvements (docs and implementation) for building PyMVPA on
MacOS X.
- New convenience accessor methods (select(),
where() and
__getitem__()) for
:class`~mvpa.datasets.base.Dataset`.
- New mvpa.seed() function to configure the random number generators
from user code.
- Added reader for a MEG sensor locations format
(TuebingenMEGSensorLocations).
- Initial model selection support for GRP (using openopt).
- And tons of minor bugfixes, additional tests and improved documentation.
0.3.0 (Mon, 18 Aug 2008)
- Import of binary EEP files (used by EEProbe) and EEPDataset class.
- Initial version of a meta dataset class (MetaDataset). This is a container
for multiple datasets, which behaves like a dataset itself.
- Regression performance is summarized now within RegressionStatistics.
- Error functions: CorrErrorPFx, RelativeRMSErrorFx.
- Measures: CorrCoef.
- Data generators: chirp, wr1996
- Few more examples: curvefitting, kerneldemo, smellit, projections
- Updated kNN classifier. kNN is now able to use custom distance function
to determine that nearest neighbors. It also (re)gained the ability to do
simple majority or weighted voting.
- Some initial convenience functions for plotting typical results and data
exploration.
- Unified configuration handling with support for user-specific and
analysis-specific config files, as well as the ability to override all
config settings via environment variables. The configuration handling is
used for PyMVPA internal settings, but can also be easily used for
custom (user-)settings.
- Improved modularity, e.g. SciPy is not required anymore, but still very
useful.
- Initial implementations of ICA and PCA mapper using functionality provided
by MDP. These mappers are more or less untested and should be used with
great care.
- Further improved docstrings of some classes, but still a long way to go.
- New ‘boxcar’ mapper, which is the similar to the already present
transformWithBoxCar() function, but implemented as a mapper.
- New SampleGroupMapper that can be used for e.g. block averaging of
samples. See new FAQ item.
- Stripped redundant suffixes from module names, e.g.
mvpa.datasets.niftidataset -> mvpa.datasets.nifti
- mvpa.misc.cmdline variables opt* and opts* were groupped within
opt and optss class instances. Also names of the options were
changed to match ‘dest’ of the options. Use tools/refactor.py to
quickly fix your custom code.
- Change all references to PyMVPA website to www.pymvpa.org.
- Make website stylesheet compatible with sphinx 0.4.
- Several minor improvements of the compatibility with MacOS.
- Extended FAQ section of the manual.
- Bugfix: double_gamma_hrf() ignoring K2 argument.
0.2.2 (Tue, 17 Jun 2008)
- Extended build instructions: Added section on OpenSUSE.
- Replaced ugly PYMVPA_LIBSVM environment variable to trigger compiling the
LIBSVM wrapper with a proper ‘–with-libsvm’ switch in setup.py.
Additionally, setup.py now detects if included LIBSVM has been built and
enables LIBSVM wrapper automatically in this case.
- Added proper Makefiles for LIBSVM copy, with configurable compiler flags.
- Added ‘setup.cfg’ to remove the need to manually specify swig-opts
(Windows specific configuration is in ‘setup.cfg.win’).
0.2.1 (Sun, 15 Jun 2008)
- Several improvements to make building PyMVPA on Windows systems easy
(e.g. added dedicated Makefile.win to build a binary installer).
- Improved and extended documentation for building and installing PyMVPA.
- Include a minimal copy of the required (patched) LIBSVM library (currently
version 2.85.0) for convenience. This copy is automatically compiled and
used for the LIBSVM wrapper when PyMVPA built using the Make approach.
0.2.0 (Wed, 29 May 2008)
- New Splitter class (HalfSplitter) to split into first and second half.
- New Splitter class (CustomSplitter) to allow for splits with an arbitrary
number of datasets per split and the ability to specify the association
of samples with any of those datasets (not just the validation set).
- New sparse multinomial logistic regression (SMLR) classifier and
associated sensitivity analyzer.
- New least angle regression classifier (LARS).
- New Gaussian process regression classifier (GPR).
- Initial documentation on extending PyMVPA.
- Switch to Sphinx for documentation handling.
- New example comparing the performance of all classifiers on some
artificial datasets.
- New data mapper performing singular value decomposition (SVDMapper) and an
example showing its usage.
- More sophisticated data preprocessing: removal of non-linear trends and
other arbitrary confounding regressors.
- New Harvester class to feed data from arbitrary generators into multiple
objects and store results of returned values and arbitrary properties.
- Added documentation about how to build patched libsvm version with sane
debug output.
- libsvm bindings are not build by default anymore. Instructions on how to
reenable them are available in the manual.
- New wrapper from SVM implementation of the Shogun toolbox.
- Important bugfix in RFE, which reported incorrect feature ids in some
cases.
- Added ability to compute stats/probabilities for all measures and transfer
errors.
0.1.0 (Wed, 20 Feb 2008)