yaplf is a modular, extensible machine learning framework written in python, including different models and learning algorithms for classification; currently, the framework supports:
All models and algorithms are accessed in a consistent way, so that it is easy to compare the performances of different learning approaches on a same data set.
The system is opened to the addition of new models and algorithms for classification, as well as to other machine learning techniques such as regression or clustering. Moreover, it provides model-independent support for k-fold cross validation, extensive support for generating 2D and 3D images exploiting different graphic libraries (matplotlib and sage are currently supported and automatically detected), and basic support for multi-threading.
yaplf can be used out of the box both within a plain python environment or coupled with the open source sage system, either in form of extended python scripts or within a web-based interactive notebook.
Finally, the system includes the support for graphic observation of iterative learning algorithms, including:
These features make yaplf an interesting tool also for teaching machine learning.
Current release is yaplf-0.7 (April 2010)
yaplf requires:
Installation requires the following steps, assuming a bash is used in a Unix/Linux/Mac OS X standard installation:
$ gunzip yaplf-0.7.tar.gz
$ tar -xf yaplf-0.7.tar
yaplf-0.7 directory to an appropriate place in the file system, say /path/to/yaplf;PYTHONPATH environment variable;
export PYTHONPATH=$PYTHONPATH:/path/to/yaplf
SAGE_PATH environment variable
export SAGE_PATH=$SAGE_PATH:/path/to/yaplf
Of course instructions 3-4 affect exclusively the running bash instance, so it is a better choice to include them in .bash_profile or in an equivalent location.
The distribution is actually created through distutils, so step 2 can be done following the usual python pattern:
$ python setup.py install
executing then the following steps with reference to the standard python installation location of the used system.
yaplf source is fully documented through docstrings, thus the documentation is directly accessible within a python shell or a sage notebook through standard python methodology.
This section contains additional documentation focused on special topics. Besides a basic yaplf tutorial, the documentation consists of several yaplf recipes:
yaplf is currently maintained by Dario Malchiodi.