News
26.07.2009:MDP presented at the EuroScipy Conference in Leipzig, DE.
22.07.2009:MDP presented at the Python in Neuroscience Workshop to be held at the CNS 2009 Conference in Berlin.
30.06.2009:MDP 2.5 released! (changes since last release): many bug fixes and several new nodes!
30.06.2009:MDP presented at the Europython Conference in Birmingham, UK.
08.01.2009:MDP paper published in Frontiers of Neuroinformatics
12.12.2008:MDP presented at the NIPS 2008 Workshop on Machine Learning Open Source Software.

Modular toolkit for Data Processing (MDP) is a Python data processing framework.

From the user's perspective, MDP is a collection of supervised and unsupervised learning algorithms and other data processing units that can be combined into data processing sequences and more complex feed-forward network architectures.

From the scientific developer's perspective, MDP is a modular framework, which can easily be expanded. The implementation of new algorithms is easy and intuitive. The new implemented units are then automatically integrated with the rest of the library.

The base of available algorithms is steadily increasing and includes, to name but the most common, Principal Component Analysis (PCA and NIPALS), several Independent Component Analysis algorithms (CuBICA, FastICA, TDSEP, JADE, and XSFA), Slow Feature Analysis, Gaussian Classifiers, Restricted Boltzmann Machine, and Locally Linear Embedding.

To learn more about MDP:

Using MDP is as easy as:

>>> import mdp
>>> # perform pca on some data x
...
>>> y = mdp.pca(x) 
>>> # perform ica on some data x using single precision
...
>>> y = mdp.fastica(x, dtype='float32') 

Installation

Requirements:
Python ≥ 2.4, and NumPy ≥ 1.1 or Scipy ≥ 0.5.2. If you have Scipy ≥ 0.7 the symeig package is not needed anymore for additional speed.

Download:
You can download the last MDP release here.
If you want to live on the bleeding edge, check out the MDP subversion repository: you can browse the repository or just check out the trunk with:

svn co https://mdp-toolkit.svn.sourceforge.net/svnroot/mdp-toolkit/mdp/trunk/mdp mdp

Thanks to Yaroslav Halchenko, users of Debian, Ubuntu and derivatives can install the python-mdp package.
Thanks to Maximilian Nickel, Mac OS X users using MacPorts can install the py25-mdp-toolkit package.

Installation:
Unpack the archive file, enter the project directory and type:

python setup.py install
If you want to use MDP without installing it on the system Python path:
python setup.py install --prefix=/some_dir_in_PYTHONPATH/
On Debian you can just type:
aptitude update
aptitude install python-mdp
On Mac OS X if you use the MacPorts system, just type:
sudo port install py25-mdp-toolkit
On Windows, the installation of the binary distribution is as easy as executing the installer and following the instructions.

Testing:
If you have successfully installed MDP, you can test your installation in a Python shell as follows:

>>> import mdp
>>> mdp.test()

Demos:
All the code examples shown in the MDP tutorial can be found in the package installation path in the subdirectory demo.


Maintainers

MDP has been originally written by Pietro Berkes and Tiziano Zito at the Institute for Theoretical Biology of the Humboldt University, Berlin in 2003.

Current maintainers are:

Yaroslav Halchenko maintains the python-mdp Debian package, Maximilian Nickel maintains the py25-mdp-toolkit MacPorts package.

For comments, patches, feature requests, support requests, and bug reports (if any) you can use the users mailing list.

If you want to contribute some code or a new algorithm, please do not hesitate to submit it!


How to cite MDP

If you use MDP for scientific purposes, you may want to cite it. This is the official way to do it:

Zito, T., Wilbert, N., Wiskott, L., Berkes, P. (2009)
Modular toolkit for Data Processing (MDP): a Python data processing frame work
Front. Neuroinform. (2008) 2:8. Homepage: http://mdp-toolkit.sourceforge.net

You can get the paper here.

If your paper gets published, plase send us a reference (and even a copy if you don't mind).