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 compact multilayer perceptrons for everyday R workflows: formula input, tabular data, regression, classification, tuning, cross validation, and readable model objects. It is designed for problems where nnet feels too small, neuralnet feels too manual, and a full deep-learning framework would be more machinery than the job needs.

Install

install.packages("neuralnetwork")

To install the local source tarball:

install.packages("neuralnetwork_0.1.0.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 gives the architecture, optimizer, loss, backend, training length, final training score, and validation score when available. The evaluation object prints metrics as a small table and includes the confusion matrix for classification.

Regression

Regression uses the same interface. Targets can be scaled during training and returned on the original scale for prediction.

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

Good first defaults:

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
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 Is Included

See vignette("neuralnetwork") for a fuller walkthrough.

For reference-style help inside R, see ?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.