Awesome Machine Learning
repository·master·Indexed 13 days ago
https://github.com/josephmisiti/awesome-machine-learningA curated collection of machine learning frameworks, libraries, and software categorized by programming language, including Python, C, C++, Julia, R, Common Lisp, and Clojure. The resource provides categorized lists of tools for general-purpose ML, computer vision, NLP, speech recognition, and reinforcement learning, as well as links to educational resources such as books, courses, and events.
What's inside Awesome Machine Learning
- Awesome Machine Learning is a curated list of machine learning frameworks, libraries, and software organized by programming language. It serves as a central resource for developers looking for tools in specific ecosystems like Python, C++, Julia, R, and more.
Natural Language Processing libraries in Go
masterThe following Go libraries are available for Natural Language Processing (NLP) tasks:
- Cybertron: Transformers implementation in Go.
- snowball: Snowball Stemmer for Go.
- word-embedding: Full implementation of word2vec and GloVe in Go.
- sentences: Punkt sentence tokenizer implementation.
Note:
go-ngram,paicehusk, andgo-porterstemmerare deprecated.Spatial analysis and geometry libraries in Go
masterUse these Go libraries for handling spatial data and geometry:
- go-geom: Handles geometries.
- gogeo: Spherical geometry.
Computer Vision tools for MATLAB
masterMATLAB users can access several specialized transform and computer vision libraries:
- Transforms:
Contourlets,Shearlets,Curvelets(higher dimensional generalization of Wavelets), andBandlets. - OpenCV Integration:
mexopencvprovides a collection of MATLAB mex functions for the OpenCV library.
- Transforms:
Data Analysis and Visualization tools in Java
masterTools for distributed stream/batch processing and large-scale data analysis.
Core Technologies:
- Distributed Processing:
Apache Spark: Fast engine for large-scale data processing.Apache Flink: Platform for distributed stream and batch data processing.Apache Hadoop: Distributed storage and processing (HDFS).Storm: Distributed realtime computation system.Onyx: High-performance, fault-tolerant data processing written in Clojure.
- Querying & Analysis:
Impala: Real-time query engine for Hadoop.DataMelt: Software for numeric computation, statistics, and data visualization.
Note:
Dr. Michael Thomas Flanagan's Java Scientific Libraryis [Deprecated].- Distributed Processing:
General-Purpose Machine Learning libraries in Java
masterA variety of Java frameworks for machine learning, ranging from neural networks to distributed learning.
Key Frameworks:
- Deep Learning:
Deeplearning4j: Scalable deep learning with parallel GPU support.deepjavalibrary/djl: High-level, engine-agnostic framework designed for Java developers.
- Distributed Machine Learning:
MLlib (Apache Spark): Distributed ML library integrated with Spark.FlinkML (Apache Flink): Distributed ML library in Flink.Mahout: Distributed machine learning.H2O: Supports distributed learning on Hadoop, Spark, or locally via R, Python, Scala, and REST/JSON APIs.
- Neural Networks & Specialized Algorithms:
Encog: Advanced neural network framework with multithreaded training and GPU support.Neuroph: Lightweight neural network framework.Chips-n-Salsa: Genetic algorithms and evolutionary computation.liblinear-java: Java port of liblinear.knn-java-library: Implementation of K-Nearest Neighbors.
- Data Mining & Statistics:
Weka: Collection of algorithms for data mining tasks.ELKI: Toolkit for unsupervised data mining (clustering, outlier detection).Smile: Statistical Machine Intelligence & Learning Engine.rapaio: Statistics, data mining, and machine learning toolbox.
- Other:
Tribuo: Machine learning library by Oracle.SystemML: Flexible, scalable ML language.aerosolve: Human-friendly ML library by Airbnb.
- Deep Learning:
Machine Learning libraries for PHP
masterNatural Language Processing
- jieba-php: Chinese Words Segmentation Utilities.
General-Purpose Machine Learning
- PHP-ML: Comprehensive library covering algorithms, cross-validation, neural networks, preprocessing, and feature extraction.
- PredictionBuilder: Builds predictions using linear regression.
- Rubix ML: High-level machine learning library for building programs that learn from data.
- 19 Questions: Bayesian inference for assigning attributes to objects.
Machine Learning libraries for Fortran
masterFortran libraries focus on high-performance neural networks and Bayesian analysis.
neural-fortran: A parallel neural net microframework.ParaMonte: General-purpose library for Bayesian data analysis and visualization via serial/parallel Monte Carlo and MCMC simulations.
ML Development Environments and IDE Extensions
masterTools to enhance the coding and research experience for machine learning:
- Bread Dataset Viewer: VS Code extension for exploring large datasets (CSV, JSON, Parquet) without crashing the editor.
- Bread WandB Viewer: VS Code extension to view Weights & Biases experiments and logs directly within the IDE.
- CatalyzeX: Browser extension (Chrome/Firefox) that finds code implementations for ML papers on Google, Arxiv, etc.
- Deepnote: AI-first replacement for Jupyter with native data integrations and real-time collaboration.
- ML Workspace: Web-based IDE deployed as a Docker container, preloaded with popular libraries (TensorFlow, PyTorch) and tools (Jupyter, VS Code).
- Notebooks: A Jupyter notebook starter kit with Docker images for various Python and ML framework combinations.
Explore Educational Tools for Machine Learning
masterFor learning and visualizing machine learning concepts, use the following tools:
- NN Visual: Interactive visualizations for neural networks, backpropagation, attention mechanisms, and transformers.
- BESSER Neural Network Editor: A browser-based visual editor for designing neural networks that automatically generates PyTorch and TensorFlow code.
- layer: A command-line tool for performing neural network inference.
Explore Federated Learning frameworks in Python
masterIf you are working with decentralized data, the following Python libraries provide frameworks for federated learning, analytics, and privacy:
- Flower: A unified approach to federate any workload, ML framework, or programming language.
- PySyft: A library focused on secure and private Deep Learning.
- Tensorflow-Federated: A framework specifically for machine learning and computations on decentralized data using TensorFlow.
JavaScript Natural Language Processing (NLP) libraries
masterA collection of JavaScript libraries for natural language processing tasks, including text processing, entity extraction, sentiment analysis, and language identification.
Key libraries include:
natural: General natural language facilities for Node.js.nlp.js: Built onNatural, supports entity extraction, sentiment analysis, and automatic language identification.retext: An extensible system for analyzing and manipulating natural language.NLP Compromise: Designed for NLP in the browser.Twitter-text: JavaScript implementation of Twitter's text processing library.