Presenters: Gaël Varoquaux, Jake Vanderplas, Olivier Grisel
Machine Learning is the branch of computer science concerned with the development of algorithms which can learn from previously-seen data in order to make predictions about future data, and has become an important part of research in many scientific fields. This set of tutorials will introduce the basics of machine learning, and how these learning tasks can be accomplished using Scikit-Learn, a machine learning library written in Python and built on NumPy, SciPy, and Matplotlib. By the end of the tutorials, participants will be poised to take advantage of Scikit-learn's wide variety of machine learning algorithms to explore their own data sets. The tutorial will comprise two sessions, Session I in the morning (intermediate track), and Session II in the afternoon (advanced track). Participants are free to attend either one or both, but to get the most out of the material, we encourage those attending in the afternoon to attend in the morning as well.
Session I will assume participants already have a basic knowledge of using numpy and matplotlib for manipulating and visualizing data. It will require no prior knowledge of machine learning or scikit-learn. The goals of Session I are to introduce participants to the basic concepts of machine learning, to give a hands-on introduction to using Scikit-learn for machine learning in Python, and give participants experience with several practical examples and applications of applying supervised learning to a variety of data. It will cover basic classification and regression problems, regularization of learning models, basic cross-validation, and some examples from text mining and image processing, all using the tools available in scikit-learn.
Tutorial 1 (intermediate track)
0:00 - 0:15 -- Setup and Introduction 0:15 - 0:30 -- Quick review of data visualization with matplotlib and numpy 0:30 - 1:00 -- Representation of data in machine learning Downloading data within scikit-learn Categorical & Image data Exercise: vectorization of text documents 1:00 - 2:00 -- Basic principles of Machine Learning & the scikit-learn interface Supervised Learning: Classification & Regression Unsupervised Learning: Clustering & Dimensionality Reduction Example of PCA for data visualization Flow chart: how do I choose what to do with my data set? Exercise: Interactive Demo on linearly separable data Regularization: what it is and why it is necessary 2:00 - 2:15 -- Break (possibly in the middle of the previous section) 2:15 - 3:00 -- Supervised Learning Example of Classification: hand-written digits Cross-validation: measuring prediction accuracy Example of Regression: boston house prices 3:00 - 4:15 -- Applications Examples from text mining Examples from image processing
This tutorial will use Python 2.6 / 2.7, and require recent versions of numpy (version 1.5+), scipy (version 0.10+), matplotlib (version 1.1+), scikit-learn (version 0.13.1+), and IPython (version 0.13.1+) with notebook support. The final requirement is particularly important: participants should be able to run IPython notebook and create & manipulate notebooks in their web browser. The easiest way to install these requirements is to use a packaged distribution: we recommend Anaconda CE, a free package provided by Continuum Analytics: http://continuum.io/downloads.html or the Enthought Python Distribution: http://www.enthought.com/products/epd_free.php