install.packages("h2o")
Installing package into ‘/cloud/lib/x86_64-pc-linux-gnu-library/4.4’
(as ‘lib’ is unspecified)
also installing the dependencies ‘bitops’, ‘RCurl’
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/bitops_1.0-9.tar.gz'
Content type 'application/x-gzip' length 25355 bytes (24 KB)
==================================================
downloaded 24 KB
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/RCurl_1.98-1.16.tar.gz'
Content type 'application/x-gzip' length 1064350 bytes (1.0 MB)
==================================================
downloaded 1.0 MB
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/h2o_3.44.0.3.tar.gz'
Content type 'application/x-gzip' length 266595032 bytes (254.2 MB)
==================================================
downloaded 254.2 MB
* installing *binary* package ‘bitops’ ...
* DONE (bitops)
* installing *binary* package ‘RCurl’ ...
* DONE (RCurl)
* installing *binary* package ‘h2o’ ...
* DONE (h2o)
The downloaded source packages are in
‘/tmp/Rtmp6887k6/downloaded_packages’
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
Initialize H2O
h2o.init(nthreads = -1)
H2O is not running yet, starting it now...
Note: In case of errors look at the following log files:
/tmp/Rtmp6887k6/file14979a63367/h2o_r2993625_started_from_r.out
/tmp/Rtmp6887k6/file1495f8e4da0/h2o_r2993625_started_from_r.err
openjdk version "11.0.22" 2024-01-16
OpenJDK Runtime Environment (build 11.0.22+7-post-Ubuntu-0ubuntu220.04.1)
OpenJDK 64-Bit Server VM (build 11.0.22+7-post-Ubuntu-0ubuntu220.04.1, mixed mode, sharing)
Starting H2O JVM and connecting: ... Connection successful!
R is connected to the H2O cluster:
H2O cluster uptime: 2 seconds 583 milliseconds
H2O cluster timezone: UTC
H2O data parsing timezone: UTC
H2O cluster version: 3.44.0.3
H2O cluster version age: 1 year, 1 month and 14 days
H2O cluster name: H2O_started_from_R_r2993625_dev645
H2O cluster total nodes: 1
H2O cluster total memory: 0.24 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.4.2 (2024-10-31)
Warning in h2o.clusterInfo() :
Your H2O cluster version is (1 year, 1 month and 14 days) old. There may be a newer version available.
Please download and install the latest version from: https://h2o-release.s3.amazonaws.com/h2o/latest_stable.html
Import Dataset
datasets <- "https://raw.githubusercontent.com/DarrenCook/h2o/bk/datasets/"
data <- h2o.importFile(paste0(datasets, "iris_wheader.csv"))
|
| | 0%
|
|==============================================================================================| 100%
Define Variables
y <- "class"
x <- setdiff(names(data), y)
Split Data into Training and Testing Sets
parts <- h2o.splitFrame(data, 0.8)
train <- parts[[1]]
test <- parts[[2]]
Train a Deep Learning Model
m <- h2o.deeplearning(x, y, train)
|
| | 0%
|
|============================ | 30%
|
|==============================================================================================| 100%
Make Predictions
p <- h2o.predict(m, test)
|
| | 0%
|
|==============================================================================================| 100%
Model Evaluation
h2o.mse(m)
[1] 0.2050054
h2o.confusionMatrix(m)
Confusion Matrix: Row labels: Actual class; Column labels: Predicted class
Convert Predictions to Data Frame
as.data.frame(p)
Compare Predictions with Actual Classes
as.data.frame(h2o.cbind(p$predict, test$class))
Calculate Accuracy
mean(p$predict == test$class)
[1] 0.6774194
LS0tCnRpdGxlOiAiQ3Rpdml0eSA1IgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgogCgpgYGB7cn0KaW5zdGFsbC5wYWNrYWdlcygiaDJvIikKYGBgCmBgYHtyfQpsaWJyYXJ5KGgybykKYGBgCiMgSW5pdGlhbGl6ZSBIMk8KYGBge3J9Cmgyby5pbml0KG50aHJlYWRzID0gLTEpCmBgYAoKIyBJbXBvcnQgRGF0YXNldApgYGB7cn0KZGF0YXNldHMgPC0gImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9EYXJyZW5Db29rL2gyby9iay9kYXRhc2V0cy8iCmRhdGEgPC0gaDJvLmltcG9ydEZpbGUocGFzdGUwKGRhdGFzZXRzLCAiaXJpc193aGVhZGVyLmNzdiIpKQpgYGAKCiMgRGVmaW5lIFZhcmlhYmxlcwpgYGB7cn0KeSA8LSAiY2xhc3MiCnggPC0gc2V0ZGlmZihuYW1lcyhkYXRhKSwgeSkKYGBgCgojIFNwbGl0IERhdGEgaW50byBUcmFpbmluZyBhbmQgVGVzdGluZyBTZXRzCmBgYHtyfQpwYXJ0cyA8LSBoMm8uc3BsaXRGcmFtZShkYXRhLCAwLjgpCnRyYWluIDwtIHBhcnRzW1sxXV0KdGVzdCA8LSBwYXJ0c1tbMl1dCmBgYAoKIyBUcmFpbiBhIERlZXAgTGVhcm5pbmcgTW9kZWwKYGBge3J9Cm0gPC0gaDJvLmRlZXBsZWFybmluZyh4LCB5LCB0cmFpbikKYGBgCgojIE1ha2UgUHJlZGljdGlvbnMKYGBge3J9CnAgPC0gaDJvLnByZWRpY3QobSwgdGVzdCkKYGBgCgojIE1vZGVsIEV2YWx1YXRpb24KYGBge3J9Cmgyby5tc2UobSkKaDJvLmNvbmZ1c2lvbk1hdHJpeChtKQpgYGAKCiMgQ29udmVydCBQcmVkaWN0aW9ucyB0byBEYXRhIEZyYW1lCmBgYHtyfQphcy5kYXRhLmZyYW1lKHApCmBgYAoKIyBDb21wYXJlIFByZWRpY3Rpb25zIHdpdGggQWN0dWFsIENsYXNzZXMKYGBge3J9CmFzLmRhdGEuZnJhbWUoaDJvLmNiaW5kKHAkcHJlZGljdCwgdGVzdCRjbGFzcykpCmBgYAoKIyBDYWxjdWxhdGUgQWNjdXJhY3kKYGBge3J9Cm1lYW4ocCRwcmVkaWN0ID09IHRlc3QkY2xhc3MpCmBgYAoKIyBBbHRlcm5hdGl2ZSBQZXJmb3JtYW5jZSBFdmFsdWF0aW9uCmBgYHtyfQpoMm8ucGVyZm9ybWFuY2UobSwgdGVzdCkKYGBgCgo=