Basic NARX

by pulipuli

HTML

<script src="https://cdn.rawgit.com/wagenaartje/neataptic/0fdd4b01/dist/neataptic.js"></script>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>

JavaScript

var narx = new neataptic.Architect.NARX(1, 5, 1, 3, 3);

// Train a sequence
var trainingData = [
  { input: [0], output: [0] },
  { input: [0], output: [0] },
  { input: [0], output: [1] },
  { input: [1], output: [0] },
  { input: [0], output: [0] },
  { input: [0], output: [0] },
  { input: [0], output: [1] },
];

narx.train(trainingData, {
  log: 1,
  iterations: 3000,
  error: 0.03,
  rate: 0.05
});

for(var i in trainingData){
  var input = trainingData[i].input;
  var output = Math.round(narx.activate(input));
  $('body').append('<p>Input: ' + input[0] + ', output: ' + output + '</p>');
}

for(var i = 0; i < 10; i++){
  var input = output;
  var output = Math.round(narx.activate([input]))
  $('body').append('<p>Next prediction:' + output + '</p>');
}