A Clojure library for machine learning and statistical inference designed for production deployment and composable algorithms.
Infer is a machine learning and statistical inference library built in Clojure, specifically designed for deployment in real production systems. It enables researchers to deploy their analysis code directly without rewriting it for production environments, bridging the gap between research and deployment. The library provides composable abstractions for algorithms, measures, models, and learning methods, unlike traditional siloed libraries.
Clojure developers and data scientists who need to deploy machine learning models from research directly into production, especially in JVM-based environments or distributed systems like Hadoop. It is also suitable for researchers who want composable machine learning components for experimentation.
Developers choose Infer because it allows research code to be deployed to production without rewriting in languages like C++ or Java, saving time and reducing errors. Its composable abstractions and scalability from local to distributed clusters (e.g., Hadoop) offer flexibility not found in traditional siloed libraries like R or Weka.
inference and machine learning in clojure
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Extracted from production use, allowing research code to be deployed without rewriting in C++ or Java, as stated in the README, bridging the gap between experimentation and deployment.
Initially designed for Hadoop, enabling easy scaling from local interactive environments to distributed clusters with minimal effort, per the README's emphasis on seamless cluster deployment.
Provides modular components for algorithms, measures, models, and learning methods, unlike siloed libraries like R or Weka, fostering flexible experimentation and combination.
Supports multiple feature representations—matrices, Clojure vectors of vectors, or nested maps—with transformations between them, simplifying data preprocessing in ML workflows.
Tied to the JVM and Clojure, which has a smaller community and fewer ML libraries compared to Python or R, potentially limiting access to cutting-edge tools and support.
The README notes that Infer 'intends to cover' most techniques, suggesting some areas may be underdeveloped or missing, such as advanced or niche ML methods.
While it leverages efficient JVM packages like UJMP, performance might not match optimized native code (e.g., C++) for all tasks, and benchmarking is required for specific scenarios.
Infer is an open-source alternative to the following products:
MATLAB is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks for matrix manipulations, algorithm development, and data analysis.
Weka is a collection of machine learning algorithms for data mining tasks, implemented in Java and providing tools for data preprocessing, classification, regression, and visualization.
R is a programming language and free software environment for statistical computing and graphics, widely used among statisticians and data miners.