/scipy_2015_sklearn_tutorial

Scikit-Learn tutorial material for Scipy 2015

Primary LanguageJupyter NotebookCreative Commons Zero v1.0 UniversalCC0-1.0

SciPy 2015 Scikit-learn Tutorial

You can find the video recordings on youtube:

Based on the SciPy 2013 tutorial by Gael Varoquaux, Olivier Grisel and Jake VanderPlas.

Instructors

This repository will contain files and other info associated with our Scipy 2015 scikit-learn tutorial.

Parts 1 to 5 make up the morning session, while parts 6 to 9 will be presented in the afternoon.

Installation Notes

This tutorial will require recent installations of numpy, scipy, matplotlib, scikit-learn and ipython with ipython notebook.

The last one is important, you should be able to type:

ipython notebook

in your terminal window and see the notebook panel load in your web browser. Try opening and running a notebook from the material to see check that it works.

For users who do not yet have these packages installed, a relatively painless way to install all the requirements is to use a package such as Anaconda CE, which can be downloaded and installed for free. Python2.7 and 3.4 should both work fine for this tutorial.

After getting the material, you should run python check_env.py to verify your environment.

Downloading the Tutorial Materials

I would highly recommend using git, not only for this tutorial, but for the general betterment of your life. Once git is installed, you can clone the material in this tutorial by using the git address shown above:

git clone git://github.com/amueller/scipy_2015_sklearn_tutorial.git

If you can't or don't want to install git, there is a link above to download the contents of this repository as a zip file. We may make minor changes to the repository in the days before the tutorial, however, so cloning the repository is a much better option.

Data Downloads

The data for this tutorial is not included in the repository. We will be using several data sets during the tutorial: most are built-in to scikit-learn, which includes code which automatically downloads and caches these data. Because the wireless network at conferences can often be spotty, it would be a good idea to download these data sets before arriving at the conference. Run fetch_data.py to download all necessary data beforehand.

Outline

Morning Session

  • What is machine learning? (Sample applications)
  • Kinds of machine learning: unsupervised vs supervised.
  • Data formats and preparation.
  • Supervised learning
    • Interface
    • Training and test data
    • Classification
    • Regression
  • Unsupervised Learning
    • Unsupervised transformers
    • Preprocessing and scaling
    • Dimensionality reduction
    • Clustering
  • Summary : Estimator interface
  • Application : Classification of digits
  • Application : Eigenfaces
  • Methods: Text feature abstraction, bag of words
  • Application : SMS spam detection
  • Summary : Model building and generalization

Afternoon Session

  • Cross-Validation
  • Model Complexity: Overfitting and underfitting
  • Complexity of various model types
  • Grid search for adjusting hyperparameters
  • Basic regression with cross-validation
  • Application : Titanic survival with Random Forest
  • Building Pipelines
    • Motivation and Basics
    • Preprocessing and Classification
    • Grid-searching Parameters of the feature extraction
  • Application : Image classification
  • Model complexity, learning curves and validation curves
  • In-Depth supervised models
    • Linear Models
    • Kernel SVMs
    • trees and Forests
  • Learning with Big Data
    • Out-Of-Core learning
    • The hashing trick for large text corpuses