A curated list of awesome Machine Learning frameworks, libraries and software.
Go to file
Joseph Misiti e14aff2ca5 updates
2014-07-15 21:31:00 -04:00
README.md updates 2014-07-15 21:31:00 -04:00

A curated list of awesome machine learning frameworks, libraries and software (by language). Inspired by awesome-php.

If you want to contribute to this list, send me a pull request or contact me @josephmisiti

Python

Natural Language Processing

  • NLTK - A leading platform for building Python programs to work with human language data.
  • Pattern - A web mining module for the Python programming language. It has tools for natural language processing, machine learning, among others.
  • TextBlob - Providing a consistent API for diving into common natural language processing (NLP) tasks. Stands on the giant shoulders of NLTK and Pattern, and plays nicely with both.
  • jieba - Chinese Words Segementation Utilities.
  • SnowNLP - A library for processing Chinese text.
  • loso - Another Chinese segmentation library.
  • genius - A Chinese segment base on Conditional Random Field.

General-Purpose Machine Learning

  • scikit-learn - A Python module for machine learning built on top of SciPy.
  • pattern - Web mining module for Python.
  • NuPIC - Numenta Platform for Intelligent Computing.
  • Pylearn2 - A Machine Learning library based on Theano.
  • hebel - GPU-Accelerated Deep Learning Library in Python.
  • gensim - Topic Modelling for Humans.
  • PyBrain - Another Python Machine Learning Library.
  • Crab - A flexible, fast recommender engine.
  • python-recsys - A Python library for implementing a Recommender System.
  • BayesPy

Data Analysis / Data Visualization

  • SciPy - A Python-based ecosystem of open-source software for mathematics, science, and engineering.
  • NumPy - A fundamental package for scientific computing with Python.
  • Numba - Python JIT (just in time) complier to LLVM aimed at scientific Python by the developers of Cython and NumPy.
  • NetworkX - A high-productivity software for complex networks.
  • Pandas - A library providing high-performance, easy-to-use data structures and data analysis tools.
  • Open Mining - Business Intelligence (BI) in Python (Pandas web interface)
  • PyMC - Markov Chain Monte Carlo sampling toolkit.
  • zipline - A Pythonic algorithmic trading library.
  • PyDy - Short for Python Dynamics, used to assist with workflow in the modeling of dynamic motion based around NumPy, SciPy, IPython, and matplotlib.
  • SymPy - A Python library for symbolic mathematics.
  • statsmodels - Statistical modeling and econometrics in Python.
  • astropy - A community Python library for Astronomy.
  • matplotlib - A Python 2D plotting library.
  • bokeh - Interactive Web Plotting for Python.
  • plotly - Collaborative web plotting for Python and matplotlib.
  • vincent - A Python to Vega translator.
  • d3py - A plottling library for Python, based on D3.js.
  • ggplot - Same API as ggplot2 for R.
  • Kartograph.py - Rendering beautiful SVG maps in Python.
  • pygal - A Python SVG Charts Creator.
  • pycascading

Misc Scripts / iPython Notebooks

Ruby

Natural Language Processing

  • Treat - Text REtrieval and Annotation Toolkit, definitely the most comprehensive toolkit Ive encountered so far for Ruby
  • Ruby Linguistics - Linguistics is a framework for building linguistic utilities for Ruby objects in any language. It includes a generic language-independant front end, a module for mapping language codes into language names, and a module which contains various English-language utilities.
  • Stemmer - Expose libstemmer_c to Ruby
  • Ruby Wordnet - This library is a Ruby interface to WordNet
  • Raspel - raspell is an interface binding for ruby
  • UEA Stemmer - Ruby port of UEALite Stemmer - a conservative stemmer for search and indexing
  • Twitter-text-rb - A library that does auto linking and extraction of usernames, lists and hashtags in tweets

General-Purpose Machine Learning

Data Analysis / Data Visualization

  • rsruby - Ruby - R bridge
  • data-visualization-ruby - Source code and supporting content for my Ruby Manor presentation on Data Visualisation with Ruby
  • ruby-plot - gnuplot wrapper for ruby, especially for plotting roc curves into svg files
  • plot-rb - A plotting library in Ruby built on top of Vega and D3.
  • scruffy - A beautiful graphing toolkit for Ruby
  • SciRuby
  • Glean - A data management tool for humans
  • Bioruby
  • Arel

