Top 20 Python Machine Learning Open Source Projects

We examine top Python Machine learning open source projects on Github, both in terms of contributors and commits, and identify most popular and most active ones.
By Bhavya Geethika Peddibhotla. 

We analyze Top 20 Python Machine learning projects on GitHub and find that scikit-Learn, PyLearn2 and NuPic are the most actively contributed projects. Explore these popular projects on Github! 

top-python-machine-learning-projects
Fig. 1: Python Machine learning projects on GitHub, with color corresponding to commits/contributors. Bob, Iepy, Nilearn, and NuPIC have the highest such value. 

  1. scikit-learn, 18845 commits, 404 contributors, 
    www.github.com/scikit-learn/scikit-learn 
    scikit-learn is a Python module for machine learning built on top of SciPy.It features various classification, regression and clustering algorithms including support vector machines, logistic regression, naive Bayes, random forests, gradient boosting, k-means and DBSCAN, and is designed to interoperate with the Python numerical and scientific libraries NumPy and SciPy.
  2. Pylearn2, 7027 commits, 117 contributors, 
    www.github.com/lisa-lab/pylearn2 
    Pylearn2 is a library designed to make machine learning research easy. Its a library based on Theano
  3. NuPIC, 4392 commits, 60 contributors, 
    www.github.com/numenta/nupic 
    The Numenta Platform for Intelligent Computing (NuPIC) is a machine intelligence platform that implements the HTM learning algorithms. HTM is a detailed computational theory of the neocortex. At the core of HTM are time-based continuous learning algorithms that store and recall spatial and temporal patterns. NuPIC is suited to a variety of problems, particularly anomaly detection and prediction of streaming data sources.
  4. Nilearn, 2742 commits, 28 contributors, 
    www.github.com/nilearn/nilearn 
    Nilearn is a Python module for fast and easy statistical learning on NeuroImaging data. It leverages the scikit-learn Python toolbox for multivariate statistics with applications such as predictive modeling, classification, decoding, or connectivity analysis.
  5. PyBrain, 969 commits, 27 contributors, 
    www.github.com/pybrain/pybrain 
    PyBrain is short for Python-Based Reinforcement Learning, Artificial Intelligence and Neural Network Library. Its goal is to offer flexible, easy-to-use yet still powerful algorithms for Machine Learning Tasks and a variety of predefined environments to test and compare your algorithms.
  6. Pattern, 943 commits, 20 contributors, 
    www.github.com/clips/pattern 
    Pattern is a web mining module for Python. It has tools for Data Mining, Natural Language Processing, Network Analysis and Machine Learning. It supports vector space model, clustering, classification using KNN, SVM, Perceptron
  7. Fuel, 497 commits, 12 contributors, 
    www.github.com/mila-udem/fuel 
    Fuel provides your machine learning models with the data they need to learn. it has interfaces to common datasets such as MNIST, CIFAR-10 (image datasets), Google's One Billion Words (text). It gives you the ability to iterate over your data in a variety of ways, such as in minibatches with shuffled/sequential examples
  8. Bob, 5080 commits, 11 contributors, 
    www.github.com/idiap/bob 
    Bob is a free signal-processing and machine learning toolbox The toolbox is written in a mix of Python and C++ and is designed to be both efficient and reduce development time. It is composed of a reasonably large number of packages that implement tools for image, audio & video processing, machine learning and pattern recognition
  9. skdata, 441 commits, 10 contributors, 
    www.github.com/jaberg/skdata 
    Skdata is a library of data sets for machine learning and statistics. This module provides standardized Python access to toy problems as well as popular computer vision and natural language processing data sets.
  10. MILK, 687 commits, 9 contributors, 
    www.github.com/luispedro/milk 
    Milk is a machine learning toolkit in Python. Its focus is on supervised classification with several classifiers available: SVMs, k-NN, random forests, decision trees. It also performs feature selection. These classifiers can be combined in many ways to form different classification systems.For unsupervised learning, milk supports k-means clustering and affinity propagation.
  11. IEPY, 1758 commits, 9 contributors, 
    www.github.com/machinalis/iepy 
    IEPY is an open source tool for Information Extraction focused on Relation Extraction 
    It's aimed at users needing to perform Information Extraction on a large dataset. scientists wanting to experiment with new IE algorithms.
  12. Quepy, 131 commits, 9 contributors, 
    www.github.com/machinalis/quepy 
    Quepy is a python framework to transform natural language questions to queries in a database query language. It can be easily customized to different kinds of questions in natural language and database queries. So, with little coding you can build your own system for natural language access to your database. 
    Currently Quepy provides support for Sparql and MQL query languages, with plans to extended it to other database query languages.
  13. Hebel, 244 commits, 5 contributors, 
    www.github.com/hannes-brt/hebel 
    Hebel is a library for deep learning with neural networks in Python using GPU acceleration with CUDA through PyCUDA. It implements the most important types of neural network models and offers a variety of different activation functions and training methods such as momentum, Nesterov momentum, dropout, and early stopping.
  14. mlxtend, 135 commits, 5 contributors, 
    www.github.com/rasbt/mlxtend 
    Its a library consisting of useful tools and extensions for the day-to-day data science tasks.
  15. nolearn, 192 commits, 4 contributors, 
    www.github.com/dnouri/nolearn 
    This package contains a number of utility modules that are helpful with machine learning tasks. Most of the modules work together with scikit-learn, others are more generally useful.
  16. Ramp, 179 commits, 4 contributors, 
    www.github.com/kvh/ramp 
    Ramp is a python library for rapid prototyping of machine learning solutions. It's a light-weight pandas-based machine learning framework pluggable with existing python machine learning and statistics tools (scikit-learn, rpy2, etc.). Ramp provides a simple, declarative syntax for exploring features, algorithms and transformations quickly and efficiently.
  17. Feature Forge, 219 commits, 3 contributors, 
    www.github.com/machinalis/featureforge 
    A set of tools for creating and testing machine learning features, with a scikit-learn compatible API. 
    This library provides a set of tools that can be useful in many machine learning applications (classification, clustering, regression, etc.), and particularly helpful if you use scikit-learn (although this can work if you have a different algorithm).
  18. REP, 50 commits, 3 contributors, 
    www.github.com/yandex/rep 
    REP is environment for conducting data-driven research in a consistent and reproducible way. It has a unified classifiers wrapper for variety of implementations like TMVA, Sklearn, XGBoost, uBoost. It can train classifiers in parallel on a cluster. It supports interactive plots
  19. Python Machine Learning Samples, 15 commits, 3 contributors, 
    www.github.com/awslabs/machine-learning-samples 
    A collection of sample applications built using Amazon Machine Learning.
  20. Python-ELM, 17 commits, 1 contributor, 
    www.github.com/dclambert/Python-ELM 
    This is an implementation of the Extreme Learning Machine in Python, based on scikit-learn.
