/LightML.jl

Minimal and clean examples of machine learning algorithms implemented in Julia

Primary LanguageJuliaMIT LicenseMIT

LightML.jl

Build Status

About

LightML.jl is a collection of reimplementation of general machine learning algorithm in Julia.

The purpose of this project is purely self-educational.

Why?

This project is targeting people who want to learn internals of ml algorithms or implement them from scratch.

The code is much easier to follow than the optimized libraries and easier to play with.

All algorithms are implemented in Julia.

You should access test function of every implementation for its usage in detail. Every model is actually constructed in a similar manner.

Installation

Pkg.clone("https://github.com/memoiry/LightML.jl")

Running Implementations

using LightML
test_LSC()

Figure 1: Smiley, spirals, shapes and cassini Datasets using LSC(large scale spectral clustering)

Running Demo

using LightML
demo()

Figure 2: The Digit Dataset using Demo algorithms

Current Implementations

Supervised Learning:

Unsupervised Learning:

Test Example available

  • test_ClassificationTree()
  • test_RegressionTree()
  • test_label_propagation()
  • test_LDA()
  • test_naive()
  • test_NeuralNetwork()
  • test_svm()
  • test_kmeans_random()
  • test_PCA()
  • test_Adaboost()
  • test_BoostingTree()
  • test_spec_cluster()
  • test_LogisticRegression()
  • test_LinearRegression()
  • test_kneast_regression()
  • test_kneast_classification()
  • test_LSC()
  • test_GaussianMixture() (Fixing)
  • test_GDA() (Fixing)
  • test_HMM() (Fixing)
  • test_xgboost (Fixing)

Contribution

Please examine the todo list for contribution detials.

Any Pull request is welcome.

Selected Examples

LinearRegression

using LightML
test_LinearRegression()

Figure 3: The regression Dataset using LinearRegression

Adaboost

test_Adaboost()

Figure 4: The classification Dataset using Adaboost

SVM

test_svm()

Figure 5: The classification Dataset using LinearRegression

Classification Tree

test_ClassificationTree()

Figure 6: The digit Dataset using Classification Tree

kmeans

test_kmeans_random()

Figure 7: The blobs Dataset using k-means

LDA

test_LDA()

Figure 8: The classification Dataset using LDA

PCA

test_PCA()

Figure 9: The Digit Dataset using PCA