Fork me on GitHub


ML is a set of implementations of machine learning algorithms written in Clojure. For educational reasons, I've focused on code simplicity rather than performance.


So far, I've implemented:

  • K nearest neighbors
  • Linear regression
  • Logistic regression
  • Neural network with logistic regression (including backpropagation)
  • Regularization for logistic regression


More algorithms/features I'd like to implement include:

  • Regularization for linear regression
  • A decision tree builder
  • A support vector machine
  • A Naive Bayes classifier
  • K-means clustering

Technical points

Clojure, not surprisingly, maps pretty well onto the mathematical concepts in machine learning. While I've focused on simplicity rather than performance, I'm also interested to see what optimization might look like.