pkgs <- c("RCurl", "jsonlite")
for (pkg in pkgs) {
  if (!(pkg %in% rownames(installed.packages()))) {
    install.packages(pkg)
  }
}
'install.packages(“h2o”)'
## [1] "install.packages(“h2o”)"
install.packages("h2o", type = "source",
                 repos = c("http://h2o-release.s3.amazonaws.com/h2o/latest_stable_R"))
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.5'
## (as 'lib' is unspecified)
'library("h2o")'
## [1] "library(\"h2o\")"
library(h2o)
## 
## ----------------------------------------------------------------------
## 
## Your next step is to start H2O:
##     > h2o.init()
## 
## For H2O package documentation, ask for help:
##     > ??h2o
## 
## After starting H2O, you can use the Web UI at http://localhost:54321
## For more information visit https://docs.h2o.ai
## 
## ----------------------------------------------------------------------
## 
## Attaching package: 'h2o'
## The following objects are masked from 'package:stats':
## 
##     cor, sd, var
## The following objects are masked from 'package:base':
## 
##     &&, %*%, %in%, ||, apply, as.factor, as.numeric, colnames,
##     colnames<-, ifelse, is.character, is.factor, is.numeric, log,
##     log10, log1p, log2, round, signif, trunc
h2o.init()
##  Connection successful!
## 
## R is connected to the H2O cluster: 
##     H2O cluster uptime:         6 minutes 11 seconds 
##     H2O cluster timezone:       UTC 
##     H2O data parsing timezone:  UTC 
##     H2O cluster version:        3.46.0.9 
##     H2O cluster version age:    2 months and 11 days 
##     H2O cluster name:           H2O_started_from_R_r3583890_gcf456 
##     H2O cluster total nodes:    1 
##     H2O cluster total memory:   0.17 GB 
##     H2O cluster total cores:    1 
##     H2O cluster allowed cores:  1 
##     H2O cluster healthy:        TRUE 
##     H2O Connection ip:          localhost 
##     H2O Connection port:        54321 
##     H2O Connection proxy:       NA 
##     H2O Internal Security:      FALSE 
##     R Version:                  R version 4.5.2 (2025-10-31)
library("h2o")
h2o.init(nthreads = -1)
##  Connection successful!
## 
## R is connected to the H2O cluster: 
##     H2O cluster uptime:         6 minutes 11 seconds 
##     H2O cluster timezone:       UTC 
##     H2O data parsing timezone:  UTC 
##     H2O cluster version:        3.46.0.9 
##     H2O cluster version age:    2 months and 11 days 
##     H2O cluster name:           H2O_started_from_R_r3583890_gcf456 
##     H2O cluster total nodes:    1 
##     H2O cluster total memory:   0.17 GB 
##     H2O cluster total cores:    1 
##     H2O cluster allowed cores:  1 
##     H2O cluster healthy:        TRUE 
##     H2O Connection ip:          localhost 
##     H2O Connection port:        54321 
##     H2O Connection proxy:       NA 
##     H2O Internal Security:      FALSE 
##     R Version:                  R version 4.5.2 (2025-10-31)
datasets <- "https://raw.githubusercontent.com/DarrenCook/h2o/bk/datasets/"
data <- h2o.importFile(paste0(datasets, "iris_wheader.csv"))  
##   |                                                                              |                                                                      |   0%  |                                                                              |======================================================================| 100%
y <- "class"  
x <- setdiff(names(data), y)
parts <- h2o.splitFrame(data, 0.65)#In R, h2o.splitFrame() takes an H2O frame and returns a list of the splits, which are assigned to train and test, for readability:  
train <- parts[[1]]
test <- parts[[2]]

