Skip to content

andrewha/ezml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Welcome to the EasyML library! EasyML is a set of classic machine learning algorithms written in C++. It extensively uses the Armadillo library which in turn uses the LAPACK library to work with vectors and matrices. Boost is also used, for example, to obtain object's human-readable type during runtime and to work with probability distributions. Be sure to install them first.

Supported models and solvers:

  • Linear Regression
    • Ordinary Least Squares
    • QR-decomposition
    • Derivative-based: Gradient Descent, Newton (single feature only)
  • Logistic Regression
    • Derivative-based: Gradient Descent, Newton (single feature only)
  • Autoregressive AR(p)
    • Ordinary Least Squares
    • QR-decomposition
    • Derivative-based: Gradient Descent, Newton (single lag only)

Supported transformers and extractors:

  • Standard scaler ($z$-score transformation)
  • Time series (extract features and target from process)

More models and possibly transformers to be implemented in future versions.


Installation for Linux

  • > ./build_lib.sh. The static library will be built into ./bin/static/libezml.a
  • You can either copy it along with headers to your default location, or just keep it in your local project.

Usage Examples

To built any of the example files located in examples:

  • > cd examples
  • > ./build_example.sh <filename without extension>, i.e. ./build_example.sh linreg_single_toy. The executable will be built into ./build/.

Documentation

You can browse the full classes and files doxygen documentation in the docs.


Libraries, tools, and OS

C++ Armadillo LAPACK Boost Bash Linux
C++ Armadillo LAPACK Boost Bash Linux