The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

neuralnetwork

neuralnetwork fits multilayer perceptrons for tabular data in R. It accepts formulas, data frames, matrices, and vectors; handles regression and classification; and includes tuning, cross-validation, metrics, feature importance, and model save/load helpers. It is meant for users who need more than nnet’s single-hidden-layer interface or neuralnet’s manual training style, but do not want to bring in a full deep-learning stack.

Install

install.packages("neuralnetwork")

To install the local source tarball:

install.packages("neuralnetwork_0.1.1.tar.gz", repos = NULL, type = "source")

Quick start

library(neuralnetwork)

fit <- nn_fit(
  Species ~ .,
  data = iris,
  hidden = "auto",
  optimizer = "auto",
  epochs = 20,
  validation_split = 0.2,
  seed = 1,
  verbose = FALSE
)

fit
predict(fit, iris[1:5, ], type = "class")
round(predict(fit, iris[1:5, ], type = "prob"), 3)

ev <- nn_evaluate(fit, iris)
ev

The printed model reports the architecture, optimizer, loss, backend, training length, final training score, and validation score when available. nn_evaluate() returns the metrics as a named vector and prints a compact confusion matrix for classification.

Regression

For regression, put a numeric response on the left side of the formula. Training can scale the target internally; predictions are returned on the original response scale.

fit_reg <- nn_fit(
  mpg ~ wt + hp + disp,
  data = mtcars,
  hidden = c(8, 4),
  optimizer = "adam",
  epochs = 40,
  batch_size = 8,
  learning_rate = 0.01,
  validation_split = 0.2,
  seed = 2,
  verbose = FALSE
)

predict(fit_reg, mtcars[1:5, ])
nn_evaluate(fit_reg, mtcars)

For regression problems with outliers, use Huber loss:

fit_huber <- nn_fit(
  mpg ~ wt + hp + disp,
  data = mtcars,
  hidden = c(8, 4),
  optimizer = "adam",
  loss = "huber",
  huber_delta = 1,
  epochs = 40,
  batch_size = 8,
  learning_rate = 0.01,
  seed = 3,
  verbose = FALSE
)

Choosing settings

Reasonable first choices:

Tuning and validation

tuned <- nn_tune(
  Species ~ .,
  data = iris,
  grid = list(
    hidden = list(4, c(6, 3)),
    learning_rate = c(0.01, 0.003)
  ),
  metric = "balanced_accuracy",
  epochs = 8,
  validation_split = 0.2,
  seed = 4,
  verbose = FALSE
)

tuned
tuned$best_model

For exploratory grids, error_action = "continue" keeps candidate failures in the results table while ranking the usable fits.

cv <- nn_cv(
  Species ~ .,
  data = iris,
  k = 3,
  metric = "f1",
  hidden = 4,
  epochs = 5,
  seed = 5,
  verbose = FALSE
)

cv

Feature importance

imp <- nn_permutation_importance(
  fit_reg,
  mtcars,
  metric = "mae",
  n_repeats = 3,
  seed = 6
)

imp

Function map

Need Use
Fit a model nn_fit()
Predict classes, probabilities, or numeric responses predict()
Evaluate metrics nn_evaluate()
Tune a grid nn_tune()
Cross-validate nn_cv()
Estimate feature importance nn_permutation_importance()
Save and load nn_save(), nn_load()
Use nnet / neuralnet style helpers nn_multinom(), nn_compute(), nn_generalized_weights()

What’s included

Run vignette("neuralnetwork") for the longer worked example.

Reference help inside R: ?neuralnetwork, ?neuralnetwork-metrics, ?neuralnetwork-callbacks, and ?neuralnetwork-objects.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.