{"cells":[{"metadata":{},"cell_type":"markdown","source":"### Dataset\n\n**Kannada MNIST** dataset is another MNIST-type Digits dataset for Kannada (Indian) Language. \n\n### Kernel Objective\n\nThe objective of this Kernel (Notebook) is to demonstrate how to use `h2o.ai`'s `automl` function to quickly get a (better) baseline. Thsi also proves a point how these `automl` tools help democratizing Machine Learning Model Building process."},{"metadata":{},"cell_type":"markdown","source":"### Loading required libraries\n\n* h2o - for Machine Learning\n* tidyverse - for Data Manipulation"},{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"library(h2o)\nlibrary(tidyverse)\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Initializing H2O Cluster"},{"metadata":{"trusted":true},"cell_type":"code","source":"h2o::h2o.init()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"markdown","source":"### Reading Input Files (Data)"},{"metadata":{"trusted":true},"cell_type":"code","source":"train <- read_csv(\"../input/Kannada-MNIST/train.csv\")\ntest <- read_csv(\"../input/Kannada-MNIST/test.csv\")\nvalid <- read_csv(\"../input/Kannada-MNIST/Dig-MNIST.csv\")\nsubmission <- read_csv(\"../input/Kannada-MNIST/sample_submission.csv\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Checking the shape / dimension of the dataframe"},{"metadata":{"trusted":true},"cell_type":"code","source":"dim(train)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Label Count"},{"metadata":{"trusted":true},"cell_type":"code","source":"train  %>% count(label)  ","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train  %>% count(label)  %>% ggplot() + geom_bar(aes(label,n), stat = \"identity\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Visualizing the Kannada Numbers"},{"metadata":{"trusted":true},"cell_type":"code","source":"# visualize the digits\npar(mfcol=c(6,6))\n\npar(mar=c(0, 0, 3, 0), xaxs='i', yaxs='i')\n\nfor (idx in 1:36) { \n\nim<-matrix((train[idx,2:ncol(train)]), nrow=28, ncol=28)\n\nim_numbers <- apply(im, 2, as.numeric)\n\nimage(1:28, 1:28, im_numbers, col=gray((0:255)/255), main=paste(train$label[idx]))\n}","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Converting R dataframe to H2O object which is required by H2O functions"},{"metadata":{"trusted":true},"cell_type":"code","source":"\ntrain_h <- as.h2o(train)\ntest_h <- as.h2o(test)\nvalid_h <- as.h2o(valid)\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Converting our numeric target variable into a factor for the algorithm to perform Classification"},{"metadata":{"trusted":true},"cell_type":"code","source":"train_h$label <- as.factor(train_h$label)\nvalid_h$label <- as.factor(valid_h$label)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"markdown","source":"### Explanatory and Response Variables"},{"metadata":{"trusted":true},"cell_type":"code","source":"x <- names(train)[-1]\ny <- 'label'\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### AutoML in Action"},{"metadata":{"trusted":true},"cell_type":"code","source":"\naml <- h2o::h2o.automl(x = x, \n                       y = y,\n                       training_frame = train_h,\n                       nfolds = 10,\n                       leaderboard_frame = valid_h,\n                       seed=121, \n                       max_runtime_secs=10000)\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### AutoML Leaderboard"},{"metadata":{"trusted":true},"cell_type":"code","source":"aml@leaderboard","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Prediction & Submission"},{"metadata":{"trusted":true},"cell_type":"code","source":"pred <- h2o.predict(aml, test_h)  \n\nsubmission$label <- as.vector(pred$predict)\n\n#write_csv(submission, \"submission.csv\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Sample Submission"},{"metadata":{"trusted":true},"cell_type":"code","source":"head(submission)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Submission File"},{"metadata":{"trusted":true},"cell_type":"code","source":"write_csv(submission, \"submission.csv\")","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"R","language":"R","name":"ir"},"language_info":{"mimetype":"text/x-r-source","name":"R","pygments_lexer":"r","version":"3.4.2","file_extension":".r","codemirror_mode":"r"}},"nbformat":4,"nbformat_minor":1}