Clojure Machine Learning Libraries

  • CJ-ML: A machine learning library for Clojure built on top of Weka. Supported algorithms include: k-Nearest neighbor, Decision trees,Multilayer perceptrons, Logistic Regression & k Means clusterers
  • Infer: Infer is a library for machine learning and statistical inference, designed to be used in real production systems. (Last update was 2010)
  • Nurokit: General purpose Toolkit for machine learning in Clojure including Neural networks & Visualisation tools (Last update was 2013)
  • clj-bigml: BigML offers a REST-style service for building, sharing, and evaluating machine learning models. Currently the only model variety supported is CART-style decision trees grown in an anytime, streaming fashion. The trees use standard ML practices such as information gain (or information gain ratio) for classification problems, squared error for regression, and statistical pruning options.
  • Clojure Enclog: Clojure wrapper for the encog (v3) machine-learning framework. Encog has been around for almost 5 years, and so can be considered fairly mature and optimised. Apart from neural-nets, version 3 introduced SVM and Bayesian classification. With this library, which is a thin wrapper around encog, you can construct and train many types of neural nets in less than 10 lines of pure Clojure code.
  • FungGP: A genetic programming library for Clojure Genetic programming (GP) is the process of evolving computer programs using a process inspired by biological evolution. In GP, a computer program automatically writes new computer programs (in this case, by generating trees of new Clojure code), and judges them according to their ability to solve a problem or produce correct output. In fungp, like in many GP systems, tree structures representing programs go through processes inspired by biological evolution, such as mutation and reproduction. Their chance of reproduction is decided by their “fitness,” which is assigned by a fitness function. For example, a simple problem you might solve with GP is symbolic regression, in which the evolved trees represent mathematical functions mapping one or more inputs to an output, and the fitness function would compile and run the evolved programs on known data to test whether sets of inputs produce correct output.
  • Synaptic: is a Neural Networks library written in Clojure. Synaptic allows to create multilayer feedforward networks and train them using various algorithms such as: perceptron learning rule, backpropagation, L-BFGS (approximation of Newton’s method), R-prop, RMSprop , L1 & L2 regularization , convolution / pooling layers
  • Clojush: is a version of the Push programming language for evolutionary computation, and the PushGP genetic programming system, implemented in clojure.
  • statistiker: Minimalistic statistics library for Clojure
  • MXNet: MXNet supports the Clojure programming language. The MXNet Clojure package brings flexible and efficient GPU computing and state-of-art deep learning to Clojure. It enables you to write seamless tensor/matrix computation with multiple GPUs in Clojure. It also lets you construct and customize the state-of-art deep learning models in Clojure, and apply them to tasks, such as image classification and data science challenges.

Clojure Math & Statistical Libraries

  • Clojure Numerics: is similar to NumPy for those familiar with Python. The page has a collection of libraries including Core Matrix implementation in Clojure.
  • Neanderthal: Fast native-speed matrix and linear algebra in Clojure. Optimized GPU engine 500x faster for large matrices than the fastest Java libraries
  • Incanter: Incanter is a Clojure-based, R-like platform for statistical computing and graphics.
  • core.matrix: Multi-dimensional array programming API for Clojure
  • Clatrix: Clatrix works as an implementation of core.matrix so it is fully compatible with other libraries and tools that use the core.matrix API.Being implemented as a data type around the native BLAS hooks of jblas gives it speed. Being implemented as a Clojure sequence makes it clever.
  • vectorz-clj: Fast matrix and vector maths library for Clojure (is compatible with CLatrix). Wraps the Java library Vectorz
  • Euclidean: Fast, immutable math for 3D geometries in Clojure
  • Expresso: Clojure library for symbolic computation
  • Math Numeric Tower: Math functions that deal intelligently with the various types in Clojure’s numeric tower, as well as math functions commonly found in Scheme implementations.
  • kixi.stats: A library of statistical distribution sampling and transducing functions

Reference