This post used some content from www.pansop.com/1039/ 

What is feature engineering?

Just read a post from http://blog.bigml.com/2013/02/21/everything-you-wanted-to-know-about-machine-learning-but-were-too-afraid-to-ask-part-two/
What is Feature Engineering?
teachFeature Engineering is the Keyer_key
We’ll start out this time with a topic that is so important that it deserves an instructive example. In fact, Domingos calls it “easily the most important factor” in determining the success of a machine learning project, and I agree with him.
Suppose you have a dataset in which you have pairs of cities, coupled with a prediction of whether most people would consider the two cities to be comfortably drivable within a single day. You’ve got a nice database with the longitudes and latitudes for all of your cities, and so these are your input fields. Your dataset might look something like this (note that the values don’t correspond to actual city locations – they are random):
CITY 1 LAT.CITY 1 LNG.CITY 2 LAT.CITY 2 LNG.DRIVABLE?
123.2446.71121.3347.34Yes
123.2456.91121.3355.23Yes
123.2446.71121.3355.34No
123.2446.71130.9947.34No
And you expect to construct a model that can predict for any two cities whether the distance is drivable or not.
Probably not going to happen.
The problem here is that no single input field, or even any single pair of fields, is closely correlated with the objective. It is a combination of all four fields (the distance from one pair of geo-coordinates to the other), and a combination by a fairly complex formula, that is correlated with the input. Machine learning algorithms are limited in the way they can combine input fields; if they weren’t, they could totally exhaust themselves trying everything.
But all is not lost! Even if the machine doesn’t have any knowledge about how longitudes and latitudes work, you do. So why don’t you do it? Apply the formula to each instance and get a dataset like this (again, random values):
DISTANCE (MI.)DRIVABLE?
14Yes
28Yes
705No
2432No
Ah. Much more manageable. This is what we mean by feature engineering. It’s when you use your knowledge about the data to create fields that make machine learning algorithms work better.
Domingos mentions that feature engineering is where “most of the effort in a machine learning project goes”. I couldn’t agree more. In my career, I would say an average of 70% of the project’s time goes into feature engineering, 20% goes towards figuring out what comprises a proper and comprehensive evaluation of the algorithm, and only 10% goes into algorithm selection and tuning.
How does one engineer a good feature? One good rule of thumb is to try to design features where the likelihood of a certain class goes upmonotonically with the value of the field. So in our example above, “drivable = no” is more likely as distance increases, but that’s not true of longitude or latitude. You probably won’t be able to engineer a feature where this is strictly true, but it is a good feature even if it is somewhat close to that ideal.
Typically, there isn’t a single data transformation that makes learning immediately easy (as there was in the above example), but at least as typically there are one or more things you can do to the data to make machine learning easier. There’s no formula for this, and a lot of it happens by itch and by twitch. BigML attempts to do some of the easy ones for you (automated date parsing is an example) but far more interesting transformations can happen with detailed knowledge of your specific data. Great things happen in machine learning when human and machine work together, combining a person’s knowledge of how to create relevant features from the data with the machine’s talent for optimization.