Misc

R

General-Purpose Machine Learning

Data Analysis / Data Visualization

Javascript

Natural Language Processing

Data Analysis / Data Visualization

General-Purpose Machine Learning

Scala

Natural Language Processing

  • ScalaNLP - ScalaNLP is a suite of machine learning and numerical computing libraries.
  • Breeze - Breeze is a numerical processing library for Scala.
  • Chalk - Chalk is a natural language processing library.
  • FACTORIE - FACTORIE is a toolkit for deployable probabilistic modeling, implemented as a software library in Scala. It provides its users with a succinct language for creating relational factor graphs, estimating parameters and performing inference.

Data Analysis / Data Visualization

General-Purpose Machine Learning

Java

Natural Language Processing

General-Purpose Machine Learning

  • Mahout - Distributed machine learning
  • Stanford Classifier - A classifier is a machine learning tool that will take data items and place them into one of k classes.

Data Analysis / Data Visualization

  • Hadoop - Hadoop/HDFS
  • Spark - Spark is a fast and general engine for large-scale data processing.
  • Impala - Real-time Query for Hadoop

Go

Natural Language Processing

  • go-porterstemmer - A native Go clean room implementation of the Porter Stemming algorithm.
  • paicehusk - Golang implementation of the Paice/Husk Stemming Algorithm
  • snowball - Snowball Stemmer for Go.

General-Purpose Machine Learning

  • Go Learn - Machine Learning for Go
  • go-pr - Pattern recognition package in Go lang.
  • bayesian - Naive Bayesian Classification for Golang.
  • go-galib - Genetic Algorithms library written in Go / golang

Data Analysis / Data Visualization

  • go-graph - Graph library for Go/golang language.
  • SVGo - The Go Language library for SVG generation

Matlab

Natural Language Processing

  • NLP - An NLP library for Matlab

General-Purpose Machine Learning

Data Analysis / Data Visualization

  • matlab_gbl - MatlabBGL is a Matlab package for working with graphs.
  • gamic - Efficient pure-Matlab implementations of graph algorithms to complement MatlabBGL's mex functions.

Julia

General-Purpose Machine Learning

  • PGM - A Julia framework for probabilistic graphical models.
  • DA - Julia package for Regularized Discriminant Analysis
  • Regression - Algorithms for regression analysis (e.g. linear regression and logistic regression)
  • Local Regression - Local regression, so smooooth!
  • Naive Bayes - Simple Naive Bayes implementation in Julia
  • Mixed Models - A Julia package for fitting (statistical) mixed-effects models
  • Simple MCMC - basic mcmc sampler implemented in Julia
  • Distance - Julia module for Distance evaluation
  • Decision Tree - Decision Tree Classifier and Regressor
  • Neural - A neural network in Julia
  • MCMC - MCMC tools for Julia
  • GLM - Generalized linear models in Julia
  • Online Learning
  • GLMNet - Julia wrapper for fitting Lasso/ElasticNet GLM models using glmnet
  • Clustering - Basic functions for clustering data: k-means, dp-means, etc.
  • SVM - SVM's for Julia
  • Kernal Density - Kernel density estimators for julia
  • Dimensionality Reduction - Methods for dimensionality reduction
  • NMF - A Julia package for non-negative matrix factorization

Natural Language Processing

Data Analysis / Data Visualization

  • Graph Layout - Graph layout algorithms in pure Julia

  • Data Frames Meta - Metaprogramming tools for DataFrames

  • Julia Data - library for working with tabular data in Julia

  • Data Read - Read files from Stata, SAS, and SPSS

  • Hypothesis Tests - Hypothesis tests for Julia

  • Gladfly - Crafty statistical graphics for Julia.

  • Stats - Statistical tests for Julia

  • RDataSets - Julia package for loading many of the data sets available in R

  • DataFrames - library for working with tabular data in Julia

  • Distributions - A Julia package for probability distributions and associated functions.

  • Data Arrays - Data structures that allow missing values

  • Time Series - Time series toolkit for Julia

  • Sampling - Basic sampling algorithms for Julia

Misc Stuff / Presentations

Credits

  • Some of the python libraries were cut-and-pasted from vinta
  • The few go reference I found where pulled from this page