# 8 Machine Learning Frameworks Java Developers Must Try In 2019

Source:- analyticsindiamag.com

### 1| Apache SAMOA

Apache Scalable Advanced Massive Online Analysis (SAMOA) is a distributed streaming machine learning framework which contains a programming abstraction for distributed streaming machine learning algorithms. It provides a collection of distributed streaming algorithms for the most common data mining and machine learning tasks such as classification, clustering, and regression. Apache SAMOA enables the development of new machine learning algorithms without dealing with the complexity of underlying streaming processing engines as well as provides extensibility in integrating new SPEs into the framework.

### 2| AMIDST ToolBox

AMIDST is an open source Java toolbox for scalable probabilistic machine learning with a special focus on streaming data. It allows specifying probabilistic graphical models with latent variables and temporal dependencies. AMIDST provides tailored parallel and distributed implementations of Bayesian parameter learning for batch and streaming data. This processing is based on flexible and scalable message passing algorithms. The features of this toolbox include probabilistic graphical models, scalable inference, data streams, large-scale data, extensible and interoperability.

### 3| Apache Mahout

Apache Mahout is a distributed linear algebra framework and mathematically expressive Scala DSL which is designed to quickly implement the machine learning algorithms. This framework mainly focuses on clustering, classification, and filtering. Running any application which uses Mahout will require installing a binary or source version and setting the environment.

### 4| Datumbox

The Datumbox machine learning framework is an open-source framework written in Java which allows the rapid development of machine learning and statistical applications. The main focus of the framework is to include a large number of machine learning algorithms & statistical methods and to be able to handle large-sized datasets.

The framework currently supports performing multiple parametric & non-parametric statistical tests, calculating descriptive statistics on censored & uncensored data, performing ANOVA, cluster analysis, dimension reduction, regression analysis, time series analysis, sampling and calculation of probabilities from the most common discrete and continues Distributions. In addition, it provides several implemented algorithms including Max Entropy, Naive Bayes, SVM, Bootstrap Aggregating, Adaboost, Kmeans, Hierarchical Clustering, Dirichlet Process Mixture Models, Softmax Regression, Ordinal Regression, Linear Regression, Stepwise Regression, PCA, etc.

### 5| ELKI

ELKI is an open source data mining software written in Java. The focus of ELKI is research in algorithms, with an emphasis on unsupervised methods in cluster analysis and outlier detection. It aims at providing a large collection of highly parameterizable algorithms, in order to allow easy and fair evaluation and benchmarking of algorithms. In ELKI, data mining algorithms and data management tasks are separated and allow for an independent evaluation. This separation makes ELKI unique among data mining frameworks like Weka or Rapidminer and frameworks for index structures like GiST.

### 6| Encog

Encog is a pure Java/C# machine learning framework which is created in 2008 to support genetic programming, NEAT/HyperNEAT, and other neural network technologies. This framework supports a variety of advanced algorithms, as well as support classes to normalize and process data. Machine learning algorithms such as Support Vector Machines, Neural Networks, Bayesian Networks, Hidden Markov Models, Genetic Programming and Genetic Algorithms are supported. Most Encog training algorithms are multi-threaded and scale well to multicore hardware.

### 7| Neuroph

Neuroph is an open source, lightweight Java neural network framework to develop common neural network architectures. It contains well designed, open source Java library with a small number of basic classes which correspond to basic NN concepts. This framework also has a nice GUI neural network editor to quickly create Java neural network components.

### 8| Smile

Smile (Statistical Machine Intelligence and Learning Engine) is a fast and comprehensive machine learning, NLP, linear algebra, graph, interpolation, and visualization system in Java and Scala. It covers every aspect of machine learning with neat interfaces, including classification, regression, clustering, association rule mining, feature selection, manifold learning, multidimensional scaling, genetic algorithms, missing value imputation, efficient nearest neighbour search, etc.