| krsFit {regtools} | R Documentation | 
Tools for Neural Networks
Description
Tools to complement existing neural networks software, notably a more "R-like" wrapper to fitting data with R's keras package.
Usage
krsFit(x,y,hidden,acts=rep("relu",length(hidden)),learnRate=0.001,
   conv=NULL,xShape=NULL,classif=TRUE,nClass=NULL,nEpoch=30,
   scaleX=TRUE,scaleY=TRUE)
krsFitImg(x,y,hidden=c(100,100),acts=rep("relu",length(hidden)),
    nClass,nEpoch=30) 
## S3 method for class 'krsFit'
predict(object,...)
diagNeural(krsFitOut)
Arguments
| object | An object of class 'krsFit'. | 
| ... | Data points to be predicted, 'newx'. | 
| x | X data, predictors, one row per data point, in the training set. Must be a matrix. | 
| y | Numeric vector of Y values.  In classification case
must be integers, not an R factor, and take on the values 0,1,2,...,
 | 
.
| Vector of number of units per hidden layer, or the rate for a dropout layer. | |
| acts | Vector of names of the activation functions, one per hidden layer. Choices inclde 'relu', 'sigmoid', 'tanh', 'softmax', 'elu', 'selu'. | 
| learnRate | Learning rate. | 
| conv | R list specifying the convolutional layers, if any. | 
| xShape | Vector giving the number of rows and columns, and in the convolutional case with multiple channels, the number of channels. | 
| classif | If TRUE, indicates a classification problem. | 
| nClass | Number of classes. | 
| nEpoch | Number of epochs. | 
| krsFitOut | An object returned by  | 
| scaleX | If TRUE, scale X columns. | 
| scaleY | If TRUE, scale Y columns. | 
Details
The krstFit function is a wrapper for the entire pipeline
in fitting the R keras package to a dataset:  Defining the model,
compiling, stating the inputs and so on.  As a result, the wrapper
allows the user to skip those details (or not need to even know them),
and define the model in a manner more familiar to R users.
The paired predict.krsFit takes as its first argument the output
of krstFit, and newx, the points to be predicted.
Author(s)
Norm Matloff
Examples
## Not run: 
library(keras)
data(peDumms) 
ped <- peDumms[,c(1,20,22:27,29,32,31)]
# predict wage income
x <- ped[,-11] 
y <- ped[,11] 
z <- krsFit(x,y,c(50,50,50),classif=FALSE,nEpoch=25) 
preds <- predict(z,x) 
mean(abs(preds-y))  # something like 25000
x <- ped[,-(4:8)] 
y <- ped[,4:8] 
y <- dummiesToInt(y,FALSE) - 1
z <- krsFit(x,y,c(50,50,0.20,50),classif=TRUE,nEpoch=175,nClass=6) 
preds <- predict(z,x)
mean(preds == y)   # something like 0.39
# obtain MNIST training and test sets; the following then uses the
# example network of 
# https://databricks-prod-cloudfront.cloud.databricks.com/
# public/4027ec902e239c93eaaa8714f173bcfc/2961012104553482/
# 4462572393058129/1806228006848429/latest.html
# converted to use the krsFit wrapper
x <- mntrn[,-785] / 255 
y <- mntrn[,785]
xShape <- c(28,28)
# define convolutional layers
conv1 <- list(type='conv2d',filters=32,kern=3)
conv2 <- list(type='pool',kern=2)
conv3 <- list(type='conv2d',filters=64,kern=3) 
conv4 <- list(type='pool',kern=2)
conv5 <- list(type='drop',drop=0.5)
# call wrapper, 1 dense hidden layer of 128 units, then dropout layer
# with proportion 0.5
z <- krsFit(x,y,conv=list(conv1,conv2,conv3,conv4,conv5),c(128,0.5),
   classif=TRUE,nClass=10,nEpoch=10,xShape=c(28,28),scaleX=FALSE,scaleY=FALSE)
# try on test set
preds <- predict(z,mntst[,-785]/255)
mean(preds == mntst[,785])  # 0.98 in my sample run
## End(Not run)