| nnet {nnet} | R Documentation |
Fit Neural Networks
Description
Fit single-hidden-layer neural network, possibly with skip-layer connections.
Usage
nnet(x, ...)
## S3 method for class 'formula'
nnet(formula, data, weights, ...,
subset, na.action, contrasts = NULL)
## Default S3 method:
nnet(x, y, weights, size, Wts, mask,
linout = FALSE, entropy = FALSE, softmax = FALSE,
censored = FALSE, skip = FALSE, rang = 0.7, decay = 0,
maxit = 100, Hess = FALSE, trace = TRUE, MaxNWts = 1000,
abstol = 1.0e-4, reltol = 1.0e-8, ...)
Arguments
formula |
A formula of the form |
x |
matrix or data frame of |
y |
matrix or data frame of target values for examples. |
weights |
(case) weights for each example – if missing defaults to 1. |
size |
number of units in the hidden layer. Can be zero if there are skip-layer units. |
data |
Data frame from which variables specified in |
subset |
An index vector specifying the cases to be used in the training sample. (NOTE: If given, this argument must be named.) |
na.action |
A function to specify the action to be taken if |
contrasts |
a list of contrasts to be used for some or all of the factors appearing as variables in the model formula. |
Wts |
initial parameter vector. If missing chosen at random. |
mask |
logical vector indicating which parameters should be optimized (default all). |
linout |
switch for linear output units. Default logistic output units. |
entropy |
switch for entropy (= maximum conditional likelihood) fitting. Default by least-squares. |
softmax |
switch for softmax (log-linear model) and maximum conditional
likelihood fitting. |
censored |
A variant on |
skip |
switch to add skip-layer connections from input to output. |
rang |
Initial random weights on [- |
decay |
parameter for weight decay. Default 0. |
maxit |
maximum number of iterations. Default 100. |
Hess |
If true, the Hessian of the measure of fit at the best set of weights
found is returned as component |
trace |
switch for tracing optimization. Default |
MaxNWts |
The maximum allowable number of weights. There is no intrinsic limit
in the code, but increasing |
abstol |
Stop if the fit criterion falls below |
reltol |
Stop if the optimizer is unable to reduce the fit criterion by a
factor of at least |
... |
arguments passed to or from other methods. |
Details
If the response in formula is a factor, an appropriate classification
network is constructed; this has one output and entropy fit if the
number of levels is two, and a number of outputs equal to the number
of classes and a softmax output stage for more levels. If the
response is not a factor, it is passed on unchanged to nnet.default.
Optimization is done via the BFGS method of optim.
Value
object of class "nnet" or "nnet.formula".
Mostly internal structure, but has components
wts |
the best set of weights found |
value |
value of fitting criterion plus weight decay term. |
fitted.values |
the fitted values for the training data. |
residuals |
the residuals for the training data. |
convergence |
|
References
Ripley, B. D. (1996) Pattern Recognition and Neural Networks. Cambridge.
Venables, W. N. and Ripley, B. D. (2002) Modern Applied Statistics with S. Fourth edition. Springer.
See Also
predict.nnet, nnetHess
Examples
# use half the iris data
ir <- rbind(iris3[,,1],iris3[,,2],iris3[,,3])
targets <- class.ind( c(rep("s", 50), rep("c", 50), rep("v", 50)) )
samp <- c(sample(1:50,25), sample(51:100,25), sample(101:150,25))
ir1 <- nnet(ir[samp,], targets[samp,], size = 2, rang = 0.1,
decay = 5e-4, maxit = 200)
test.cl <- function(true, pred) {
true <- max.col(true)
cres <- max.col(pred)
table(true, cres)
}
test.cl(targets[-samp,], predict(ir1, ir[-samp,]))
# or
ird <- data.frame(rbind(iris3[,,1], iris3[,,2], iris3[,,3]),
species = factor(c(rep("s",50), rep("c", 50), rep("v", 50))))
ir.nn2 <- nnet(species ~ ., data = ird, subset = samp, size = 2, rang = 0.1,
decay = 5e-4, maxit = 200)
table(ird$species[-samp], predict(ir.nn2, ird[-samp,], type = "class"))