# Machine Learning Libraries in Python

## Here are some popular machine learning libraries in Python

#### Computer Vision

- Scikit-Image – A collection of algorithms for image processing in Python.
- SimpleCV – An open source computer vision framework that gives access to several high-powered computer vision libraries, such as OpenCV. Written on Python and runs on Mac, Windows, and Ubuntu Linux.
- Vigranumpy – Python bindings for the VIGRA C++ computer vision library.
- OpenFace – Free and open source face recognition with deep neural networks.
- PCV – Open source Python module for computer vision

#### 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.
- Quepy – A python framework to transform natural language questions to queries in a database query language
- 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.
- YAlign – A sentence aligner, a friendly tool for extracting parallel sentences from comparable corpora.
- jieba – Chinese Words Segmentation Utilities.
- SnowNLP – A library for processing Chinese text.
- spammy – A library for email Spam filtering built on top of nltk
- loso – Another Chinese segmentation library.
- genius – A Chinese segment base on Conditional Random Field.
- KoNLPy – A Python package for Korean natural language processing.
- nut – Natural language Understanding Toolkit
- Rosetta – Text processing tools and wrappers (e.g. Vowpal Wabbit)
- BLLIP Parser – Python bindings for the BLLIP Natural Language Parser (also known as the Charniak-Johnson parser)
- PyNLPl – Python Natural Language Processing Library. General purpose NLP library for Python. Also contains some specific modules for parsing common NLP formats, most notably for FoLiA, but also ARPA language models, Moses phrasetables, GIZA++ alignments.
- python-ucto – Python binding to ucto (a unicode-aware rule-based tokenizer for various languages)
- python-frog – Python binding to Frog, an NLP suite for Dutch. (pos tagging, lemmatisation, dependency parsing, NER)
- python-zpar – Python bindings for ZPar, a statistical part-of-speech-tagger, constiuency parser, and dependency parser for English.
- colibri-core – Python binding to C++ library for extracting and working with with basic linguistic constructions such as n-grams and skipgrams in a quick and memory-efficient way.
- spaCy – Industrial strength NLP with Python and Cython.
- PyStanfordDependencies – Python interface for converting Penn Treebank trees to Stanford Dependencies.
- Distance – Levenshtein and Hamming distance computation
- Fuzzy Wuzzy – Fuzzy String Matching in Python
- jellyfish – a python library for doing approximate and phonetic matching of strings.
- editdistance – fast implementation of edit distance
- textacy – higher-level NLP built on Spacy
- stanford-corenlp-python – Python wrapper for Stanford CoreNLP

#### General-Purpose Machine Learning

