Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. GoLearn

GoLearn

MITGo

A batteries-included machine learning library for Go with a scikit-learn inspired interface.

GitHubGitHub
9.4k stars1.2k forks0 contributors

What is GoLearn?

GoLearn is a comprehensive machine learning library for the Go programming language designed to provide both simplicity and customizability. It implements a scikit-learn-like Fit/Predict interface and includes essential utilities for common ML workflows, such as data loading, algorithm implementations, and model evaluation.

Target Audience

Go developers and data scientists who want to implement machine learning models directly in Go, particularly those familiar with scikit-learn's patterns and seeking a 'batteries included' library with a straightforward API.

Value Proposition

Developers choose GoLearn for its familiar scikit-learn interface, which allows easy estimator swapping and experimentation, combined with the performance and concurrency benefits of Go. It offers a balance of simplicity for common tasks and customizability for advanced use cases.

Overview

Machine Learning for Go

Use Cases

Best For

  • Implementing machine learning models in Go with a scikit-learn-like workflow
  • Loading and manipulating structured data (like CSV files) as Instances for ML tasks
  • Training and evaluating classifiers such as K-Nearest Neighbors (KNN) and decision trees
  • Performing model evaluation with metrics like precision, recall, accuracy, and confusion matrices
  • Splitting data into train/test sets and conducting cross-validation in Go applications
  • Experimenting with different estimators quickly due to the standardized Fit/Predict interface

Not Ideal For

  • Projects requiring deep learning or state-of-the-art algorithms like neural networks or transformers
  • Environments where Python's extensive ML ecosystem (e.g., scikit-learn, TensorFlow) is necessary for advanced workflows
  • Teams needing robust community support and a wide range of third-party integrations
  • Production systems that demand highly optimized, battle-tested ML libraries with frequent updates and large-scale deployments

Pros & Cons

Pros

Familiar Scikit-learn Interface

Implements the Fit/Predict pattern, allowing easy estimator swapping and experimentation, which reduces the learning curve for developers familiar with Python's scikit-learn.

Comprehensive Data Handling

Loads data as Instances with CSV parsing and matrix-like operations, similar to DataFrames in R or Pandas, providing essential utilities for preprocessing and manipulation.

Built-in Model Evaluation

Includes tools for generating confusion matrices and calculating metrics like precision, recall, and accuracy, streamlining the assessment of model performance.

Cross-Validation Utilities

Offers helper functions for train-test splits and cross-validation, as shown in the examples, which simplifies model development and validation workflows.

Cons

Limited Algorithm Variety

Only includes basic algorithms like KNN and decision trees, lacking many modern ML methods such as ensemble learning or neural networks, which limits its applicability for advanced tasks.

Smaller Ecosystem and Support

Being a Go library, it has fewer contributors and community resources compared to Python ML libraries, potentially leading to slower bug fixes and fewer extensions.

Potential Breaking Changes

Active development, as mentioned in the README, could result in API changes that disrupt existing code, requiring extra maintenance effort for users.

Frequently Asked Questions

Quick Stats

Stars9,442
Forks1,169
Contributors0
Open Issues80
Last commit2 years ago
CreatedSince 2013

Tags

#data-science#model-evaluation#classification#go-library#cross-validation#knn#machine-learning

Built With

G
Go

Included in

Go169.1kMachine Learning72.2k
Auto-fetched 4 hours ago

Related Projects

PyTorch - Tensors and Dynamic neural networks in Python with strong GPU accelerationPyTorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration

Tensors and Dynamic neural networks in Python with strong GPU acceleration

Stars101,899
Forks28,473
Last commit3 hours ago
keraskeras

Deep Learning for humans

Stars64,175
Forks19,744
Last commit1 day ago
streamlitstreamlit

Streamlit — A faster way to build and share data apps.

Stars45,326
Forks4,331
Last commit8 hours ago
gradiogradio

Build and share delightful machine learning apps, all in Python. 🌟 Star to support our work!

Stars43,191
Forks3,557
Last commit6 hours ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub