Я хочу, чтобы машинное обучение выявляло различные простые схемы и давало точные прогнозы.Паттерн состоит в том, что при увеличении индекса (начиная с 1) соответствующее значение снова и снова увеличивается от 1 до 4:
index: 1, result: 1
index: 2, result: 2
index: 3, result: 3
index: 4, result: 4
index: 5, result: 1
index: 6, result: 2
index: 7, result: 3
index: 8, result: 4
index: 9, result: 1
index: 10, result: 2
index: 11, result: 3
index: 12, result: 4
etc.
Я пытался использовать brainjs и набор обучающих данных из 100 записей,он просто не дает ожидаемого результата.
const brain = require('brain.js');
const network = new brain.recurrent.LSTMTimeStep();
let trainingData = [];
for (let i = 1, j = [4, 1, 2, 3]; i <= 100; i++) {
trainingData.push({input: {index: i}, output: {result: j[i%4]}});
}
network.train(trainingData);
console.log(network.run({index: 101}));
console.log(network.run({index: 102}));
console.log(network.run({index: 103}));
console.log(network.run({index: 104}));
/*
{ result: 2.564828634262085 }
{ result: 2.564828634262085 }
{ result: 2.564828634262085 }
{ result: 2.564828634262085 }
*/
Я только начинаю машинное обучение, поэтому brainjs показался мне хорошим выбором, потому что он относительно прост, но, очевидно, я чего-то здесь упускаю.