【问题标题】:brain.js - predicting next 10 valuesBrain.js - 预测接下来的 10 个值
【发布时间】:2018-07-10 12:53:55
【问题描述】:

brain.js 页面上有一个简单的 LSTMTimeStep 示例 - https://github.com/BrainJS/brain.js

var net = new brain.recurrent.LSTMTimeStep();
net.train([
  [1, 3],
  [2, 2],
  [3, 1],
]);    
var output = net.run([[1, 3], [2, 2]]);  // [3, 1]

这足以预测下一个值/标签。但是,如果我有数千个训练集和数千个测试数据集,我想预测接下来的 10 个或 100 个值怎么办。如何做到这一点?

【问题讨论】:

    标签: javascript machine-learning artificial-intelligence


    【解决方案1】:

    我认为您需要使用预测方法来预测一组值。

    使用参数计数。

    查看预测部分here

    我做了一个例子,似乎可以工作

    const net = new brain.recurrent.LSTMTimeStep({
        inputSize: 3,
        hiddenLayers: [10],
        outputSize: 3
    });
    
    //Same test as previous, but combined on a single set
    const trainingData = [
        [8,8,1],[8,8,3],[8,8,5],[8,2,8],[3,6,6],[8,4,5]
    ];
    
    net.train(trainingData, { log: true, iterations:200 });
    
    console.log( net.run([[8,2,3]]));
    
    console.log( net.forecast([[8,8,2]], 7)) ;
    

    您可以在下面看到结果:

    iterations: 0, training error: 14.974015071677664
    iterations: 10, training error: 4.263545592625936
    iterations: 20, training error: 4.1400322914123535
    iterations: 30, training error: 4.106281439463298
    iterations: 40, training error: 4.019651651382446
    iterations: 50, training error: 3.9397279421488443
    iterations: 60, training error: 3.7364938259124756
    iterations: 70, training error: 3.594826857248942
    iterations: 80, training error: 3.4333037535349527
    iterations: 90, training error: 3.2692082722981772
    iterations: 100, training error: 3.0003069241841636
    iterations: 110, training error: 2.741880734761556
    iterations: 120, training error: 2.559309403101603
    iterations: 130, training error: 2.549466371536255
    iterations: 140, training error: 2.165259758631388
    iterations: 150, training error: 1.912764310836792
    iterations: 160, training error: 1.7081804275512695
    iterations: 170, training error: 1.5422560373942058
    iterations: 180, training error: 1.3950440088907878
    iterations: 190, training error: 1.2614964246749878
    Float32Array [ 7.450448036193848, 7.630088806152344, 3.102810859680176 ]
    [ Float32Array [ 7.769495010375977, 7.626269340515137, 3.01503324508667 ],
      Float32Array [ 8.504044532775879, 7.038702011108398, 5.765346050262451 ],
      Float32Array [ 7.573630332946777, 3.117426872253418, 8.106966018676758 ],
      Float32Array [ 4.165530204772949, 5.516692161560059, 5.85803747177124 ],
      Float32Array [ 6.954248428344727, 3.7581958770751953, 5.24238920211792 ],
      Float32Array [ 5.5002217292785645, 4.540862560272217, 6.505147457122803 ],
      Float32Array [ 6.376245498657227, 4.115119934082031, 5.876959323883057 ] ]
    

    【讨论】:

      【解决方案2】:

      您需要使用给定的集合进行训练,然后如果您愿意,您可以对接下来的 10 个项目执行以下操作: 预测下一个项目。 将其添加到训练集。 预测下一个 +1 项。 将下一个 +1 添加到训练集。

      还可以阅读 github repo 上的流。我还建议您使用迄今为止尝试过的内容更新您的问题,这将有助于未来的用户进一步理解问题并添加到问题和答案中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-05
        • 2019-05-05
        • 2022-08-03
        • 1970-01-01
        • 2021-07-01
        相关资源
        最近更新 更多