Scala-Machine-Learning icon indicating copy to clipboard operation
Scala-Machine-Learning copied to clipboard

No Dependency Scala Machine Learning Algorithm Gallery

Scala Machine Learning

Branch Status CodeCov
master Build Status codecov
develop Build Status codecov

Light Weight Scala Machine Learning Library

A very light weight Scala machine learning library that provide some basic ML algorithms in Scala. The repo is served as a algorithm gallery. Please enjoy and dive into the algorithm that you will like to learn in its basic level.

Dev-Environment

  • Scala 2.13

  • Sbt 2.1

This package includes

Classification :

  • [x] Naive Bayesian Decision [Code] [Usage]

  • [x] K-Nearest Neighborhood (KNN) [Code] [Usage]

  • [x] Gaussian Process Classification [Code] [Usage]

  • [x] Linear Classification [Code] [Usage]

  • [x] Linear Support Vector Machine (linear-SVM) [Code] [Usage]

  • [x] Perceptron [Code] [Usage]

  • [x] Decision Tree [Code] [Usage]

  • [x] Random Forest [Code] [Usage]

  • [x] Extreme Learning Machine [Code] [Usage]

Boost :

  • [x] Naive Boost [Code] [Usage]

  • [x] Weighted Boost [Code] [Usage]

  • [x] Gradient Boost [Code] [Usage]

Regression :

  • [x] Multiple Linear Regression [Code] [Usage]

  • [x] Multivariate Linear Regression - GD [Code] [Usage]

  • [x] Stochastic Gradient Decent [Code] [Usage]

  • [x] Regression Tree [Code] [Usage]

Clustering :

  • [x] Hierarchical [Code] [Usage]

  • [x] DBSCAN [Code] [Usage]

  • [x] HDBSCAN [Code] [Usage]

  • [x] BIRCH [Code] [Usage]

  • [x] K-Means [Code] [Usage]

  • [x] EM Cluster [Code] [Usage]

  • [x] Density Peak Cluster [Code] [Usage]

Neural Net & Deep Learning :

  • [x] Neural Network (NN) [Code] [Usage]

  • [x] Restricted Boltzmann Machine (RBM) [Code] [Usage]

  • [x] Deep Belief Network (DBN) [Code] [Usage]

  • [x] Long Short-Term Memory (LSTM) [Code] [Usage]

  • [x] Neural Turing Machine - Memory Searching Cognition [Code (in another Repo)]

Optimization :

  • [x] Gene Algorithm (GA) [Code] [Usage]

  • [x] Minimax [Code] [Usage]

  • [x] Monte Carlo Tree Search (MCTS) [Code] [Usage]

  • [x] Epsilon Greedy Search [Code] [Usage]

  • [x] Upper Confidence Bound [Code] [Usage]

Reinforcement Learning :

  • [x] Naive Feedback [Code] [Usage]

  • [x] Q-Learning [Code] [Usage]

  • [x] Q-Neural Learning [Code] [Usage]

  • [x] Deep Q-Network (DQN) [Code] [Usage]

  • [x] Dueling DQN (D-DQN) [Code] [Usage]

  • [x] Asynchronous Advantage Actor-Critic (A3C) [Code] [Usage]

  • [x] Prioritized Experience Replay (PER-DQN) [Code] [Usage]

Feature Analysis :

  • [x] Student-T Test [Code] [Usage]

  • [x] ANOVA [Code] [Usage]

  • [x] Linear Discriminant Analysis [Code] [Usage]

  • [x] Quadratic Discriminant Analysis [Code] [Usage]

Feature Transformation :

  • [x] One Hot Encoding [Code] [Usage]

Abnormal Detection :

  • [x] Isolation Tree [Code] [Usage]

  • [x] Isolation Forest [Code] [Usage]

  • [x] Random Cut Tree [Code] [Usage]

  • [x] Random Cut Forest [Code] [Usage]

TODO

  • [ ] Rainbow - Deep Reinforcement Learning

  • [ ] Alpha-go Zero (MCTS-NN) - Deep Reinforcement Learning

  • [ ] Neural Architect Search (NAS) - Neural Network & Deep Learning

Installation Process

  1. Install sbt

  2. Clone this project

Test

sbt test

Build Jar

sbt assembly