Skip to content
Machine Learning SalonFree learning resources

Software

Open source software

Libraries, frameworks and tools for building machine learning systems.

Convex Optimization in Julia by Madeleine Udell, Karanveer Mohan, David Zeng

This paper describes Convex1, a convex optimization mod eling framework in Julia. Convex translates problems from a user friendly functional language into an abstract syntax tree describing the problem. This concise representation of the global structure of the problem allows Convex to infer whether the problem complies with the rules of disciplined convex programming (DCP), and to pass the problem to a suitable solver. These operations are carried out in Julia us ing multiple dispatch, which dramatically reduces the time required to verify DCP compliance and to parse a problem into conic form. Convex then automatically chooses an ap propriate backend solver to solve the conic form problem.

stanford.edu

San Francisco Last March Crime Visual Analysis Tutorial in R (in Chinese)

I hope to answer the following questions:

Where to park the most dangerous?

SF safest place? Weekly day / what time the most dangerous?

Whether a particular theft is more common in a certain area?

Prepare analysis package

We use dplyr to organize data, ggplot2 and ggmap for data visualization.

Preparing the Data

First set the working directory, read into the data. And then to format the date, but do we have the time to divide by the hour, without regard to minutes.

And so on with Google Translate ...

www.moozhi.com

Great R tutorials from the same person (in Chinese)

www.moozhi.com

PS: No need to speak Chinese to follow the tutorials. However, in addition to Google Translate, this link might be sometimes helpful:

www.linguee.com

Python Tutorials by Jessica MacKellar (scroll down to access talks)

I am a startup founder, software engineer, and open source developer living in San Francisco, California.

I enjoy the Internet, networking, low level systems engineering, relational databases, tinkering on electronics projects, and contributing to and helping other people contribute to open source software.

"Be the change you wish to see in the world" may be clichéd, but what can I say, I believe in it. I am committed to applying my skills, in individual and collective efforts, to improve the world. Right now, this means I spend a lot of time volunteering, engaging technologists about education, and empowering effective people and initiatives in my capacity as a Director for the Python Software Foundation.

web.mit.edu

Stan Software

Stan is a probabilistic programming language implementing full Bayesian statistical inference with

• MCMC sampling (NUTS, HMC)

• and penalized maximum likelihood estimation with

• Optimization (BFGS)

• Stan is coded in C++ and runs on all major platforms (Linux, Mac, Windows).

• Stan is freedom respecting, open source software (new BSD core, GPLv3 interfaces).

Interfaces

Download and getting started instructions, organized by interface:

• RStan v2.5.0 (R)

• PyStan v2.5.0 (Python)

• CmdStan v2.5.0 (shell, command line terminal)

• MatlabStan (MATLAB)

• Stan.jl (Julia)

mc stan.org

Julia

Julia is a high level, high performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library. The library, largely written in Julia itself, also integrates mature, best of breed C and Fortran libraries for linear algebra, random number generation, signal processing, and string processing. In addition, the Julia developer community is contributing a number of external packages through Julia’s built in package manager at a rapid pace. IJulia, a collaboration between the IPython and Julia communities, provides a powerful browser based graphical notebook interface to Julia.

Julia programs are organized around multiple dispatch; by defining functions and overloading them for different combinations of argument types, which can also be user defined. For a more in depth discussion of the rationale and advantages of Julia over other systems, see the following highlights or read the introduction in the online manual.

julialang.org

Links before 24 oct 2014

Joseph Misiti's Blog

A curated list of awesome machine learning frameworks, libraries and software (by language). Inspired by awesome php. Other awesome lists can be found in the awesome awesomeness list.

github.com

JAVA

Weka 3: Data Mining Software in Java

Weka is a collection of machine learning algorithms for data mining tasks. The algorithms can either be applied directly to a dataset or called from your own Java code. Weka contains tools for data pre processing, classification, regression, clustering, association rules, and visualization. It is also well suited for developing new machine learning schemes.

www.cs.waikato.ac.nz

