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

R Neural Network Forecasting - Aspect of Randomness?

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

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

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

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

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

例如:

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

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

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

每次使用此 "seed" 值 (666) 运行 时都会给出相同的结果。当然,您必须 运行 set.seed(666) 在每个 运行 其余代码之前。

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

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

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