A C++ generic programming library for machine learning
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
doc
gaml-datasets
gaml-libsvm
gaml-linear
gaml-mlp
gaml-xtree
gaml
.travis.yml
Dockerfile
LICENSE
README.md

README.md

gaml

Build Status Our dev machines have Ubuntu 18.04 which is not supported by travis for now..

A C++ generic programming library for machine learning, developped by Frédéric Pennerath, Jérémy Fix and Hervé Frezza-Buet.

Documentation

The directory contains several source packages, the documentation for each of them can be found in the doc directory as a doxygen generated html file.

For example, the documentation of gaml-libsvm is accessible from doc/gaml-libsvm/index.html

C++17

The compilation of gaml requires C++-17, which means you need gcc >= 7. On ubuntu 16.04, the latest installed gcc is version 5, therefore you need to do the following :

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-7 g++-7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 100 --slave /usr/bin/g++ g++ /usr/bin/g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 150 --slave /usr/bin/g++ g++ /usr/bin/g++-7
sudo update-alternatives --config gcc

You may need to adapt the update-alternatives install depending on the versions that are installed on your system.

Unix Installation

First, get the files.

git clone https://github.com/HerveFrezza-Buet/gaml

Then, you can install all packages as follows. The commands below concern the installation of the gaml package, the installation of the other packages is similar. For a 32bit architecture:

mkdir -p gaml/build
cd gaml/build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
sudo make install
cd ../..

For a Fedora-64bit architecture:

mkdir -p gaml/build
cd gaml/build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DLIB_SUFFIX=64
sudo make install
cd ../..

The default installation uses GNU compilers gcc/g++. However clang is also supported. Just set CC and CXX environment variables as follows before running cmake.

export CC= /usr/bin/clang
export CXX= /usr/bin/clang++

The available packages are :

gaml
The core library. It provide generic tools for usual data handling in machine learning.
gaml-linear
Linear learning (LASSO and LARS) with gaml.
gaml-libsvm
Libsvm support. libsvm should be installed first.
gaml-xtree
Extreme decision trees support.
gaml-mlp
Multi-layer perceptron support. easykf should be installed first.
gaml-kvq
Kernelized vector quantization support, by linking with vq2. vq2 should be installed first. Notes that the basics for kernelized vector quantization are available in the core gaml package (the span namespace).

Related projects

Libsvm
SVM algorithms.
easykf
C++ kalman filtering
vq2
C++ generic vector quantization
RLlib
C++ generic reinforcement learning