A deep learning library for Java

Distributed Deep Learning Platform for Java

github.com

PYTHON

Scikit learn, Machine Learning in Python

Simple and efficient tools for data mining and data analysis

Accessible to everybody, and reusable in various contexts

Built on NumPy, SciPy, and matplotlib

Open source, commercially usable, BSD license

scikit learn.org

Pydata

PyData is a gathering of users and developers of data analysis tools in Python. The goals are to provide Python enthusiasts a place to share ideas and learn from each other about how best to apply our language and tools to ever evolving challenges in the vast realm of data management, processing, analytics, and visualization.

www.youtube.com

Anaconda

Completely free enterprise ready Python distribution for large scale data processing, predictive analytics, and scientific computing

We want to ensure that Python, NumPy, SciPy, Pandas, IPython, Matplotlib, Numba, Blaze, Bokeh, and other great Python data analysis tools can be used everywhere.

We want to make it easier for Python evangelists and teachers to promote the use of Python.

We want to give back to the Python community that we love being a part of.

store.continuum.io

Ipython Interactive Computing

IPython provides a rich architecture for interactive computing with:

Powerful interactive shells (terminal and Qt based).

A browser based notebook with support for code, text, mathematical expressions, inline plots and other rich media.

Support for interactive data visualization and use of GUI toolkits.

Flexible, embeddable interpreters to load into your own projects.

Easy to use, high performance tools for parallel computing.

ipython.org

Scipy

SciPy refers to several related but distinct entities:

• The SciPy Stack, a collection of open source software for scientific computing in Python, and particularly a specified set of core packages.

• The community of people who use and develop this stack.

• Several conferences dedicated to scientific computing in Python, SciPy, EuroSciPy and SciPy.in.

The SciPy library, one component of the SciPy stack, providing many numerical routines.

www.scipy.org

Numpy

NumPy is the fundamental package for scientific computing with Python. It contains among other things:

• a powerful N dimensional array object

• sophisticated (broadcasting) functions

• tools for integrating C/C++ and Fortran code

• useful linear algebra, Fourier transform, and random number capabilities

Besides its obvious scientific uses, NumPy can also be used as an efficient multi dimensional container of generic data. Arbitrary data types can be defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.

www.numpy.org

matplotlib

matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. matplotlib can be used in python scripts, the python and ipython shell (ala MATLAB®* or Mathematica®†), web application servers, and six graphical user interface toolkits.

matplotlib.org

pandas

Python Data Analysis Library¶

pandas is an open source, BSD licensed library providing high performance, easy to use data structures and data analysis tools for the Python programming language.

pandas.pydata.org

SymPy

SymPy is a Python library for symbolic mathematics.

sympy.org

PyCon US 2014

PyCon is the largest annual gathering for the community using and developing the open source Python programming language. It is produced and underwritten by the Python Software Foundation, the 501(c)(3) nonprofit organization dedicated to advancing and promoting Python. Through PyCon, the PSF advances its mission of growing the international community of Python programmers.

Because PyCon is backed by the non profit PSF, we keep registration costs much lower than comparable technology conferences so that PyCon remains accessible to the widest group possible. The PSF also pays for the ongoing development of the software that runs PyCon and makes it available under a liberal open source license.

140 videos

pyvideo.org

SciPy 2014

SciPy is a community dedicated to the advancement of scientific computing through open source Python software for mathematics, science, and engineering. The annual SciPy Conference allows participants from all types of organizations to showcase their latest projects, learn from skilled users and developers, and collaborate on code development.

pyvideo.org

Orange

Open source data visualization and analysis for novice and experts. Data mining through visual programming or Python scripting. Components for machine learning. Add ons for bioinformatics and text mining. Packed with features for data analytics.

orange.biolab.si

Pythonic Perambulations: How to be a Bayesian in Python

Below I'll explore three mature Python packages for performing Bayesian analysis via MCMC:

emcee: the MCMC Hammer

