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:
- Introduction
- Full list of implemented algorithms
- Tutorial (pdf 830 KB)
- API
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 installIf 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-mdpOn Mac OS X if you use the MacPorts system, just type:
sudo port install py25-mdp-toolkitOn 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 thepy25-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).