Machine Learning Toolbox.
Haskell Machine Learning Toolkit includes various methods of supervised learning: linear regression, logistic regression, SVN, neural networks, etc. as well as some methods of unsupervised methods: K-Means and PCA.
Machine Learning Toolbox
Supported Methods and Problems
Supervised Learning
Regression Problem
Normal Equation;
Linear Regression using Least Squares approach.
Classification Problem
Softmax Classifier;
Multi SVM Classifier;
Logistic Regression;
Neural Networks, please see the details below.
Unsupervised Learning
Principal Component Analysis (Dimensionality reduction problem);
K-Means (Clustering).
Neural Networks
Activations: ReLu, Tanh, Sigmoid;
Loss Functions: Softmax, Multi SVM, Logistic.
Usage
OS X/macOS prerequisites setup
- Using Homebrew:
brew install pkg-config gsl
or
- Using MacPorts:
sudo port install pkgconfig gsl
Build the project
stack build
Run examples app
Please run sample app from root dir (because paths to training data sets are hardcoded).
cd examples
stack build
stack exec linreg # Linear Regression Sample App
stack exec logreg # Logistic Regression (Classification) Sample App
stack exec digits # Muticlass Classification Sample App
# (Recognition of Handwritten Digitts
stack exec digits-pca # Apply PCA dimensionaly reduction to digits sample app
stack exec digits-svm # Support Vector Machines
stack exec nn # Neural Network Sample App
# (Recognition of Handwritten Digits)
stack exec kmeans # Clustering Sample App
Run unit tests
stack test
Examples
Linear Regression: source code;
Logistic Regression: source code;
Multiclass Logistic Regression: source code;
Multiclass Logistic Regression with PCA: source code;
Multiclass Support Vector Machine: source code;
Neural Networks: source code;
K-Means: source code.