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