Как использовать мозг. js прогнозирование? - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь обернуть голову вокруг того, как это работает, но у меня возникают трудности.

Я понятия не имею, является ли это правильным способом, так как я не смог найти четкие учебники.

Данные представляют собой набор ежемесячных продаж, упорядоченных по убыванию, и цель состоит в прогнозировании следующего значения продаж.

const brain = require("brain.js");

let data = [996354, 2779977, 950792, 907340, 1284286, 1266783, 822415, 686550, 1758690, 1186851, 1441859, 1464443, 912951, 1421954, 1521516, 918052, 770238, 1417087, 919990, 1334906, 1224836, 939102, 1063518, 1224231, 877331, 1021506, 874522, 940530, 683876, 1121152, 737414, 1166480, 1082231, 822357, 1146419, 1430051, 631730, 1215160, 868301, 803220, 1182219, 935233, 594446, 1268709, 1160274, 984417, 1124874, 1358540, 878604, 1062942, 1032730, 695323, 1092530, 702907, 986607, 897194, 957222, 935261, 896631, 1028320, 710657, 771455, 795649, 870530, 1251944, 676158, 595391, 861075, 1260068, 1011426, 1059614, 1265080, 1567216, 490529];

const net = new brain.recurrent.LSTMTimeStep({
    inputSize: 1,
    hiddenLayers: [10],
    outputSize: 1
});

net.train([data], {
    learningRate: 0.005,
    errorTresh: 0.02,
    // log: (stats) => console.log(stats)
})

console.log(net.forecast(data, 1))
// [ -0.020625554025173187 ]
// [ -0.008880683220922947 ]
// [ 0.11804535984992981 ]

Каждый раз, когда я запускаю этот Я получаю разные результаты, которые я не могу расшифровать.

1 Ответ

0 голосов
/ 14 февраля 2020

Вам необходимо нормализовать входы в диапазоне от 0 до 1. Затем, после запуска net, вы можете денормализовать выходы до их исходного масштаба.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...