Project details for MLDemos

Screenshot MLDemos 0.1.4

by basilio - January 5, 2011, 13:46:01 CET [ Project Homepage BibTeX Download ]

view (7 today), download ( 0 today ), 1 comment, 2 subscriptions


MLDemos puts together a number of open-source libraries for machine learning in a single framework that allows to draw data, experiment and visualize the effects of training and model parameters.

The accent is put on the visualization and its main purpose is education and understanding of several classification, clustering and regression algorithms. Different visualization modes allow to grasp different aspects of the results obtained by the algorithms.

Attached are the Windows binaries, please refer to the website for the mac version and the source code.

NOTE: Kernel K-Means was reported to not behave as expected in the linux version.

Changes to previous version:

Added algorithm information on the Statistics window to display data such as the number of support vectors and basis functions. Added two new weak learners to the Boosting classification: Random Rectangles and Random Circles. Fixed a crash when Cross-Validation was run on an untrained classifier. Minor bugs fixes.

BibTeX Entry: Download
URL: Project Homepage
Supported Operating Systems: Linux, Macosx, Windows
Data Formats: Plain Ascii
Tags: Classification, Clustering, Regression, Support Vector Machines, Visualization, Machine Learning, Gaussian Mixture Models, Pegasos, Gaussian Processes, Multi Layer Perceptron, Relevant Vector Machines
Archive: download here

Other available revisons

Version Changelog Date

New Visualization and Dataset Features Added 3D visualization of samples and classification, regression and maximization results Added Visualization panel with individual plots, correlations, density, etc. Added Editing tools to drag/magnet data, change class, increase or decrease dimensions of the dataset Added categorical dimensions (indexed dimensions with non-numerical values) Added Dataset Editing panel to swap, delete and rename dimensions, classes or categorical values Several bug-fixes for display, import/export of data, classification performance

New Algorithms and methodologies Added Projections to pre-process data (which can then be classified/regressed/clustered), with LDA, PCA, KernelPCA, ICA, CCA Added Grid-Search panel for batch-testing ranges of values for up to two parameters at a time Added One-vs-All multi-class classification for non-multi-class algorithms Trained models can now be kept and tested on new data (training on one dataset, testing on another) Added a dataset generator panel for standard toy datasets (e.g. swissroll, checkerboard,...) Added a number of clustering, regression and classification algorithms (FLAME, DBSCAN, LOWESS, CCA, KMEANS++, GP Classification, Random Forests) Added Save/Load Model option for GMMs and SVMs Added Growing Hierarchical Self Organizing Maps (original code by Michael Dittenbach) Added Automatic Relevance Determination for SVM with RBF kernel (Thanks to Ashwini Shukla!)

March 2, 2013, 16:06:13

Pre-Summer update!

  • Added the Comparison dialog. For each family of problems, it is possible to compare multiple algorithms or multiple parameters for the same algorithms on the data currently displayed in the canvas. Clicking the Compare button on the algorithm options panel adds the current parameters to the comparison battery. The Comparison dialog then allows to decide the number of cross-validation runs, ratio of training/testing samples and the visualization type (histograms or boxplots).

  • Loading and running algorithms now works on multi-dimensional data (although only the first two dimensions are displayed)

  • Added framework for multi-class classification (only implemented it for GMM and KNN for now)

  • Added a projection display for Linear Projection methods, that now use naive bayes after projections. A "Set Projection/Set Source" button now allows to swap the samples in the canvas with the projected samples, and vice versa.

  • Added Particle Swarm Optimization, Genetic Algorithms, Gradient Descent and Dan Grollman's Donut method for reward maximization.

  • Added drag and drop buttons on the Maximization panel for painting gaussians and gradients on the reward map, or to drop standard benchmark problems for maximisation.

  • Added Icons and Toolbar options (big/small/none)

June 25, 2011, 18:10:42
  • Added a 'help' page, displaying specific implementation information on the algorithms selected in the info/statistics dialog, which has been renamed. It now provides information on each algorithm when selected.
  • Added Reinforcement Learning (Reward Maximization) algorithms to the architecture. It is now possible to draw a reward function (using the +/- tool in the toolbar) and have the system display the maximization process.
  • Added Random Search, Random Walk, PoWER, Genetic Algorithms and Particle Filters for reward maximization.
  • Many structural changes on the source code (extracted common libraries to avoid redundant compiling). OpenCV is no longer needed by the main project but only by two plugins (PCAFaces and LinearMethods) which now link to OpenCV2.2.
  • Bug fixes and small changes in the interface dynamics.
  • The linux version is now packaged as a standalone program that works on all 2.6.X distributions
