v0.5.0 New Visualization and Dataset Features - Added 3D visualization of samples and classification, regression and maximization results - Added Visualization panel for display of 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 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-natively-multi-class algorithms - Trained models can now be kept and tested on new data (training on one dataset, testing on another) - Added Automatic Relevance Determination for SVM with RBF kernel (Thanks to Ashwini Shukla!) - Added Growing Hierarchical Self Organizing Maps (original code by Michael Dittenbach) - Added Random Forest classification - Added LDA as a classifier (in addition to projector) - Added Save/Load Model option for GMMs and SVMs v0.4.7 - Added plugins from the PhD students following the Machine Learning class (FLAME, DBSCAN, LOWESS, CCA, KMEANS++, GP Classification) - Cosmetic changes and improvements for parameter hiding/display when changing options v0.4.6 - Added possibility to export classification and regression results (in Export Outputs) - Added a "Generate Dataset" panel that allows to create a Checkerboard, Grid, Concentric Circles, Swissroll in D dimensions, with N samples - Replaced the algorithm Tabs with a combo-box choice v0.4.4 - Cosmetic changes and improvements on the interface - Some fixes and improvements on CSV import - Added Manual Vector Machine - Added computation of F-measure and BIC etc using multiple cross-validation runs 0.4.3 - Fixed a number of nasty bugs, split kernel methods into SVM- and GPR-based methods, and merged k-means algorithms together. Mac binaries are available once again! 0.4.2 - Added the possibility to choose which dimensions are used for regression or classification (when more than 2 dimensions are available) 0.4.1 - Changed the way multivariate regression errors are displayed - Fixed the way CSVImport imports files (added the possibility to have ignore the class label, or to use the first row as header for columns) - Plugged some memory leaks - The Statistics panel now shows classification results for the last classification - Fixed the way ROC values are computed 0.4.0 - Added the Projection tab in the Algorithms dialog, it allows to perform different types of projections. The data is taken from the canvas and reprojected into it. However, a copy of the source data is kept as reference. All subsequent projections are performed on this reference data. Hitting the Reproject button replaces the source data with the current projection and reprojects it (this allows to concatenate multiple methods). - The current projections available are PCA and ICA and LDA (will add KPCA soon) - Added Bubble Graphs to the visualization options - Added the CSVImport plugin, which is a toned-down version of WebImport that does not require webkit, phonon and all the others (mosty to allow to import data on the Mac packaged version). It supports commas, tabs, semicolon and spaces as data separators - changed the way cluster and classification information is displayed on multivariate visualizations - Added cluster quality evaluation (RSS, AIC, BIC, f-measure) and the possibility to optimize the cluster count, and a graph displaying cluster quality metrics 0.3.9 - Added Different visualization modes multi-variate data. The canvas now displays data as scatterplots, parallel coordinates, radial graphs or Andrews plots. - Started merging the ESMLR branch (still have gotten to understand how to do that exactly...): ESMLR is an Artificial Neural Network created by Stephane Magnenat that leaves the current MLP implementation far behind in terms of accuracy. Right now it crashes on me, but i'll track that down... 0.3.8 - Revamped PCAFaces to display eigenValues, fixed the save/load dataset features, it now projects only labelled samples. - Improved WebImport, it now supports all type of cvs data, exclusion of columns and choice of output column. It is now possible to either dump the entire dataset or only the N principal components. - Boost now allows classification of multi-dimensional data 0.3.7 - Added Quality Treshold clustering. - Upgraded SEDS to the latest version from Mohammad Khansari (using nlopt). - The training trajectories are now tested and displayed by the DS to estimate quality/stability. - Dynamical display now paints either vectors or colormap and not both (added option in the optionDynamic widget) - Added Multi-Class classification for GMM, SVM and KNN. - Changed the display of samples (to uniform the color scheme with multi-class). - Canvas now allows to choose which 2 dimensions are selected (for multi-dimensional data). LIMITS: not all algorithms support multi-dimensional data, and will only consider the first two dimensions. - Added on-the-fly test of the mouse position for multi-class. - Restructured the main program (Core now has all the core elements while MLDemos only has the gui files, 3rdParty libraries are compiled as a separate static library), this leads to faster compilation times... - Combined the canvas pixmaps into a single struct (maps) to simplify management of maps from outside the canvas (e.g. drawTimer, plugins DrawInfo/DrawModel functions). - Started adding HMM (experimental for now) - Started adding TimeSeries (very experimental for now) 0.3.6 - Fixed loading+classification+regression on multi-dimensional data (only the first 2 dimensions are displayed for now) - Added Particle Swarm Optimization to Maximizers - Added benchmark problems for maximization - Added display for multi-class classification (GMM and KNN only so far) - Tried to update to a new version of SEDS without success (new version works but gives worse results)... on hold until Mohammad Khansari gives me his SEDS v2 - Data Info/Statistics panel now shows the evolution of current reward during the maximization process. 0.3.5 - Added Dan Grollman's Donut reward maximization method. - Added the Comparison dialog. It is now possible to compare the performance of different methods or different parameter values via cross-validation. Hitting the "Compare" button on each algorithm options panel adds a new item to the Comparison dialog. After setting train/test ratio and cross-validation, it is possible to launch the evaluation. When each algorithm is evaluated, the results are displayed as box-plots or histograms. Multiple types of algorithms can be performed at the same time; if so, the dialog will display separately the different results. Screenshots of the graphs can be exported to clipboard. - Changed the way loading and saving is performed. - Added an opencv22/opencv21 option in the qmake project variables to allow building with the different versions of opencv. 0.3.5 - Added Dan Grollman's Donut reward maximization method. - Added the Comparison dialog. It is now possible to compare the performance of different methods or different parameter values via cross-validation. Hitting the "Compare" button on each algorithm options panel adds a new item to the Comparison dialog. After setting train/test ratio and cross-validation, it is possible to launch the evaluation. When each algorithm is evaluated, the results are displayed as box-plots or histograms. Multiple types of algorithms can be performed at the same time; if so, the dialog will display separately the different results. Screenshots of the graphs can be exported to clipboard. - Changed the way loading and saving is performed. - Added an opencv22/opencv21 option in the qmake project variables to allow building with the different versions of opencv. 0.3.4 - Added ability to export to vector graphics (SVG). This has required restructuring the plugin interfaces and the drawing procedures. WARNING: Exporting vector fields in dynamical systems will produce large files (20mb) that might be slow to load in Illustrator or other vector graphics editors. It is found under File/Export. - Added toolbar display options to remove it or set the icon size (large and small). - Unified the user interface files, and fixed the font size on the different os (should solve some of the unreadable labels on windows/linux). 0.3.3 - Added Gradient Descent to the Maximization algorithms. - Added drag and drop buttons on the Maximization panel for painting gaussians and gradients on the reward map. - Added icons for the drawing tools, made main icons smaller (will add options to make it user-defineable) - Integrated Particle Filters into the basic maximization tools (that are now called Stochastic Methods) - 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. - Saving screenshots now also saves grid and rewards. 0.3.2 - Added Reward Maximization algorithms to the architecture, (Random Search, Random Walk, PoWER). - Added Genetic Algorithms and Particle Filters for reward maximization. - Added algorithm information in the info/statistics dialog, which has been renamed. It now provides information on each algorithm when selected. - Cosmetic 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. 0.3.1 - 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) - 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 0.3.0 - 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 Mohammad Khansari's Stable Estimator for Dynamical Systems (SEDS) - 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 0.2.0 - 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. 0.1.4 - 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 0.1.3 - Added a new "Data Information and Statistics" window, displaying basic information on the data, classification ROC curves, Cross-Validation results. 0.1.2 - Added Train/Test ratio, Cross-Validation for Classification and Regression and ROC curves for classification - Added Kernel Recursive Least Squares (KRLS) in Regression: kernel methods now have a tab of their own - Optimized Samples display (should go way smoother now, allowing to draw thousands of samples with little slowdown) - Added samples estimated class (toggle with "Show Model" in the Display Options) - Minor bugs fixes 0.1.1 - Added ICA and fixed (Fisher) LDA, It now does what it's supposed to do - Added temporary fix for Mac window resize bug 0.1 - First release