pymc: Bayesian Statistical Modeling in Python

pystan: The Python Interface to Stan

jakevdp.github.io

emcee

emcee is an extensible, pure Python implementation of Goodman & Weare's Affine Invariant Markov chain Monte Carlo (MCMC) Ensemble sampler. It's designed for Bayesian parameter estimation and it's really sweet!

dan.iel.fm

PyMC

PyMC is a python module that implements Bayesian statistical models and fitting algorithms, including Markov chain Monte Carlo. Its flexibility and extensibility make it applicable to a large suite of problems. Along with core sampling functionality, PyMC includes methods for summarizing output, plotting, goodness of fit and convergence diagnostics.

pymc devs.github.io

Pylearn2

Ian J. Goodfellow, David Warde Farley, Pascal Lamblin, Vincent Dumoulin, Mehdi Mirza, Razvan Pascanu, James Bergstra, Frédéric Bastien, and Yoshua Bengio. "Pylearn2: a machine learning research library". arXiv preprint arXiv:1308.4214 (BibTeX)

github.com

Giant list of python learning resources

Keep following this post, we'll keep updating this huge list & collection.

python2web.com

PyLadies London Meetup resources

PyLadies is an international mentorship group with a focus on helping more women and genderqueers become active participants and leaders in the Python open source community. Our mission is to promote, educate and advance a diverse Python community through outreach, education, conferences, events, and social gatherings. PyLadies also aims to provide a friendly support network for women and genderqueers, and a bridge to the larger Python world.

github.com

OTHER

Octave

GNU Octave is a high level interpreted language, primarily intended for numerical computations. It provides capabilities for the numerical solution of linear and nonlinear problems, and for performing other numerical experiments. It also provides extensive graphics capabilities for data visualization and manipulation. Octave is normally used through its interactive command line interface, but it can also be used to write non interactive programs. The Octave language is quite similar to Matlab so that most programs are easily portable.

www.gnu.org

The R project for Statistical Computing

R is a language and environment for statistical computing and graphics…

R provides a wide variety of statistical (linear and nonlinear modelling, classical statistical tests, time series analysis, classification, clustering, ...) and graphical techniques, and is highly extensible. The S language is often the vehicle of choice for research in statistical methodology, and R provides an Open Source route to participation in that activity.

One of R's strengths is the ease with which well designed publication quality plots can be produced, including mathematical symbols and formulae where needed. Great care has been taken over the defaults for the minor design choices in graphics, but the user retains full control.

www.r project.org

R Graph Gallery

The blog is a collection of script examples with example data and output plots. R produce excellent quality graphs for data analysis, science and business presentation, publications and other purposes. Self help codes and examples are provided. Enjoy nice graphs !!

rgraphgallery.blogspot.co.uk

Code School, R Course

Learn the R programming language for data analysis and visualization. This software programming language is great for statistical computing and graphics.

www.codeschool.com

Coursera R programming

In this course you will learn how to program in R and how to use R for effective data analysis. You will learn how to install and configure software necessary for a statistical programming environment and describe generic programming language concepts as they are implemented in a high level statistical language. The course covers practical issues in statistical computing which includes programming in R, reading data into R, accessing R packages, writing R functions, debugging, profiling R code, and organizing and commenting R code. Topics in statistical data analysis will provide working examples.

www.coursera.org

Open Intro R Labs

OpenIntro Labs promote the understanding and application of statistics through applied data analysis. The statistical software R is a widely used and stable software that is free. RStudio is a user friendly interface for R.

www.openintro.org

R Tutorial

• Hierarchical Linear Model

• Bayesian Classification with Gaussian Process

• Bayesian Inference Using OpenBUGS

• Significance Test for Kendall's Tau b

• Support Vector Machine with GPU, Part II

• Hierarchical Cluster Analysis

www.r tutor.com

DataCamp R Course

• Introduction to R

• Data Analysis and Statistical Inference

• Introduction to Computational Finance and Financial Econometrics

• How to work with Quandl in R