June 4, 2011, 20:46:46
  • Added panning and zooming capability, the system is no longer limited to a 0-1x0-1 subspace.
  • Added display of a Grid
  • Added obstacle avoidance for dynamical systems (currently one method implemented, paper in publication), found on the dynamical systems option
  • Cosmetic changes on the option panels (unified the different algorithm families)
  • Cosmetic changes on the source code (unified program and plugins projects into a single project)
  • Some bug fixes here and there
  • Optimized computations for the display of density maps, should be a tad faster on most machines now
March 24, 2011, 16:08:51
  • Introduced Plugins: Algorithms and InputOutput
  • Algorithms are now accessed through 4 different interfaces (Classifiers, Clusterers, Regressors, Dynamical Systems) in the form of plugins. The software loads all the .dll / .so / .dylib found in the 'plugins' folder at runtime, and populates the graphical interface with their respective option panels. This makes it quite easy to implement additional algorithms, look at the examples provided in the sources for a template. It is possible to combine multiple algorithms into a collection of plugins, (e.g. to allow for a single algorithm to propose regression, classification and clustering).
  • InputOutput plugins allow to send data to the software (replacing the current dataset) as well as sending requests for classification, clustering, regression or dynamical systems responses. The plugin then fetches the results when they are obtained. The algorithm is trained using the parameters currently selected in the graphical interface. The RandomEmitter plugin shows an extremely basic implementation as a template.
  • Added Kernel PCA (under the Classification tab for the time being, will probably move to somewhere else at some point)
  • Added PCAFaces, an InputOutput plugin that uses a webcam (or images) to collect image samples and performs PCA to extract 2 principal components
  • Fixed and improved the background rendering of classification and dynamical system maps
  • Fixed display of GMR model information
  • Replaced the drawing toolbar with a simpler toolbar with context menus to change the tool's parameters
  • Discontinued the VStudio project files (shouldn't be a big issue recreating the project), as I am now working entirely with QtCreator
March 21, 2011, 00:41:21
  • Added Dynamical Systems. Drawing, Alignment and Resampling of trajectories. Regression-based dynamical systems (GMR, LWPR, SVR, GPR, MLP, KNN). Vector field display Dynamic display of generated trajectories Structure for time-dependent dynamical systems.
  • Some cosmetic fixes.
  • Fixed a very ugly crash with the statistic display for GPR and KNN.
January 9, 2011, 15:42:24

Added algorithm information on the Statistics window to display data such as the number of support vectors and basis functions. Added two new weak learners to the Boosting classification: Random Rectangles and Random Circles. Fixed a crash when Cross-Validation was run on an untrained classifier. Minor bugs fixes.

January 5, 2011, 13:46:01

Added algorithm information on the Statistics window to display data such as the number of support vectors and basis functions. Added two new weak learners to the Boosting classification: Random Rectangles and Random Circles. Fixed a crash when Cross-Validation was run on an untrained classifier. Minor bugs fixes.

November 7, 2010, 16:16:18

Added a "Data Information and Statistics" window, displaying basic information on the data, ROC curves (classification only) and Cross-Validation results for classification (fmeasures) and regression (error).

October 31, 2010, 11:36:00

Added Train/Test ratio, Cross-Validation for Classification and Regression and ROC curves for classification. Extended ranges for various variables (e.g. #weak learners for boosting). Classified samples now appear with the estimated class color (toggle with "Show Model" in the display options). Optimized the display of samples while drawing (should be WAY smoother for drawing now). Minor bug fixes.

October 21, 2010, 20:11:57

Added ICA, removed Naive Bayes (not really informative or useful the way it was). Added sparsity control and information display for SOGP Fixed crashes with KNN classification and regression Fixed LDA and Fisher LDA as they were not working properly. Minor fixes to the interface on the Mac version

October 16, 2010, 16:53:38

Minor fixes to allow compilation on linux

October 12, 2010, 19:50:43


Thomas Wiecki (on March 23, 2011, 14:37:51)

Tried to compile under linux (kubuntu 10.10) which worked fine, but when I try to classify with any of the classifiers I get a segfault. Also tried windows binary with wine, but no avail.

Leave a comment

You must be logged in to post comments.