fodop

We have  collected a list of Golang resources on Machine Learning libraries & categorized it based on various algorithms & approaches!

  1. Generalized Machine Learning Libraries:

    1. GoML - https://github.com/cdipaolo/goml - On-line Machine Learning in Go that includes libraries for Generalized Linear Models (Linear Regression, Logistic Regression etc), Perceptron, Clustering (K Means, K Nearest Neibhours...) & Text Classification (Multinomial & term frequency...)

    2. Machine Learning libraries for Go Lang : https://github.com/alonsovidales/go_ml: Implemented Algorithms include Linear Regression, Logistic Regression, Neural Networks, Collaborative Filtering & Gaussian Multivariate Distribution for anomaly detection systems

    3. MLGo - https://code.google.com/p/mlgo/ - Algorithms implemented include Gaussian mixture model, k-means, k-medians, k-medoids, single-linkage hierarchical clustering

    4. GoLearn: - GoLearn is a 'batteries included' machine learning library for Go. Simplicity, paired with customisability, is the goal.

  2. Neural Networks

    1. Neural Networks written in go : https://github.com/goml/gobrain

    2. Go Fann - https://github.com/white-pony/go-fann - Go bindings for FANN, library for artificial neural networks

    3. https://github.com/schuyler/neural-go - Multi-Layer Perceptron Neural Network

    4. Genetic Algorithms library written in Go / golang - https://github.com/thoj/go-galib

    5. Word2Vec written in Go : https://github.com/ynqa/word-embedding

  3. Linear Algebra:

    1. Linear Algebra for Go & Matrix Library:

    2. Mat64: Package mat64 provides basic linear algebra operations for float64 matrices. mat64 provides a set of concrete types that implement different classes of matrices (Dense, Symmetric, etc.) and operations on them. In most cases, an operation which results in a matrix value is a method on the value being produced.

    3. BLAS Implementation for Go: The BLAS (Basic Linear Algebra Subprograms) are routines that provide standard building blocks for performing basic vector and matrix operations

    4. https://github.com/danieldk/golinear - liblinear bindings for Go

    5. https://github.com/james-bowman/sparse - Sparse matrix formats for Go

  4. Probability Distribution Functions

    1. http://godoc.org/code.google.com/p/probab

    2. https://github.com/e-dard/godist

  5. Decision Trees:

    1. Hector https://github.com/xlvector/hector - Golang machine learning lib. Currently, it can be used to solve binary classification problems.Logistic Regression , Factorized Machine , CART, Random Forest, Random Decision Tree, Gradient Boosting Decision Tree & Neural Network

    2. Decision Trees in Go - https://github.com/ajtulloch/decisiontrees - Gradient Boosting, Random Forests, etc. implemented in Go

    3. CloudForest - https://github.com/ryanbressler/CloudForest - Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go (golang). CloudForest allows for a number of related algorithms for classification, regression, feature selection and structure analysis on heterogeneous numerical / categorical data with missing values.

  6. Bayesian Classifiers:

    1. https://github.com/jbrukh/bayesian - Perform naive Bayesian classification into an arbitrary number of classes on sets of strings.

    2. https://github.com/eaigner/shield - Bayesian text classifier with flexible tokenizers and storage backends for Go

  7. Recommendation Engines in Go ble

    1. Collaborative Filtering (CF) Algorithms in Go - https://github.com/timkaye11/goRecommend

    2. Recommendation engine for Go - https://github.com/muesli/regommend

  8. Others

    1. https://github.com/daviddengcn/go-pr - Pattern Recognition in Go.

    2. SVM Library in Go

    3. https://github.com/james-bowman/nlp - selected machine learning algorithms for NLP and text mining e.g. LSA, LSH, PCA, etc.