www.datacamp.com

R Bloggers

R Bloggers.com is a central hub (e.g: A blog aggregator) of content collected from bloggers who write about R (in English). The site will help R bloggers and users to connect and follow the “R blogosphere” (you can view a 7 minute talk, from useR2011, for more information about the R blogosphere).

www.r bloggers.com

List of Machine Learning Open Source Software

To support the open source software movement, JMLR MLOSS publishes contributions related to implementations of non trivial machine learning algorithms, toolboxes or even languages for scientific computing.

jmlr.org

Google Prediction API

Google's cloud based machine learning tools can help analyze your data to add the following features to your applications: Customer sentiment analysis, Message routing decisions, Document and email classification, Recommendation systems, Churn analysis, Spam detection, Upsell opportunity analysis, Diagnostics, Suspicious activity identification, and much more …

Free Quota:

Usage is free for the first six months, up to the following limits per Google Developers Console project. This free quota applies even when billing is enabled, until the six month expiration time.

Usage limits:

Predictions: 100 predictions/day

Hosted model predictions: Hosted models have a usage limit of 100 predictions/day/user across all models.

Training: 5MB trained/day

Streaming updates: 100 streaming updates/day

Lifetime cap: 20,000 predictions.

Expiration: Free quota expires six months after activating Google Prediction for your project in the Google Developers Console.

developers.google.com

Reddit

Reddit /ˈrɛdɪt/,[3] stylized as reddit,[4] is an entertainment, social networking service and news website where registered community members can submit content, such as text posts or direct links. Only registered users can then vote submissions "up" or "down" to organize the posts and determine their position on the site's pages. Content entries are organized by areas of interest called "subreddits". (source Wikipedia)

www.reddit.com

Schogun toolbox

A large scale machine learning toolbox.

SHOGUN is designed for unified large scale learning for a broad range of feature types and learning settings, like classification, regression, or explorative data analysis.

www.shogun toolbox.org

Comparison between ML toolbox

docs.google.com

Infer.NET, Microsoft Research

Infer.NET is a framework for running Bayesian inference in graphical models. It can also be used for probabilistic programming as shown in this video.

You can use Infer.NET to solve many different kinds of machine learning problems, from standard problems like classification or clustering through to customised solutions to domain specific problems. Infer.NET has been used in a wide variety of domains including information retrieval, bioinformatics, epidemiology, vision, and many others.

A new feature in Infer.NET 2.5 is Fun, a library turns the simple succinct syntax of F# into a probabilistic modeling language for Bayesian machine learning. You can run your models with F# to compute synthetic data, and you can compile your models with the Infer.NET compiler for efficient inference. See the Infer.NET Fun website for additional information.

research.microsoft.com

F# Software Foundation

F# is ideally suited to machine learning because of its efficient execution, succinct style, data access capabilities and scalability. F# has been successfully used by some of the most advanced machine learning teams in the world, including several groups at Microsoft Research.

Try F# has some introductory machine learning algorithms. Further resources related to different aspects of machine learning are below.

See also the Math and Statistics and Data Science sections for related material.

fsharp.org

BigML

Now Free

Unlimited tasks (up to 16MB/Task)

bigml.com

BRML Toolbox in Matlab, David Barber Toolbox, University College London

web4.cs.ucl.ac.uk

Dmitry Efimov Software

mech.math.msu.su

Scilab

Scilab is free and open source software for numerical computation providing a powerful computing environment for engineering and scientific applications.

Scilab includes hundreds of mathematical functions. It has a high level programming language allowing access to advanced data structures, 2 D and 3d graphical functions.

www.scilab.org

OverFeat and Torch7, CILVR Lab @ NYU

OverFeat is an image recognizer and feature extractor built around a convolutional network.

The OverFeat convolutional net was trained on the ImageNet 1K dataset. It participated in the ImangeNet Large Scale Recognition Challenge 2013 under the name “OverFeat NYU”.

This release provides C/C++ code to run the network and output class probabilities or feature vectors. It also includes a webcam based demo.

