Considering a dataset with $p$ numerical attributes.
The goal of the autoencoder is to reduce the dimension of $p$ to $k$, such that these $k$ attributes are enough to recompose the original $p$ attributes.
# DAL ToolBox
# version 1.0.777
source("https://raw.githubusercontent.com/cefet-rj-dal/daltoolbox/main/jupyter.R")
#loading DAL
load_library("daltoolbox")
Loading required package: daltoolbox Registered S3 method overwritten by 'quantmod': method from as.zoo.data.frame zoo Attaching package: ‘daltoolbox’ The following object is masked from ‘package:base’: transform
data(sin_data)
sw_size <- 5
ts <- ts_data(sin_data$y, sw_size)
ts_head(ts)
t4 | t3 | t2 | t1 | t0 |
---|---|---|---|---|
0.0000000 | 0.2474040 | 0.4794255 | 0.6816388 | 0.8414710 |
0.2474040 | 0.4794255 | 0.6816388 | 0.8414710 | 0.9489846 |
0.4794255 | 0.6816388 | 0.8414710 | 0.9489846 | 0.9974950 |
0.6816388 | 0.8414710 | 0.9489846 | 0.9974950 | 0.9839859 |
0.8414710 | 0.9489846 | 0.9974950 | 0.9839859 | 0.9092974 |
0.9489846 | 0.9974950 | 0.9839859 | 0.9092974 | 0.7780732 |
preproc <- ts_norm_gminmax()
preproc <- fit(preproc, ts)
ts <- transform(preproc, ts)
ts_head(ts)
t4 | t3 | t2 | t1 | t0 |
---|---|---|---|---|
0.5004502 | 0.6243512 | 0.7405486 | 0.8418178 | 0.9218625 |
0.6243512 | 0.7405486 | 0.8418178 | 0.9218625 | 0.9757058 |
0.7405486 | 0.8418178 | 0.9218625 | 0.9757058 | 1.0000000 |
0.8418178 | 0.9218625 | 0.9757058 | 1.0000000 | 0.9932346 |
0.9218625 | 0.9757058 | 1.0000000 | 0.9932346 | 0.9558303 |
0.9757058 | 1.0000000 | 0.9932346 | 0.9558303 | 0.8901126 |
samp <- ts_sample(ts, test_size = 10)
train <- as.data.frame(samp$train)
test <- as.data.frame(samp$test)
Reduce from 5 to 3 dimensions
auto <- autoenc_encode(5, 3)
auto <- fit(auto, train)
name 'sample' is not definedTraceback: 1. fit(auto, train) 2. fit.autoenc_encode(auto, train) 3. autoencoder_fit(obj$model, data, num_epochs = obj$num_epochs, . learning_rate = obj$learning_rate) 4. py_call_impl(callable, call_args$unnamed, call_args$named)
presenting the original test set and display encoding
print(head(test))
result <- transform(auto, test)
print(head(result))