Input data

The initial data represent the characteristics of the components of the concrete mixture. Such as: component density, cement grade, etc.

dt_x <- read.table("input.txt", header = F)

Let's look at the data

head(dt_x)
##     V1 V2   V3   V4   V5   V6 V7 V8  V9  V10  V11 V12  V13 V14
## 1 12.5  3 2.90 1250 2.60 1550  1 10 0.6 2.55 1350   6 1.43 300
## 2 15.0  6 2.95 1300 2.61 1560  2 20 0.6 2.56 1360   5 1.62 300
## 3 20.0  9 3.00 1350 2.62 1570  3 40 0.6 2.57 1370   4 1.62 400
## 4 22.5  2 3.05 1250 2.63 1580  4 10 0.6 2.58 1380   3 1.40 400
## 5 25.0  5 3.10 1300 2.64 1590  5 20 0.6 2.59 1390   2 1.76 400
## 6 30.0  8 3.15 1350 2.65 1600  6 40 0.6 2.60 1400   1 1.69 500

Output data

The output data are the characteristics of ready-mixed concrete: its strength, density and consumption of components.

dt_y <- read.table("output.txt", header = F)

Let's look at the data

head(dt_y)
##      V1    V2    V3      V4     V5      V6
## 1 191.3 15.30 273.6 1121.30 635.90 2222.10
## 2 191.3 18.30 309.9 1054.30 683.00 2238.50
## 3 176.3 24.40 285.6 1054.30 711.70 2227.90
## 4 191.3 27.50 267.8 1141.20 653.80 2254.10
## 5 181.3 27.50 319.1 1146.60 641.70 2288.70
## 6 200.0 35.63 338.0 1234.57 577.44 2350.01

Create dataset

input_vars <- data.frame(dt_x)
output_vars <- data.frame(dt_y)

Load Library

library(scales)
library(reshape)
library(Rcpp)
library(RSNNS)
library(devtools)

Import the function from Github

source_url('https://gist.githubusercontent.com/fawda123/7471137/raw/466c1474d0a505ff044412703516c34f1a4684a5/nnet_plot_update.r')

Build neural net with three hidden layers, 15, 17, and 11 nodes in each

mod<-mlp(input_vars, output_vars, size=c(15,17,11),linOut=T)
par(mar=numeric(4),family='serif',ps=14)

Plot ANN

plot.nnet(mod)

Acknowledgments

Huge thanks to the author of the function "nnet_plot_update.r"