Torch7 is an interactive development environment for machine learning and computer vision. It is an extension of the Lua language with a multidimensional numerical array library.

Lua is a very simple, compact and efficient interpreter/compiler with a straightforward syntax. It is used widely as a scripting language in the computer game industry. Torch extends Lua with an extensive numerical library and various facilities for machine learning and computer vision.

Torch has computational back ends for multicore/multi CPU machines (using Intel/AVX and OpenMP), NVidia GPUs (using CUDA), and ARM CPUs (using the Neon instruction set).

Many research projects at the CILVR Lab are built with Torch.

cilvr.nyu.edu

Mloss.org

Our goal is to support a community creating a comprehensive open source machine learning environment. Ultimately, open source machine learning software should be able to compete with existing commercial closed source solutions. To this end, it is not enough to bring existing and freshly developed toolboxes and algorithmic implementations to people's attention. More importantly the MLOSS platform will facilitate collaborations with the goal of creating a set of tools that work with one another. Far from requiring integration into a single package, we believe that this kind of interoperability can also be achieved in a collaborative manner, which is especially suited to open source software development practices.

mloss.org

Sourceforge

Find, Create, and Publish Open Source Software for free

sourceforge.net

Freecode

Freecode maintains the Web's largest index of Linux, Unix and cross platform software, and mobile applications. Thousands of applications, which are preferably released under an open source license, are meticulously cataloged in the Freecode database, and links to new applications are added daily. Each entry provides a description of the software, links to download it and to obtain more information, and a history of the project's releases, so readers can keep up to date on the latest developments.

Freecode is the first stop for Linux users hunting for the software they need for work or play. It is continuously updated with the latest developments from the "release early, release often" community. In addition to providing news on new releases, Freecode offers a variety of original content on technical, political, and social aspects of software and programming, written by both Freecode readers and Free Software luminaries. The comment board attached to each page serves as a home for spirited discussion, bug reports, and technical support. An essential resource for serious developers, Freecode makes it possible to keep up on who's doing what, and what everyone else thinks of it.

freecode.com

Maxim Milakov Software

I am a researcher in machine learning and high performance computing.

I designed and implemented nnForge, a library for training convolutional and fully connected neural networks, with CPU and GPU (CUDA) backends.

You will find my thoughts on convolutional neural networks and the results of applying convolutional ANNs for various classification tasks in the Blog.

www.milakov.org

Alfonso Nieto Castanon Software

www.alfnie.com

Lib Skylark

The Sketching based Matrix computations for Machine Learning is a library for matrix computations suitable for general statistical data analysis and optimization applications.

Many tasks in machine learning and statistics ultimately end up being problems involving matrices: whether you're finding the key players in the bitcoin market, or inferring where tweets came from, or figuring out what's in sewage, you'll want to have a toolkit for least squares and robust regression, eigenvector analysis, non negative matrix factorization, and other matrix computations.

Sketching is a way to compress matrices that preserves key matrix properties; it can be used to speed up many matrix computations. Sketching takes a given matrix A and produces a sketch matrix B that has fewer rows and/or columns than A. For a good sketch B, if we solve a problem with input B, the solution will also be pretty good for input A. For some problems, sketches can also be used to get faster ways to find high precision solutions to the original problem. In other cases, sketches can be used to summarize the data by identifying the most important rows or columns.

A simple example of sketching is just sampling the rows (and/or columns) of the matrix, where each row (and/or column) is equally likely to be sampled. This uniform sampling is quick and easy, but doesn't always yield good sketches; however, there are sophisticated sampling methods that do yield good sketches.

xdata skylark.github.io

Open Source Hong Kong

Open Source Hong Kong (OSHK) is an open source organization in Hong Kong which is aimed to advocate open source and technologies developments.

opensource.hk

Lamda Group, Nanjing University

Open Source Software

lamda.nju.edu.cn

More to be added ...

The

Machine Learning

Salon

Download

Menu