Javascript 如何使用Brain.js预测?

Javascript 如何使用Brain.js预测?,javascript,machine-learning,neural-network,recurrent-neural-network,Javascript,Machine Learning,Neural Network,Recurrent Neural Network,我正试图了解它是如何工作的,但我遇到了困难 我不知道这是否是正确的方法,因为我无法找到清晰的教程 数据是按降序日期排序的一组月度销售额,目标是预测下一个销售额。 const brain = require("brain.js"); let data = [996354, 2779977, 950792, 907340, 1284286, 1266783, 822415, 686550, 1758690, 1186851, 1441859, 1464443, 912951, 1421954, 1

我正试图了解它是如何工作的,但我遇到了困难

我不知道这是否是正确的方法,因为我无法找到清晰的教程

数据是按降序日期排序的一组月度销售额,目标是预测下一个销售额。

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 ]

每次我运行这个,我都会得到不同的结果,我无法解释

您需要将输入规格化为介于0和1之间。然后在运行网络后,您可以将输出反规范化为其原始比例。

如果您不知道也有js版本的TensorFlow,那么这里似乎是唯一的“教程”。为什么预测每次运行时都会给出不同的结果?您能分享更多的代码吗?也许到时候我们可以更具体地回答。有人找到了解决方案,或者有一个很好的例子,使用预测和大量的工作?