Description
This library is a compilation of the tools developed in the mljs organization.
It is mainly maintained for use in the browser. If you are working with Node.js, you might prefer to add
to your dependencies only the libraries that you need, as they are usually published to npm more often.
We prefix all our npm package names with ml (eg. mlmatrix) so they are easy to find.
To include the ml.js library in a web page:
ml.js alternatives and similar libraries
Based on the "Machine Learning" category.
Alternatively, view ml.js alternatives based on common mentions on social networks and blogs.

Tesseract.js
Pure Javascript OCR for more than 100 Languages ๐๐๐ฅ 
ConvNetJS
Deep Learning in Javascript. Train Convolutional Neural Networks (or ordinary ones) in your browser. 
deeplearn.js
A hardwareaccelerated machine intelligence library for the web. 
Brain.js
[UNMAINTAINED] Simple feedforward neural network in JavaScript 
Synaptic.js
architecturefree neural network library for node.js and the browser 
m2cgen
Transform ML models into a native code (Java, C, Python, Go, JavaScript, Visual Basic, C#, R, PowerShell, PHP, Dart, Haskell, Ruby, F#, Rust) with zero dependencies 
Synapses
A group of neuralnetwork libraries for functional and mainstream languages 
TensorFlow.js
A JavaScript library for training and deploying ML models in the browser and on Node.js.
Appwrite  The Open Source Firebase alternative introduces iOS support
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of ml.js or a related project?
Popular Comparisons
README
ml.js  Machine learning tools in JavaScript
Introduction
This library is a compilation of the tools developed in the mljs organization.
It is mainly maintained for use in the browser. If you are working with Node.js, you might prefer to add
to your dependencies only the libraries that you need, as they are usually published to npm more often.
We prefix all our npm package names with ml
(eg. mlmatrix) so they are easy to find.
To include the ml.js library in a web page:
<script src="https://www.lactame.com/lib/ml/6.0.0/ml.min.js"></script>
It will be available as the global ML
variable. The package is in UMD format.
List of included libraries
Unsupervised learning
 Principal component analysis (PCA):
ML.PCA
 Hierarchical clustering:
ML.HClust
 Kmeans clustering:
ML.KMeans
Supervised learning
 Naive Bayes:
ML.NaiveBayes
 KNearest Neighbor (KNN):
ML.KNN
 Partial least squares (PLS):
ML.PLS
 KOPLS:
ML.KOPLS
 Crossvalidation:
ML.CrossValidation
 Confusion matrix:
ML.ConfusionMatrix
 Decision tree classifier:
ML.DecisionTreeClassifier
 Random forest classifier:
ML.RandomForestClassifier
Artificial neural networks (ANN)
Regression
 Simple linear regression:
ML.SimpleLinearRegression
 Polynomial regression:
ML.PolynomialRegression
 Multivariate linear regression:
ML.MultivariateLinearRegression
 Power regression:
ML.PowerRegression
 Exponential regression:
ML.ExponentialRegression
 TheilSen regression:
ML.TheilSenRegression
 Robust polynomial regression:
ML.RobustPolynomialRegression
 Decision tree regression:
ML.DecisionTreeRegression
 Random forest regression:
ML.RandomForestRegression
Optimization
 LevenbergMarquardt:
ML.levenbergMarquardt
 Fast Combinatorial Nonnegative Least Squares:
ML.FCNNLS
Math
 Matrix:
ML.Matrix
(Matrix class)  Singular value decomposition (SVD):
ML.SVD
 Eigenvalue decomposition (EVD):
ML.EVD
 Cholesky decomposition:
ML.CholeskyDecomposition
 Lu decomposition:
ML.LuDecomposition
 Qr decomposition:
ML.QrDecomposition
 Sparse matrix:
ML.SparseMatrix
 Kernels:
ML.Kernel
 Distance functions:
ML.Distance
 Similarity functions:
ML.Similarity
 Distance matrix:
ML.distanceMatrix
 XORShiftadd RNG:
ML.XSadd
 nonnegative Generalized Morphological Component Analysis
ML.nGMCA
ML.Array
ML.Array.min
ML.Array.max
ML.Array.median
ML.Array.mean
ML.Array.mode
ML.Array.normed
ML.Array.rescale
ML.Array.sequentialFill
ML.Array.standardDeviation
ML.Array.variance
ML.ArrayXY
Functions dealing with an object containing 2 properties x and y, both arrays.
Example:
let result = ML.ArrayXY.sortX({ x: [2, 3, 1], y: [4, 6, 2] });
// result = {x: [1,2,3], y: [2,4,6]}
ML.ArrayXY.weightedMerge: Merge abscissa values on similar ordinates and weight the group of abscissa
ML.ArrayXY.maxMerge: Merge abscissa values on similar ordinates and keeps the abscissa with bigger ordinate value
ML.ArrayXY.closestX: Get the closest point for a specific abscissa value
ML.ArrayXY.centroidsMerge: Merge abscissa values if the ordinate value is in a list of centroids
ML.ArrayXY.sortX: Sort a set of point based on the abscissas values
ML.ArrayXY.maxY: Sort a set of point based on the abscissas values
ML.ArrayXY.uniqueX: Ensure that x values are unique
Statistics
 Performance (ROC curve):
ML.Performance
Data processing
 Principal component analysis (PCA):
ML.PCA
 SavitzkyGolay filter:
ML.savitzkyGolay
 Global Spectral Deconvolution (GSD):
ML.GSD
Utility
 Bit array operations:
ML.BitArray
 Hash table:
ML.HashTable
 Pad array:
ML.padArray
 Binary search:
ML.binarySearch
 Number comparison functions for sorting:
ML.numSort
 Random number generation:
ML.Random
License
[MIT](./LICENSE)
*Note that all licence references and agreements mentioned in the ml.js README section above
are relevant to that project's source code only.