LICENSE=BSD-3-ClauseCGO_ENABLED=0go-mlkit is the planned home of machine learning for go-scikit: clustering, classification and model selection, the parts of MATLAB's Statistics and Machine Learning Toolbox and Mathematica's FindClusters, Classify and Predict that no go-scikit organisation covers. It is in wave 3, together with go-statistics time series (PLAN.md item 15). There is no library and no release yet: this page says what is planned, in which wave, and against which references it will be validated.
org go-mlkit domain machine learning status planned (wave 3) release none yet oracles scikit-learn, statsmodels plan go-scikit/roadmap: PLAN.md, STATUS.md
go-mlkit is the planned home of machine learning for go-scikit: clustering, classification and model selection, the parts of MATLAB's Statistics and Machine Learning Toolbox and Mathematica's FindClusters, Classify and Predict that no go-scikit organisation covers. It is in wave 3, together with go-statistics time series (PLAN.md item 15). Everything below is planned, not released.
k-means with k-means++ seeding, hierarchical clustering, DBSCAN, Gaussian mixtures fitted by EM.
Decision trees, random forests and gradient boosting, from Breiman and Friedman.
SMO and dual coordinate descent in the style of LIBSVM and LIBLINEAR; logistic regression and k-NN.
Dimension reduction and rotations, the pca and factoran of MATLAB.
Cross-validation splitters, grid search and metrics.
With the same seeds and initialisation the partitions must equal scikit-learn's; metrics are compared to cross-validation noise.
No cgo; the same on every architecture the fleet tests.
scikit-learn, LIBSVM and LIBLINEAR are BSD-3 and can be ported; GPL tools are oracles only.
Every go-scikit library is validated against the tool that is the reference of its domain, run as an oracle from Go. These are the criteria planned for go-mlkit.
With a shared initialisation and seed, partitions must match scikit-learn exactly (adjusted Rand index equal to 1); otherwise accuracy within cross-validation noise.
Datasets from the UCI Machine Learning Repository (iris, wine, digits and others), downloaded on demand with their per-dataset licences checked, not vendored.
scikit-learn is run from Go with JSON on a pipe; the unit suite passes with no oracle installed.
Planned (wave 3). Clustering (k-means, DBSCAN, Gaussian mixtures), classification (SVM, trees, forests, boosting) and model selection (cross-validation), validated against scikit-learn. Repository layout not fixed.
The documentation (Hugo + Hextra): the scope, the plan and the references of each planned library. Source โ
Logos and icons for the organization, in SVG / PNG / JPG / ICO / ICNS across colour, white and black variants.
go-mlkit is planned, wave 3. The documentation holds its scope, its plan and its references; the roadmap is PLAN.md.
Read the source on GitHub โ