Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Machine Learning
  3. clj-ml

clj-ml

Clojure

A machine learning library for Clojure built on top of Weka, providing filters, classifiers, regression, and clustering algorithms.

GitHubGitHub
134 stars20 forks0 contributors

What is clj-ml?

clj-ml is a machine learning library for Clojure that provides a functional wrapper around the Weka toolkit. It allows developers to perform tasks like classification, regression, clustering, and data preprocessing using Clojure's expressive syntax and data structures, making advanced ML algorithms accessible within the Clojure ecosystem.

Target Audience

Clojure developers and data scientists who need to integrate machine learning into their applications without leaving the Clojure environment, and those familiar with Weka who want a more functional interface.

Value Proposition

It offers a seamless bridge between Clojure and Weka, providing an idiomatic Clojure API for a wide range of proven ML algorithms, eliminating the need to write Java interop code directly and enabling faster experimentation and integration.

Overview

A machine learning library for Clojure built on top of Weka and friends

Use Cases

Best For

  • Adding machine learning capabilities to Clojure web applications
  • Prototyping ML models with Clojure's REPL-driven workflow
  • Educational purposes for learning ML concepts in a functional language
  • Data preprocessing and feature engineering for Clojure data pipelines
  • Text classification tasks using document vectorization
  • Building predictive models for numeric or categorical outcomes

Not Ideal For

  • Projects requiring state-of-the-art deep learning or neural networks beyond basic MLPs
  • High-performance, low-latency prediction systems where Java interop overhead is prohibitive
  • Teams heavily invested in Python-based ML ecosystems with tools like TensorFlow or PyTorch
  • Applications needing extensive GPU acceleration or distributed computing for large datasets

Pros & Cons

Pros

Comprehensive Algorithm Support

Wraps Weka's wide range of filters, classifiers, regression models, and clusterers, including decision trees, SVMs, and k-Means, as listed in the README's supported algorithms section.

Idiomatic Clojure API

Provides functional interfaces using Clojure data structures like maps and vectors, as shown in examples like dataset manipulation and instance conversion, making it natural for Clojure developers.

Easy Data I/O

Supports loading and saving datasets in ARFF and CSV formats from local and remote files, demonstrated in the I/O examples with load-instances and save-instances functions.

Model Persistence

Allows serialization of trained classifiers to disk and reloading via serialize-to-file and deserialize-from-file, enabling reuse of models without retraining.

Cons

Limited by Weka's Capabilities

Inherits Weka's weaknesses, such as lack of modern deep learning algorithms and potential performance bottlenecks with large, in-memory datasets, as it's a wrapper rather than a native implementation.

Complex Text Processing Setup

The README highlights issues with word attribute consistency in text classification, requiring careful handling of training and testing sets to avoid mismatches in feature extraction.

Java Dependency and Versioning

Requires Java 1.7+ and depends on Weka, which may lead to compatibility issues with other JVM libraries or require specific JVM configurations, adding setup complexity.

Sparse and Outdated Documentation

API documentation is linked but minimal; advanced usage relies on Weka's docs, and the README examples are basic, potentially hindering learning and troubleshooting for complex tasks.

Frequently Asked Questions

Quick Stats

Stars134
Forks20
Contributors0
Open Issues1
Last commit4 years ago
CreatedSince 2013

Tags

#data-science#classification#weka#data-preprocessing#clojure#jvm#regression#machine-learning#clustering

Built With

C
Clojure
J
Java

Included in

Machine Learning72.2k
Auto-fetched 18 hours ago

Related Projects

PyTorch - Tensors and Dynamic neural networks in Python with strong GPU accelerationPyTorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration

Tensors and Dynamic neural networks in Python with strong GPU acceleration

Stars101,899
Forks28,473
Last commit17 hours ago
keraskeras

Deep Learning for humans

Stars64,175
Forks19,744
Last commit1 day ago
streamlitstreamlit

Streamlit — A faster way to build and share data apps.

Stars45,326
Forks4,331
Last commit22 hours ago
gradiogradio

Build and share delightful machine learning apps, all in Python. 🌟 Star to support our work!

Stars43,191
Forks3,557
Last commit20 hours ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub