Techn. Fakultät Website deprecated and outdated. Click here for the new site. FAU-Logo

PD Dr.-Ing. habil. Stefan Steidl

Alumnus of the Pattern Recognition Lab of the Friedrich-Alexander-Universität Erlangen-Nürnberg

Applying mathematically founded machine learning and pattern recognition techniques to fascinating interdisciplinary research areas: from medical image segmentation to computer-assisted diagnosis and therapy control for pathological speech to vocal emotion recognition for human-machine interaction.

Python Classification Toolbox

Keywords: machine learning, pattern recognition, classification, regression, clustering, density estimation, Python programming



Study popular machine learning algorithms and create your own implementations in Python for a deeper understanding of the algorithms!








Use the Python Classification Toolbox

  1. as a tool to study existing (and implemented) algorithms for classification, regression, clustering, and density estimation:

    • Use the graphical user interface to interactively create and move samples in a 2-dimensional feature space and study the resulting decision boundaries, regression lines, clustering results, and probability density functions.
    • Learn how the parameters of the algorithms influence the outcome.
    • Download the complete classification toolbox as a binary for Windows or Linux. This version includes a Python environment and all required runtime libraries, but it does not include the Python source code of the toolbox.

  2. as an object-oriented programming framework to implement your own machine learning algorithms:

    • For our pattern recognition courses, we will provide a basic framework including the code for the graphical user interface and the program calls of (some) standard scikit-learn algorithms. However, own implementations are missing as they are part of the class assignments.
    • In order to work with this version, you need a running Python 3.x installation and you need to install the Python packages NumPy, SciPy, PyQt4, scikit-learn, and cvxopt.

The Python Classification Toolbox is an open-source alternative to existing similar classification toolboxes for Matlab, focusing on visualization and own implementations of the algorithms. It is intended for 2-dimensional data and rather small data sets only. It is not meant to be a replacement for powerful machine learning toolboxes such as scikit-learn (Python) or WEKA (Java).


Copyright 2016 Stefan Steidl
Friedrich-Alexander-Universität Erlangen-Nürnberg
Lehrstuhl für Informatik 5 (Mustererkennung)
Martensstraße 3, 91058 Erlangen, GERMANY


The Python Classification Toolbox is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

The Python Classification Toolbox is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

See the GNU General Public License for more details.



VersionPlatformLast update
Binaries of the Python Classification Toolbox (complete toolbox without source code)

Windows (97 MB), Linux 91 MB)

June 13, 2016
Programming framework (source code, code of class assignments missing)all platformssee course Pattern Analysis


The Windows binary is 32-bit and should work on all Windows versions.
The Linux binary is tested on Ubuntu 14.04 LTS and Debian 8 (jessie). It crashes on openSUSE 13.2.


Use in your own courses:

If you are a lecturer and would like to use this toolbox in your own courses, please send me an e-mail using your official e-mail address of your university. We will be happy to share the complete Python code with you.