MDP 3.6 released! Some of the most compelling new features of MDP 3.6 are

  • A new online mode to enable use of MDP in reinforcement learning using OnlineNode, OnlineFlow and other new nodes. This notably includes incremental Slow Feature Analysis in IncSFANode.
  • SFA-based supervised learning, specifically graph-based SFA nodes GSFANode as well as iGSFANode, and hierarchical GSFA (HGSFA).
  • New solvers in SFA-node that are robust against rank deficiencies in the covariance matrix. This cures the common issue SymeigException (‘Covariance matrices may be singular’).
  • A new family of expansion nodes, including Legendre, Hermite and Chebyshev polynomials allows for numerically stable data expansion to high degrees.
  • VartimeSFANode supports SFA on data with non-constant time increments. This node is a pilot effort to support non-constant time increments in various mdp nodes.

MDP 3.6 supports the newest versions of Python, NumPy, SciPy and scikit-learn. More specifically, it supports Python 3.5-3.8 and 2.7. It is the last release that officially supports Python 2.7.

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 signal processing methods (Principal Component Analysis, Independent Component Analysis, Slow Feature Analysis), manifold learning methods ([Hessian] Locally Linear Embedding), several classifiers, probabilistic methods (Factor Analysis, RBM), data pre-processing methods, and many others.

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') 

To learn more about MDP, read through the Documentation.