neuralGAM {neuralGAM} | R Documentation |
Fit a neuralGAM
model
Description
Fits a neuralGAM
model by building a neural network to attend to each covariate.
Usage
neuralGAM(
formula,
data,
num_units,
family = "gaussian",
learning_rate = 0.001,
activation = "relu",
kernel_initializer = "glorot_normal",
kernel_regularizer = NULL,
bias_regularizer = NULL,
bias_initializer = "zeros",
activity_regularizer = NULL,
loss = "mse",
w_train = NULL,
bf_threshold = 0.001,
ls_threshold = 0.1,
max_iter_backfitting = 10,
max_iter_ls = 10,
seed = NULL,
verbose = 1,
...
)
Arguments
formula |
An object of class "formula": a description of the model to be fitted. You can add smooth terms using |
data |
A data frame containing the model response variable and covariates required by the formula. Additional terms not present in the formula will be ignored. |
num_units |
Defines the architecture of each neural network. If a scalar value is provided, a single hidden layer neural network with that number of units is used. If a vector of values is provided, a multi-layer neural network with each element of the vector defining the number of hidden units on each hidden layer is used. |
family |
This is a family object specifying the distribution and link to use for fitting.
By default, it is |
learning_rate |
Learning rate for the neural network optimizer. |
activation |
Activation function of the neural network. Defaults to |
kernel_initializer |
Kernel initializer for the Dense layers.
Defaults to Xavier Initializer ( |
kernel_regularizer |
Optional regularizer function applied to the kernel weights matrix. |
bias_regularizer |
Optional regularizer function applied to the bias vector. |
bias_initializer |
Optional initializer for the bias vector. |
activity_regularizer |
Optional regularizer function applied to the output of the layer |
loss |
Loss function to use during neural network training. Defaults to the mean squared error. |
w_train |
Optional sample weights |
bf_threshold |
Convergence criterion of the backfitting algorithm.
Defaults to |
ls_threshold |
Convergence criterion of the local scoring algorithm.
Defaults to |
max_iter_backfitting |
An integer with the maximum number of iterations
of the backfitting algorithm. Defaults to |
max_iter_ls |
An integer with the maximum number of iterations of the
local scoring Algorithm. Defaults to |
seed |
A positive integer which specifies the random number generator seed for algorithms dependent on randomization. |
verbose |
Verbosity mode (0 = silent, 1 = print messages). Defaults to 1. |
... |
Additional parameters for the Adam optimizer (see ?keras::optimizer_adam) |
Details
The function builds one neural network to attend to each feature in x,
using the backfitting and local scoring algorithms to fit a weighted additive model
using neural networks as function approximators. The adjustment of the
dependent variable and the weights is determined by the distribution of the
response y
, adjusted by the family
parameter.
Value
A trained neuralGAM
object. Use summary(ngam)
to see details.
Author(s)
Ines Ortega-Fernandez, Marta Sestelo.
References
Hastie, T., & Tibshirani, R. (1990). Generalized Additive Models. London: Chapman and Hall, 1931(11), 683–741.
Examples
## Not run:
n <- 24500
seed <- 42
set.seed(seed)
x1 <- runif(n, -2.5, 2.5)
x2 <- runif(n, -2.5, 2.5)
x3 <- runif(n, -2.5, 2.5)
f1 <- x1 ** 2
f2 <- 2 * x2
f3 <- sin(x3)
f1 <- f1 - mean(f1)
f2 <- f2 - mean(f2)
f3 <- f3 - mean(f3)
eta0 <- 2 + f1 + f2 + f3
epsilon <- rnorm(n, 0.25)
y <- eta0 + epsilon
train <- data.frame(x1, x2, x3, y)
library(neuralGAM)
ngam <- neuralGAM(y ~ s(x1) + x2 + s(x3), data = train,
num_units = 1024, family = "gaussian",
activation = "relu",
learning_rate = 0.001, bf_threshold = 0.001,
max_iter_backfitting = 10, max_iter_ls = 10,
seed = seed
)
ngam
## End(Not run)