neuralNetwork: neuralNetwork

Description Examples

Description

Bulding a simple neural network

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
input_nodes = 2
hidden_nodes1 = 10
hidden_nodes2 = 10
output_nodes = 1
learning_rate = 0.3

nn <- neuralNetwork$new(c(input_nodes,hidden_nodes1,hidden_nodes2, output_nodes), learning_rate)

n = 10000
df <- data.frame(id=1:n)
df$rnorm <- rnorm(n,0,0.2)
df$age <- sample(x=20:80, size=n, replace = T)
df$weight <- sample(x=140:300, size=n, replace = T)
df$BI <- 5+df$age *.5 + df$weight*.5 + df$age * df$weight * .01 + df$rnorm
df$age_scale <- (df$age/80)-.01
df$weight_scale <- (df$weight/300)-.01
df$BI_scale <- (df$BI/max(df$BI))-.01

for(i in 1:10){
  random_sample <- sample(1:nrow(df))
  nn$train(as.matrix(df[random_sample,c('age_scale', 'weight_scale'),drop=T]), matrix(df[random_sample,c('BI_scale'),drop=T],ncol=1))
}

difference2 <- matrix(NA,n,1)
predicted2 <- matrix(NA,n,1)
for(i in 1:n){
  predicted2[i,1] <- nn$query(unlist(df[i,c('age_scale', 'weight_scale'),drop=T]))
  difference2[i,1] <- predicted2[i,1] - df[i,c('BI_scale'),drop=T]
}


(R2 <- 1 - (sum((df[,c('BI_scale'),drop=T]-predicted2[,1] )^2)/sum((df[,c('BI_scale'),drop=T]-mean(df[,c('BI_scale'),drop=T]))^2)))

plot(predicted2[,1],df[,c('BI_scale'),drop=T])

ArithmeticR/TOmisc documentation built on May 14, 2019, 12:43 p.m.