Machine Learning Scientist, Software Engineer

I'm a Research Engineer at the NYU Center for Data Science, building a group to work on open source software for data science. Previously I was a Machine Learning Scientist at Amazon, working on computer vision and forecasting problems. I am one of the core developers of the scikit-learn machine learning library, and have maintained it for several years.

My mission is to create open tools to lower the barrier of entry for machine learning applications, promote reproducible science and democratize the access to high-quality machine learning algorithms.


scikit-learn logo


role: core developer, co-maintainer

Scikit-learn has emerged as one of the most popular open source machine learning toolkits, and is widely used in academia and industry. Scikit-learn provides easy-to-use interfaces to perform advanced analysis and build powerful predictive models.

Project website Github Repository

pystruct logo


role: author and maintainer

PyStruct is an easy-to-use Python library for performing structured learning and prediction. While this is a very active area of machine learning, few high-quality and easy to use tools exist. PyStruct provides a common interface for several widely used algorithms and use-cases.

Project website Github Repository

wordcloud logo


role: author and maintainer

A side-project that started as a weekend-hack, this simple word-cloud generator has found many friends in the python community. It uses a very differnt algorithm than the populare D3 variants inspired by wordl and allows arbitrary shapes and very dense packing of words.

Project website Github Repository

Selected Talks

Machine Learning with Scikit Learn

SciPy 2015 Tutorial with Kyle Kastner

The two times four hours of introductory tutorial from 2015 SciPy. Starting from what is machine learning to model building and more advanced topics. The material is loosely based on the 2013 SciPy tutorial by Olivier Grisel, Gael Varoquaux and Jake Vanderplas.

The session is split up into two videos.

Notebooks Second half


News from Scikit-Learn 0.16 and Soon-To-Be Gems for the Next Release

O'Reilly Webcast, live April 02 / 2015

Olivier Grisel and I give an overview of the 0.16 release, moderated by Ben Lorica. We also show off a couple of cool feature in the PRs, and there is a Q&A with the viewers at the end.

You need to register to see the video, but it is free.

O'Reilly Webcast

Advanced Scikit-Learn v2

Data Science Academy @ Microsoft Time Square 2015

A somewhat expanded version of my PyData NYC talk "Advanced scikit-learn", the talk briefly explains the scikit-learn API and goes into some depth on pipelining and grid-searches. I describe the advantages of randomized parameter search, when it is applicable, and which metrics to use for model selection. At the end, I talk about how to do out-of-core learning, and also about kernel-approximation.

Slides Materials


Introduction to Scikit-Learn

Strata San Jose 2015

This tutorial covers basic concepts of machine learning, such as supervised and unsupervised learning, cross validation and model selection. I talk about how to prepare data for machine learning, and go from applying a single algorithm to building a machine learning pipeline. I also go in-depth on a couple of algorithms and describe what overfitting and underfitting looks like for these.

Slides Materials

Advanced Scikit-Learn

PyData NYC 2014

A brief intoduction into scikit-learn, and the basics of pipelining and grid searches. I talk about the bias-variance tradeoff, and helper functions in scikit-learn to diagnose over-fitting and under-fitting. I also talk about randomized hyperparameter search and out-of-core learning. The last part of the talk is a brief introduction to PyStruct and Structured Prediction in general.

Slides Materials

Keynote: Commodity Machine Learning

PyData Berlin 2014

I talk about recent developments in commoditizing machine learning, and what I think needs to be done to help non-experts to apply machine-learning more easily and more effectively.



Andreas C. Müller:
Methods for Learning Structured Prediction in Semantic Segmentation of Natural Images
PhD Thesis. Published 2014.

Andreas C. Müller and Sven Behnke:
PyStruct - Learning Structured Prediction in Python
Journal of Machine Learning Research (JMLR), 2014.

Andreas C. Müller and Sven Behnke:
Learning Depth-Sensitive Conditional Random Fields for Semantic Segmentation of RGB-D Images
In Proceedings of IEEE International Conference on Robotics and Automation (ICRA), Hong Kong, May 2014.

Andreas Müller and Sven Behnke:
Learning a Loopy Model For Semantic Segmentation Exactly
In Proceedings of 9th International Conference on Computer Vision Theory and Applications (VISAPP), Lisbon, January 2014.

Andreas Müller, Sebastian Nowozin and Christoph H. Lampert:
Information Theoretic Clustering using Minimum Spanning Trees
DAGM-OAGM, 2012.

Andreas Müller and Sven Behnke:
Multi-Instance Methods for Partially Supervised Image Segmentation
Accepted for First IAPR Workshop on Partially Supervised Learning (PSL), Ulm 2011.

Hannes Schulz, Andreas Müller, and Sven Behnke:
Exploiting Local Structure in Boltzmann Machines
Neurocomputing 74(9):1411-1417, Elsevier, April 2011.

Hannes Schulz, Andreas Müller, and Sven Behnke:
Investigating Convergence of Restricted Boltzmann Machine Learning
NIPS 2010 Workshop on Deep Learning and Unsupervised Feature Learning Whistler, Canada, December 2010

Dominik Scherer, Andreas Müller, and Sven Behnke:
Evaluation of Pooling Operations in Convolutional Architectures for Object Recognition
20th International Conference on Artificial Neural Networks (ICANN), Thessaloniki, Greece, September 2010.

Andreas Müller, Hannes Schulz, and Sven Behnke:
Topological Features in Locally Connected RBMs
in the International Joint Conference on Neural Networks (IJCNN 2010)

Hannes Schulz, Andreas Müller, and Sven Behnke:
Exploiting local structure in stacked Boltzmann machines
in European Symposium on Artificial Neural Networks, Computational Intelligence and Machine Learning (ESANN), Bruges, Belgium

Pet Projects


The (notorious) cheat-sheet

A guide to picking a model in scikit-learn based on the dataset and task. It tries to give a point to start for beginners, not absolute rules, so take it with a grain of salt.

Blog post Interactive version