- auto_ml – Automated machine learning pipelines for analytics and production. Handles some standard feature engineering, feature selection, model selection, model tuning, ensembling, and advanced scoring, in addition to logging output for analysts trying to understand their datasets.
- machine learning – automated build consisting of a web-interface, and set of programmatic-interface API, for support vector machines. Corresponding dataset(s) are stored into a SQL database, then generated model(s) used for prediction(s), are stored into a NoSQL datastore.
- XGBoost – Python bindings for eXtreme Gradient Boosting (Tree) Library
- Bayesian Methods for Hackers – Book/iPython notebooks on Probabilistic Programming in Python
- Featureforge A set of tools for creating and testing machine learning features, with a scikit-learn compatible API
- MLlib in Apache Spark – Distributed machine learning library in Spark
- scikit-learn – A Python module for machine learning built on top of SciPy.
- metric-learn – A Python module for metric learning.
- SimpleAI Python implementation of many of the artificial intelligence algorithms described on the book “Artificial Intelligence, a Modern Approach”. It focuses on providing an easy to use, well documented and tested library.
- astroML – Machine Learning and Data Mining for Astronomy.
- graphlab-create – A library with various machine learning models (regression, clustering, recommender systems, graph analytics, etc.) implemented on top of a disk-backed DataFrame.
- BigML – A library that contacts external servers.
- pattern – Web mining module for Python.
- NuPIC – Numenta Platform for Intelligent Computing.
- Pylearn2 – A Machine Learning library based on Theano.
- keras – Modular neural network library based on Theano.
- Lasagne – Lightweight library to build and train neural networks in Theano.
- hebel – GPU-Accelerated Deep Learning Library in Python.
- Chainer – Flexible neural network framework
- gensim – Topic Modelling for Humans.
- topik – Topic modelling toolkit
- PyBrain – Another Python Machine Learning Library.
- Brainstorm – Fast, flexible and fun neural networks. This is the successor of PyBrain.
- Crab – A ﬂexible, fast recommender engine.
- python-recsys – A Python library for implementing a Recommender System.
- thinking bayes – Book on Bayesian Analysis
- Restricted Boltzmann Machines -Restricted Boltzmann Machines in Python. [DEEP LEARNING]
- Bolt – Bolt Online Learning Toolbox
- CoverTree – Python implementation of cover trees, near-drop-in replacement for scipy.spatial.kdtree
- nilearn – Machine learning for NeuroImaging in Python
- imbalanced-learn – Python module to perform under sampling and over sampling with various techniques.
- Shogun – The Shogun Machine Learning Toolbox
- Pyevolve – Genetic algorithm framework.
- Caffe – A deep learning framework developed with cleanliness, readability, and speed in mind.
- breze – Theano based library for deep and recurrent neural networks
- pyhsmm – library for approximate unsupervised inference in Bayesian Hidden Markov Models (HMMs) and explicit-duration Hidden semi-Markov Models (HSMMs), focusing on the Bayesian Nonparametric extensions, the HDP-HMM and HDP-HSMM, mostly with weak-limit approximations.
- mrjob – A library to let Python program run on Hadoop.
- SKLL – A wrapper around scikit-learn that makes it simpler to conduct experiments.
- neurolab – https://github.com/zueve/neurolab
- Spearmint – Spearmint is a package to perform Bayesian optimization according to the algorithms outlined in the paper: Practical Bayesian Optimization of Machine Learning Algorithms. Jasper Snoek, Hugo Larochelle and Ryan P. Adams. Advances in Neural Information Processing Systems, 2012.
- Pebl – Python Environment for Bayesian Learning
- Theano – Optimizing GPU-meta-programming code generating array oriented optimizing math compiler in Python
- TensorFlow – Open source software library for numerical computation using data flow graphs
- yahmm – Hidden Markov Models for Python, implemented in Cython for speed and efficiency.
- python-timbl – A Python extension module wrapping the full TiMBL C++ programming interface. Timbl is an elaborate k-Nearest Neighbours machine learning toolkit.
- deap – Evolutionary algorithm framework.
- pydeep – Deep Learning In Python
- mlxtend – A library consisting of useful tools for data science and machine learning tasks.
- neon – Nervana’s high-performance Python-based Deep Learning framework [DEEP LEARNING]
- Optunity – A library dedicated to automated hyperparameter optimization with a simple, lightweight API to facilitate drop-in replacement of grid search.
- Neural Networks and Deep Learning – Code samples for my book “Neural Networks and Deep Learning” [DEEP LEARNING]
- Annoy – Approximate nearest neighbours implementation
- skflow – Simplified interface for TensorFlow, mimicking Scikit Learn.
- TPOT – Tool that automatically creates and optimizes machine learning pipelines using genetic programming. Consider it your personal data science assistant, automating a tedious part of machine learning.
- pgmpy A python library for working with Probabilistic Graphical Models.
- DIGITS – The Deep Learning GPU Training System (DIGITS) is a web application for training deep learning models.
- Orange – Open source data visualization and data analysis for novices and experts.
- MXNet – Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Go, Javascript and more.
- milk – Machine learning toolkit focused on supervised classification.
- TFLearn – Deep learning library featuring a higher-level API for TensorFlow.
- REP – an IPython-based environment for conducting data-driven research in a consistent and reproducible way. REP is not trying to substitute scikit-learn, but extends it and provides better user experience.
- rgf_python – Python bindings for Regularized Greedy Forest (Tree) Library.
- gym – OpenAI Gym is a toolkit for developing and comparing reinforcement learning algorithms.
- skbayes – Python package for Bayesian Machine Learning with scikit-learn API

#### 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.
- igraph – binding to igraph library – General purpose graph library
- 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 plotting library for Python, based on D3.js.
- PyDexter – Simple plotting for Python. Wrapper for D3xterjs; easily render charts in-browser.
- ggplot – Same API as ggplot2 for R.
- ggfortify – Unified interface to ggplot2 popular R packages.
- Kartograph.py – Rendering beautiful SVG maps in Python.
- pygal – A Python SVG Charts Creator.
- PyQtGraph – A pure-python graphics and GUI library built on PyQt4 / PySide and NumPy.
- pycascading
- Petrel – Tools for writing, submitting, debugging, and monitoring Storm topologies in pure Python.
- Blaze – NumPy and Pandas interface to Big Data.
- emcee – The Python ensemble sampling toolkit for affine-invariant MCMC.
- windML – A Python Framework for Wind Energy Analysis and Prediction
- vispy – GPU-based high-performance interactive OpenGL 2D/3D data visualization library
- cerebro2 A web-based visualization and debugging platform for NuPIC.
- NuPIC Studio An all-in-one NuPIC Hierarchical Temporal Memory visualization and debugging super-tool!
- SparklingPandas Pandas on PySpark (POPS)
- Seaborn – A python visualization library based on matplotlib
- bqplot – An API for plotting in Jupyter (IPython)
- pastalog – Simple, realtime visualization of neural network training performance.
- caravel – A data exploration platform designed to be visual, intuitive, and interactive.
- Dora – Tools for exploratory data analysis in Python.
- Ruffus – Computation Pipeline library for python.
- SOMPY – Self Organizing Map written in Python (Uses neural networks for data analysis).
- somoclu Massively parallel self-organizing maps: accelerate training on multicore CPUs, GPUs, and clusters, has python API.
- HDBScan – implementation of the hdbscan algorithm in Python – used for clustering
- visualize_ML – A python package for data exploration and data analysis.

