Back to the table of contents

Previous      Next

Overview of Waffles

In contrast with other machine learning toolkits,

  • We don't want to convert you to a new paradigm. We just want to provide useful tools for you to use however you want.
  • Waffles is distributed under the CC0 (public domain) license, so it comes with no legal restrictions ...at all.
  • Waffles apps are thin wrappers around functionality in a well-documented C++ class library.
  • Waffles apps are script-friendly, and are designed to be used with automated processes.
  • Waffles tools are fast because they are developed as native applications.
  • Our main library has no external dependencies (except for the standard C++ libraries).
  • Waffles does not depend on any platform or virtual machine, so it will not limit your distribution options.
  • Waffles algorithms can automatically tune their own parameters.
  • All of our learners implicitly support multi-dimensional labels.
  • Our tools automatically filter data types, so you can use any supervised learner for classification or regression, and you don't need to worry about the data types in the input patterns.




Waffles provides the following command-line applications, each containing several tools for performing machine learning operations:

  • waffles_audio contains tools for processing audio files.
  • waffles_cluster contains tools for clustering.
  • waffles_dimred contains tools for dimensionality reduction, attribute selection, etc.
  • waffles_generate contains tools to sample distributions, sample manifolds, and generate certain types of data.
  • waffles_learn contains tools for supervised learning.
  • waffles_plot contains tools for visualizing data.
  • waffles_recommend contains tools for collaborative filtering, recommendation systems, imputation, etc.
  • waffles_sparse contains tools to learning from sparse data, document classification, etc.
  • waffles_transform contains tools for manipulating data, shuffling rows, swapping columns, matrix operations, etc.

For people who prefer not to have to remember commands, waffles also includes a graphical tool called

  • waffles_wizard
. This application opens a web browser and guides the user through a series of forms to create a command that will perform the desired task. This provides all the convenience of a GUI interface, but without locking the user in. That is, since it generates a command-line command for you to use, it becomes easy to perform the same operations without the GUI. Thus, the Waffles tools are particularly well-suited for experiments that need to be automated.

All of the functionality of the waffles tools is provided in an object-oriented C++ class library called

  • GClasses
. In other words, the command-line tools are just thin wrappers around functionality implemented in the GClasses library. Thus, if you find any of the operations performed by the Waffles command-line tools to be useful, it is easy to incorporate the same functionality into your C++ programs.

Finally, in order to fully demonstrate how to use the GClasses library, several demo applications are also included with Waffles.


Previous      Next

Back to the table of contents