Machine Learning With Python


Gensim – Topic Modelling for Humans


Gensim is a free Python framework designed to automatically extract semantic topics from documents, as efficiently (computer-wise) and painlessly (human-wise) as possible.

Some other packages from Blei's website. online ldatmve(online) --Topic Model Visualization Engine, 

PyML – machine learning in Python

PyML is an interactive object oriented framework for machine learning written in Python. PyML focuses on SVMs and other kernel methods. It is supported on Linux and Mac OS X.
-----------------------------------------------------------------------------------------------

mlpy

mlpy is a Python module for Machine Learning built on top of NumPy/SciPy and the GNU Scientific Libraries.
mlpy provides a wide range of state-of-the-art machine learning methods for supervisedand unsupervised problems and it is aimed at finding a reasonable compromise among modularity, maintainability, reproducibility, usability and efficiency. mlpy is multiplatform, it works with Python 2 and 3 and it is Open Source, distributed under the GNU General Public License version 3.

scikit-learn: machine learning in Python

scikit-learn is a Python module integrating classic machine learning algorithms in the tightly-knit scientific Python world (numpyscipymatplotlib). It aims to provide simple and efficient solutions to learning problems, accessible to everybody and reusable in various contexts:machine-learning as a versatile tool for science and engineering.

NLTK Package

The Natural Language Toolkit (NLTK) is an open source Python library for Natural Language Processing. A free online book is available. (If you use the library for academic research, please cite the book.)
Steven Bird, Ewan Klein, and Edward Loper (2009). Natural Language Processing with Python. O’Reilly Media Inc. http://nltk.org/book

Theano

Theano is a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. Theano features:
  • tight integration with numpy – Use numpy.ndarray in Theano-compiled functions.
  • transparent use of a GPU – Perform data-intensive calculations up to 140x faster than with CPU.(float32 only)
  • efficient symbolic differentiation – Theano does your derivatives for function with one or many inputs.
  • speed and stability optimizations – Get the right answer for log(1+x) even when x is really tiny.
  • dynamic C code generation – Evaluate expressions faster.
  • extensive unit-testing and self-verification – Detect and diagnose many types of mistake.
Check out how Theano can be used for Machine Learning: Deep Learning Tutorials and
the source code here

sluggerml

SluggerML- baseball stats!

Using datasets from retrosheet.org and seanlahman.com/baseball-archive/statistics.

Depends on scikit-learn and python-nltk (and reportlab if you're building reports).

On Debian, requires the following to build the aforementioned:
python-dev
python-numpy
python-scipy

MDP

The Modular toolkit for Data Processing (MDP) package is a library of widely used data processing algorithms, and the possibility to combine them together to form pipelines for building more complex data processing software.

From the user’s perspective, MDP consists of a collection of units, which process data. For example, these include algorithms for supervised and unsupervised learning, principal and independent components analysis and classification.

From the developer’s perspective, MDP is a framework that makes the implementation of new supervised and unsupervised learning algorithms easy and straightforward. The basic class, Node, takes care of tedious tasks like numerical type and dimensionality checking, leaving the developer free to concentrate on the implementation of the learning and execution phases.

What is Latent Class Analysis?

Some valuable links for LCA.

Popular Posts