Skip to contents

Print the sensitivity metrics of a HessMLP object. This metrics are the mean sensitivity, the standard deviation of sensitivities and the mean of sensitivities square

Usage

# S3 method for summary.HessMLP
print(x, round_digits = NULL, ...)

Arguments

x

summary.HessMLP object created by summary method of HessMLP object

round_digits

integer number of decimal places, default NULL

...

additional parameters

Examples

## Load data -------------------------------------------------------------------
data("DAILY_DEMAND_TR")
fdata <- DAILY_DEMAND_TR

## Parameters of the NNET ------------------------------------------------------
hidden_neurons <- 5
iters <- 250
decay <- 0.1

################################################################################
#########################  REGRESSION NNET #####################################
################################################################################
## Regression dataframe --------------------------------------------------------
# Scale the data
fdata.Reg.tr <- fdata[,2:ncol(fdata)]
fdata.Reg.tr[,3] <- fdata.Reg.tr[,3]/10
fdata.Reg.tr[,1] <- fdata.Reg.tr[,1]/1000

# Normalize the data for some models
preProc <- caret::preProcess(fdata.Reg.tr, method = c("center","scale"))
nntrData <- predict(preProc, fdata.Reg.tr)

#' ## TRAIN nnet NNET --------------------------------------------------------
# Create a formula to train NNET
form <- paste(names(fdata.Reg.tr)[2:ncol(fdata.Reg.tr)], collapse = " + ")
form <- formula(paste(names(fdata.Reg.tr)[1], form, sep = " ~ "))

set.seed(150)
nnetmod <- nnet::nnet(form,
                           data = nntrData,
                           linear.output = TRUE,
                           size = hidden_neurons,
                           decay = decay,
                           maxit = iters)
#> # weights:  21
#> initial  value 2487.870002 
#> iter  10 value 1587.516208
#> iter  20 value 1349.706741
#> iter  30 value 1333.940734
#> iter  40 value 1329.097060
#> iter  50 value 1326.518168
#> iter  60 value 1323.148574
#> iter  70 value 1322.378769
#> iter  80 value 1322.018091
#> final  value 1321.996301 
#> converged
# Try HessianMLP
sens <- NeuralSens::HessianMLP(nnetmod, trData = nntrData, plot = FALSE)
print(summary(sens))
#> Hessian matrix of 2-5-1 MLP network.
#> 
#> Hessian measures of each output:
#> $.outcome
#> $.outcome$mean
#>               WD        TEMP
#> WD   -0.75371769 -0.02008632
#> TEMP -0.02008632  1.18930246
#> 
#> $.outcome$std
#>            WD     TEMP
#> WD   2.414398 1.868676
#> TEMP 1.868676 6.269440
#> 
#> $.outcome$meanSensSQ
#>            WD     TEMP
#> WD   2.528728 1.868313
#> TEMP 1.868313 6.379692
#> 
#> 
#> $.outcome
#> $.outcome$mean
#>               WD        TEMP
#> WD   -0.75371769 -0.02008632
#> TEMP -0.02008632  1.18930246
#> 
#> $.outcome$std
#>            WD     TEMP
#> WD   2.414398 1.868676
#> TEMP 1.868676 6.269440
#> 
#> $.outcome$meanSensSQ
#>            WD     TEMP
#> WD   2.528728 1.868313
#> TEMP 1.868313 6.379692
#> 
#>