This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.

Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Ctrl+Shift+Enter.

library(neuralnet)

Add a new chunk by clicking the Insert Chunk button on the toolbar or by pressing Ctrl+Alt+I.

When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the Preview button or press Ctrl+Shift+K to preview the HTML file).

dataPath<-"data/"
dat <- read.csv(paste0(dataPath,"test_sample.csv"))
#dat<-as.data.frame(dat)
#dat$class<-as.factor(dat$class)
dat
plot(dat$x,dat$y,col="orange",pch=16,ylim=c(0,1),xlim=c(0,1))
points(dat$x[dat$class==1],dat$y[dat$class==1],col="blue",pch=16)

set.seed(1)
m1 <- neuralnet(class~x+y,data=dat,hidden=3,err.fct="ce",linear.output=FALSE,threshold=0.1,stepmax = 1e6)
plot(m1)

predict <- (compute(m1,dat[c("x","y")])$net.result > 0.5)*1
head(predict)
     [,1]
[1,]    1
[2,]    1
[3,]    0
[4,]    1
[5,]    0
[6,]    0
head(dat)
#(conf <- table(pred = predict[,2], true = dat[,"class"]))
(conf <- table(pred = predict, true = dat[,"class"]))
    true
pred   0   1
   0 549  56
   1  45 350
(accuracy = (conf[1,1]+conf[2,2])/sum(conf))
[1] 0.899
ctrl <- trainControl(method = "cv", number = 5)
set.seed(1)
nnGTrain <- train(class~x+y, data = dat, method = "nnet", 
                  trControl = ctrl, 
                  tuneGrid = expand.grid(.size=3:8,.decay=.3),
                  maxit = 1000, trace = FALSE, metric="Accuracy")
print(nnGTrain)
Neural Network 

1000 samples
   2 predictor
   2 classes: '0', '1' 

No pre-processing
Resampling: Cross-Validated (5 fold) 
Summary of sample sizes: 800, 801, 800, 799, 800 
Resampling results across tuning parameters:

  size  Accuracy   Kappa    
  3     0.8510836  0.6860252
  4     0.8490836  0.6826567
  5     0.8510836  0.6865936
  6     0.8510836  0.6863053
  7     0.8500886  0.6843964
  8     0.8500886  0.6843964

Tuning parameter 'decay' was held constant at a value of 0.3
Accuracy was used to select the optimal model using the
 largest value.
The final values used for the model were size = 3 and decay = 0.3.
plot(nnGTrain)

LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpUaGlzIGlzIGFuIFtSIE1hcmtkb3duXShodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tKSBOb3RlYm9vay4gV2hlbiB5b3UgZXhlY3V0ZSBjb2RlIHdpdGhpbiB0aGUgbm90ZWJvb2ssIHRoZSByZXN1bHRzIGFwcGVhciBiZW5lYXRoIHRoZSBjb2RlLiANCg0KVHJ5IGV4ZWN1dGluZyB0aGlzIGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqUnVuKiBidXR0b24gd2l0aGluIHRoZSBjaHVuayBvciBieSBwbGFjaW5nIHlvdXIgY3Vyc29yIGluc2lkZSBpdCBhbmQgcHJlc3NpbmcgKkN0cmwrU2hpZnQrRW50ZXIqLiANCg0KYGBge3J9DQpsaWJyYXJ5KG5ldXJhbG5ldCkNCmBgYA0KDQpBZGQgYSBuZXcgY2h1bmsgYnkgY2xpY2tpbmcgdGhlICpJbnNlcnQgQ2h1bmsqIGJ1dHRvbiBvbiB0aGUgdG9vbGJhciBvciBieSBwcmVzc2luZyAqQ3RybCtBbHQrSSouDQoNCldoZW4geW91IHNhdmUgdGhlIG5vdGVib29rLCBhbiBIVE1MIGZpbGUgY29udGFpbmluZyB0aGUgY29kZSBhbmQgb3V0cHV0IHdpbGwgYmUgc2F2ZWQgYWxvbmdzaWRlIGl0IChjbGljayB0aGUgKlByZXZpZXcqIGJ1dHRvbiBvciBwcmVzcyAqQ3RybCtTaGlmdCtLKiB0byBwcmV2aWV3IHRoZSBIVE1MIGZpbGUpLg0KDQpgYGB7cn0NCmRhdGFQYXRoPC0iZGF0YS8iDQpkYXQgPC0gcmVhZC5jc3YocGFzdGUwKGRhdGFQYXRoLCJ0ZXN0X3NhbXBsZS5jc3YiKSkNCmBgYA0KDQpgYGB7cn0NCiNkYXQ8LWFzLmRhdGEuZnJhbWUoZGF0KQ0KI2RhdCRjbGFzczwtYXMuZmFjdG9yKGRhdCRjbGFzcykNCmRhdA0KYGBgDQpgYGB7cn0NCnBsb3QoZGF0JHgsZGF0JHksY29sPSJvcmFuZ2UiLHBjaD0xNix5bGltPWMoMCwxKSx4bGltPWMoMCwxKSkNCnBvaW50cyhkYXQkeFtkYXQkY2xhc3M9PTFdLGRhdCR5W2RhdCRjbGFzcz09MV0sY29sPSJibHVlIixwY2g9MTYpDQpgYGANCmBgYHtyfQ0Kc2V0LnNlZWQoMSkNCm0xIDwtIG5ldXJhbG5ldChjbGFzc354K3ksZGF0YT1kYXQsaGlkZGVuPTMsZXJyLmZjdD0iY2UiLGxpbmVhci5vdXRwdXQ9RkFMU0UsdGhyZXNob2xkPTAuMSxzdGVwbWF4ID0gMWU2KQ0KcGxvdChtMSkNCmBgYA0KYGBge3J9DQpwcmVkaWN0IDwtIChjb21wdXRlKG0xLGRhdFtjKCJ4IiwieSIpXSkkbmV0LnJlc3VsdCA+IDAuNSkqMQ0KaGVhZChwcmVkaWN0KQ0KaGVhZChkYXQpDQpgYGANCg0KDQpgYGB7cn0NCiMoY29uZiA8LSB0YWJsZShwcmVkID0gcHJlZGljdFssMl0sIHRydWUgPSBkYXRbLCJjbGFzcyJdKSkNCihjb25mIDwtIHRhYmxlKHByZWQgPSBwcmVkaWN0LCB0cnVlID0gZGF0WywiY2xhc3MiXSkpDQpgYGANCg0KDQpgYGB7cn0NCihhY2N1cmFjeSA9IChjb25mWzEsMV0rY29uZlsyLDJdKS9zdW0oY29uZikpDQpgYGANCmBgYHtyfQ0KY3RybCA8LSB0cmFpbkNvbnRyb2wobWV0aG9kID0gImN2IiwgbnVtYmVyID0gNSkNCnNldC5zZWVkKDEpDQpubkdUcmFpbiA8LSB0cmFpbihjbGFzc354K3ksIGRhdGEgPSBkYXQsIG1ldGhvZCA9ICJubmV0IiwgDQogICAgICAgICAgICAgICAgICB0ckNvbnRyb2wgPSBjdHJsLCANCiAgICAgICAgICAgICAgICAgIHR1bmVHcmlkID0gZXhwYW5kLmdyaWQoLnNpemU9Mzo4LC5kZWNheT0uMyksDQogICAgICAgICAgICAgICAgICBtYXhpdCA9IDEwMDAsIHRyYWNlID0gRkFMU0UsIG1ldHJpYz0iQWNjdXJhY3kiKQ0KcHJpbnQobm5HVHJhaW4pDQpgYGANCmBgYHtyfQ0KcGxvdChubkdUcmFpbikNCmBgYA0KDQo=