Replay: Modeling MNIST With RF Hands-on Demo

Last week Spencer put together a great hands on for modeling data using H2O (http://www.meetup.com/H2Omeetup/).  This post is a write-up of the workflow for generating an RF model on MNIST data for those of you who want to walk through the demo again, or maybe missed the live action version.  I’m running through one of our local servers, with an allocation to H2O of 20 gigs.

RF on MNIST data: Spencer used a data set of pre-GPUed MNIST data similar to that provided by Kaggle in a currently running competition.  If you’re interested in some of the different approaches to the MNIST data (including Neural Nets and K Nearest Neighbors) I highly recommend taking a look at http://yann.lecun.com/exdb/mnist/.

Problem: The training data are 60,000 observations of 786 variables, testing data are 10,000 observations. Each independent variable corresponds to one square pixel of  an image. The value given for any variable indicates the level of saturation of the pixel.  Results are given and discussed below. Here is the step by step process for generating these results.

  1. Starting at the drop down menu Data inhale and parse data (both the testing and training sets).
  2. From the Model drop down menu choose **Random Forest**
    Screen-Shot-2013-09-04-at-1.51.02-PM
  3. Set Ntree = 50, and Features = 200. Leave all other options in default.  Note that H2O automatically ignores all constant columns, so you need not sort through the data summary by hand  to find those variables.Screen-Shot-2013-09-04-at-1.53.25-PM
  4. Step 3 generates a model, the confusion matrix shown below is the output of this model.
  5. The model key is at the top of the RF results page; highlight and copy it. From the drop down menu Score, select RF.Screen-Shot-2013-09-05-at-8.26.56-AM
  6. In the specification page for scoring your RF model enter the .hex  key for your testing data, paste the model key, specify the dependent variable column, and submit.Screen-Shot-2013-09-05-at-8.27.58-AM-800x411

At this point you have built a model and verified that it works. In practice, the motivation is generally to actually predict an outcome of interest – which you can now do with this same model by returning to the drop down menu Score and selecting Predict. Feeding  Predict data with the same predictors as contained in your training set produces a column of predictions matching each observation.

Results:  In an RF model of 50 trees,  features set to 200, and all other options left in default, H2O produces this confusion matrix.MNISTtrainCM-800x320

Testing the generated RF model on the test set  produces a classification error of 3.28%.MNISTtrainCMa-800x338

So- there you have it. A walkthrough of Spencer's meetup presentation that you can follow step by step.

Published by

wpengine

This is the "wpengine" admin user that our staff uses to gain access to your admin area to provide support and troubleshooting. It can only be accessed by a button in our secure log that auto generates a password and dumps that password after the staff member has logged in. We have taken extreme measures to ensure that our own user is not going to be misused to harm any of our clients sites.