m <- h2o.deeplearning(x, y, train)
##   |                                                                              |                                                                      |   0%  |                                                                              |======================================================================| 100%
p <- h2o.predict(m, test)
##   |                                                                              |                                                                      |   0%  |                                                                              |======================================================================| 100%
h2o.mse(m)
## [1] 0.1774994
h2o.confusionMatrix(m)
## Confusion Matrix: Row labels: Actual class; Column labels: Predicted class
##                 Iris-setosa Iris-versicolor Iris-virginica  Error      Rate
## Iris-setosa              35               0              0 0.0000 =  0 / 35
## Iris-versicolor           0              32              0 0.0000 =  0 / 32
## Iris-virginica            0              21              9 0.7000 = 21 / 30
## Totals                   35              53              9 0.2165 = 21 / 97
as.data.frame(p)
##            predict  Iris.setosa Iris.versicolor Iris.virginica
## 1      Iris-setosa 9.997706e-01    2.293753e-04   1.249438e-12
## 2      Iris-setosa 9.999604e-01    3.962689e-05   6.434789e-13
## 3      Iris-setosa 9.997278e-01    2.721947e-04   9.920779e-13
## 4      Iris-setosa 9.996817e-01    3.183311e-04   1.585155e-12
## 5      Iris-setosa 9.997159e-01    2.841228e-04   1.815916e-12
## 6      Iris-setosa 9.983900e-01    1.610009e-03   7.514473e-12
## 7      Iris-setosa 9.980379e-01    1.962073e-03   8.028792e-11
## 8      Iris-setosa 9.992994e-01    7.006230e-04   2.995217e-12
## 9      Iris-setosa 9.960758e-01    3.924228e-03   3.137329e-11
## 10     Iris-setosa 9.979249e-01    2.075092e-03   2.133643e-12
## 11     Iris-setosa 9.995318e-01    4.681542e-04   1.371040e-12
## 12     Iris-setosa 9.580599e-01    4.194010e-02   1.376367e-10
## 13     Iris-setosa 9.996687e-01    3.312877e-04   4.167310e-11
## 14     Iris-setosa 9.998852e-01    1.147643e-04   6.441362e-13
## 15     Iris-setosa 9.997742e-01    2.258404e-04   6.790009e-13
## 16 Iris-versicolor 4.870544e-05    9.996881e-01   2.632041e-04
## 17 Iris-versicolor 3.068745e-05    9.990862e-01   8.831404e-04
## 18 Iris-versicolor 7.568555e-03    9.920494e-01   3.820009e-04
## 19 Iris-versicolor 3.287875e-03    9.911503e-01   5.561855e-03
## 20 Iris-versicolor 7.682584e-03    9.911937e-01   1.123735e-03
## 21 Iris-versicolor 5.383661e-02    9.460572e-01   1.061722e-04
## 22 Iris-versicolor 5.694361e-03    9.942944e-01   1.126058e-05
## 23 Iris-versicolor 4.496063e-03    9.954852e-01   1.873324e-05
## 24 Iris-versicolor 1.162482e-03    9.987628e-01   7.471296e-05
## 25 Iris-versicolor 2.981122e-05    9.933210e-01   6.649184e-03
## 26 Iris-versicolor 8.523720e-03    9.914722e-01   4.036491e-06
## 27 Iris-versicolor 4.496633e-03    9.954872e-01   1.620153e-05
## 28 Iris-versicolor 2.409879e-04    9.926382e-01   7.120811e-03
## 29 Iris-versicolor 9.876956e-02    8.966155e-01   4.614951e-03
## 30 Iris-versicolor 1.174792e-05    9.999321e-01   5.612415e-05
## 31 Iris-versicolor 2.097905e-03    9.978607e-01   4.135552e-05
## 32 Iris-versicolor 7.143037e-02    9.285632e-01   6.450758e-06
## 33 Iris-versicolor 1.018331e-03    9.988516e-01   1.301031e-04
## 34 Iris-versicolor 7.970109e-07    7.757846e-01   2.242146e-01
## 35 Iris-versicolor 3.879966e-02    9.373949e-01   2.380539e-02
## 36 Iris-versicolor 2.912844e-07    9.743332e-01   2.566646e-02
## 37  Iris-virginica 1.036718e-06    6.425202e-02   9.357469e-01
## 38 Iris-versicolor 4.211827e-06    7.456500e-01   2.543458e-01
## 39  Iris-virginica 3.677239e-06    4.287668e-01   5.712295e-01
## 40 Iris-versicolor 1.378465e-05    9.987487e-01   1.237549e-03
## 41 Iris-versicolor 2.828537e-08    9.580903e-01   4.190972e-02
## 42 Iris-versicolor 3.508061e-05    9.847195e-01   1.524538e-02
## 43  Iris-virginica 2.680908e-05    4.641554e-01   5.358178e-01
## 44 Iris-versicolor 2.931721e-06    9.581041e-01   4.189296e-02
## 45 Iris-versicolor 7.583230e-04    9.642049e-01   3.503677e-02
## 46 Iris-versicolor 1.390394e-06    9.953866e-01   4.612039e-03
## 47 Iris-versicolor 1.071245e-07    9.775006e-01   2.249928e-02
## 48  Iris-virginica 4.923933e-06    4.136009e-01   5.863942e-01
## 49 Iris-versicolor 1.644332e-04    9.258056e-01   7.402995e-02
## 50  Iris-virginica 1.542489e-06    1.432344e-01   8.567641e-01
## 51 Iris-versicolor 3.065235e-06    5.593913e-01   4.406057e-01
## 52 Iris-versicolor 3.601098e-04    8.906189e-01   1.090210e-01
## 53  Iris-virginica 2.251634e-06    1.861505e-01   8.138472e-01
as.data.frame( h2o.cbind(p$predict, test$class) )
##            predict           class
## 1      Iris-setosa     Iris-setosa
## 2      Iris-setosa     Iris-setosa
## 3      Iris-setosa     Iris-setosa
## 4      Iris-setosa     Iris-setosa
## 5      Iris-setosa     Iris-setosa
## 6      Iris-setosa     Iris-setosa
## 7      Iris-setosa     Iris-setosa
## 8      Iris-setosa     Iris-setosa
## 9      Iris-setosa     Iris-setosa
## 10     Iris-setosa     Iris-setosa
## 11     Iris-setosa     Iris-setosa
## 12     Iris-setosa     Iris-setosa
## 13     Iris-setosa     Iris-setosa
## 14     Iris-setosa     Iris-setosa
## 15     Iris-setosa     Iris-setosa
## 16 Iris-versicolor Iris-versicolor
## 17 Iris-versicolor Iris-versicolor
## 18 Iris-versicolor Iris-versicolor
## 19 Iris-versicolor Iris-versicolor
## 20 Iris-versicolor Iris-versicolor
## 21 Iris-versicolor Iris-versicolor
## 22 Iris-versicolor Iris-versicolor
## 23 Iris-versicolor Iris-versicolor
## 24 Iris-versicolor Iris-versicolor
## 25 Iris-versicolor Iris-versicolor
## 26 Iris-versicolor Iris-versicolor
## 27 Iris-versicolor Iris-versicolor
## 28 Iris-versicolor Iris-versicolor
## 29 Iris-versicolor Iris-versicolor
## 30 Iris-versicolor Iris-versicolor
## 31 Iris-versicolor Iris-versicolor
## 32 Iris-versicolor Iris-versicolor
## 33 Iris-versicolor Iris-versicolor
## 34 Iris-versicolor  Iris-virginica
## 35 Iris-versicolor  Iris-virginica
## 36 Iris-versicolor  Iris-virginica
## 37  Iris-virginica  Iris-virginica
## 38 Iris-versicolor  Iris-virginica
## 39  Iris-virginica  Iris-virginica
## 40 Iris-versicolor  Iris-virginica
## 41 Iris-versicolor  Iris-virginica
## 42 Iris-versicolor  Iris-virginica
## 43  Iris-virginica  Iris-virginica
## 44 Iris-versicolor  Iris-virginica
## 45 Iris-versicolor  Iris-virginica
## 46 Iris-versicolor  Iris-virginica
## 47 Iris-versicolor  Iris-virginica
## 48  Iris-virginica  Iris-virginica
## 49 Iris-versicolor  Iris-virginica
## 50  Iris-virginica  Iris-virginica
## 51 Iris-versicolor  Iris-virginica
## 52 Iris-versicolor  Iris-virginica
## 53  Iris-virginica  Iris-virginica
mean(p$predict == test$class)
## [1] 0.7358491
h2o.performance(m, test)
## H2OMultinomialMetrics: deeplearning
## 
## Test Set Metrics: 
## =====================
## 
## MSE: (Extract with `h2o.mse`) 0.2331242
## RMSE: (Extract with `h2o.rmse`) 0.4828293
## Logloss: (Extract with `h2o.logloss`) 0.9086636
## Mean Per-Class Error: 0.2333333
## AUC: (Extract with `h2o.auc`) NaN
## AUCPR: (Extract with `h2o.aucpr`) NaN
## AIC: (Extract with `h2o.aic`) NaN
## Confusion Matrix: Extract with `h2o.confusionMatrix(<model>, <data>)`)
## =========================================================================
## Confusion Matrix: Row labels: Actual class; Column labels: Predicted class
##                 Iris-setosa Iris-versicolor Iris-virginica  Error      Rate
## Iris-setosa              15               0              0 0.0000 =  0 / 15
## Iris-versicolor           0              18              0 0.0000 =  0 / 18
## Iris-virginica            0              14              6 0.7000 = 14 / 20
## Totals                   15              32              6 0.2642 = 14 / 53
## 
## Hit Ratio Table: Extract with `h2o.hit_ratio_table(<model>, <data>)`
## =======================================================================
## Top-3 Hit Ratios: 
##   k hit_ratio
## 1 1  0.735849
## 2 2  0.981132
## 3 3  1.000000