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,...)
我一直在尝试不同的预测方法并偶然发现 网络资源() 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,...)