nnet
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
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"))
Copyright (©) 1999–2012 R Foundation for Statistical Computing.
Licensed under the GNU General Public License.