R神经网络预测 - 随机性方面?

时间:2017-03-29 18:17:20

标签: r neural-network forecasting

我一直在尝试不同的预测方法,偶然发现了     nnetar() 函数在R的预测包中。我很快意识到虽然这确实可以预测,但每次运行它都会给我一些不同的东西。有人可以帮忙解释为什么会这样吗?我认为我对神经网络有一个很好的理解,除非nnetar()函数随机选择节点数或其他东西,否则我不知道什么会在预测中产生巨大的差异。有帮助吗?

1 个答案:

答案 0 :(得分:2)

20,默认情况下,网络使用随机起始值进行训练,然后在使用该函数时对其预测进行平均。

因为该函数对每次运行使用随机起始值,所以每次调用的预测也会不同。

编辑:评论中来自OP的新问题

为了控制函数并每次获得相同的随机起始值,您可以简单地使用函数set.seed()和您选择的值。

例如:

    set.seed(666)
    forecast(nnetar(...),...)

    set.seed(666)
    forecast(nnetar(...),...)

    set.seed(666)
    forecast(nnetar(...),...)
每次用这个"种子"运行它时,

会给出相同的结果。价值(666)。当然,你必须在每次运行代码之前运行set.seed(666)

编辑2:评论中来自OP的新问题

为了拥有100个不同的网络以适应随机起始权重:

nnetar(...,repeats=100,...)