#### Misc Scripts / iPython Notebooks / Codebases

- BioPy – Biologically-Inspired and Machine Learning Algorithms in Python.
- pattern_classification
- thinking stats 2
- hyperopt
- numpic
- 2012-paper-diginorm
- A gallery of interesting IPython notebooks
- ipython-notebooks
- data-science-ipython-notebooks – Continually updated Data Science Python Notebooks: Spark, Hadoop MapReduce, HDFS, AWS, Kaggle, scikit-learn, matplotlib, pandas, NumPy, SciPy, and various command lines.
- decision-weights
- Sarah Palin LDA – Topic Modeling the Sarah Palin emails.
- Diffusion Segmentation – A collection of image segmentation algorithms based on diffusion methods
- Scipy Tutorials – SciPy tutorials. This is outdated, check out scipy-lecture-notes
- Crab – A recommendation engine library for Python
- BayesPy – Bayesian Inference Tools in Python
- scikit-learn tutorials – Series of notebooks for learning scikit-learn
- sentiment-analyzer – Tweets Sentiment Analyzer
- sentiment_classifier – Sentiment classifier using word sense disambiguation.
- group-lasso – Some experiments with the coordinate descent algorithm used in the (Sparse) Group Lasso model
- jProcessing – Kanji / Hiragana / Katakana to Romaji Converter. Edict Dictionary & parallel sentences Search. Sentence Similarity between two JP Sentences. Sentiment Analysis of Japanese Text. Run Cabocha(ISO–8859-1 configured) in Python.
- mne-python-notebooks – IPython notebooks for EEG/MEG data processing using mne-python
- Neon Course – IPython notebooks for a complete course around understanding Nervana’s Neon
- pandas cookbook – Recipes for using Python’s pandas library
- climin – Optimization library focused on machine learning, pythonic implementations of gradient descent, LBFGS, rmsprop, adadelta and others
- Allen Downey’s Data Science Course – Code for Data Science at Olin College, Spring 2014.
- Allen Downey’s Think Bayes Code – Code repository for Think Bayes.
- Allen Downey’s Think Complexity Code – Code for Allen Downey’s book Think Complexity.
- Allen Downey’s Think OS Code – Text and supporting code for Think OS: A Brief Introduction to Operating Systems.
- Python Programming for the Humanities – Course for Python programming for the Humanities, assuming no prior knowledge. Heavy focus on text processing / NLP.
- GreatCircle – Library for calculating great circle distance.
- Optunity examples – Examples demonstrating how to use Optunity in synergy with machine learning libraries.
- Dive into Machine Learning with Python Jupyter notebook and scikit-learn – “I learned Python by hacking first, and getting serious
*later.*I wanted to do this with Machine Learning. If this is your style, join me in getting a bit ahead of yourself.” - TDB – TensorDebugger (TDB) is a visual debugger for deep learning. It features interactive, node-by-node debugging and visualization for TensorFlow.
- Suiron – Machine Learning for RC Cars.
- Introduction to machine learning with scikit-learn – IPython notebooks from Data School’s video tutorials on scikit-learn.
- Practical XGBoost in Python – comprehensive online course about using XGBoost in Python

#### Neural networks

- Neural networks – NeuralTalk is a Python+numpy project for learning Multimodal Recurrent Neural Networks that describe images with sentences.
- Neuron – Neuron is simple class for time series predictions. It’s utilize LNU (Linear Neural Unit), QNU (Quadratic Neural Unit), RBF (Radial Basis Function), MLP (Multi Layer Perceptron), MLP-ELM (Multi Layer Perceptron – Extreme Learning Machine) neural networks learned with Gradient descent or LeLevenberg–Marquardt algorithm.

#### Kaggle Competition Source Code

- wiki challenge – An implementation of Dell Zhang’s solution to Wikipedia’s Participation Challenge on Kaggle
- kaggle insults – Kaggle Submission for “Detecting Insults in Social Commentary”
- kaggle_acquire-valued-shoppers-challenge – Code for the Kaggle acquire valued shoppers challenge
- kaggle-cifar – Code for the CIFAR-10 competition at Kaggle, uses cuda-convnet
- kaggle-blackbox – Deep learning made easy
- kaggle-accelerometer – Code for Accelerometer Biometric Competition at Kaggle
- kaggle-advertised-salaries – Predicting job salaries from ads – a Kaggle competition
- kaggle amazon – Amazon access control challenge
- kaggle-bestbuy_big – Code for the Best Buy competition at Kaggle
- kaggle-bestbuy_small
- Kaggle Dogs vs. Cats – Code for Kaggle Dogs vs. Cats competition
- Kaggle Galaxy Challenge – Winning solution for the Galaxy Challenge on Kaggle
- Kaggle Gender – A Kaggle competition: discriminate gender based on handwriting
- Kaggle Merck – Merck challenge at Kaggle
- Kaggle Stackoverflow – Predicting closed questions on Stack Overflow
- kaggle_acquire-valued-shoppers-challenge – Code for the Kaggle acquire valued shoppers challenge
- wine-quality – Predicting wine quality