【问题标题】:R Neural Network Forecasting - Aspect of Randomness?R 神经网络预测 - 随机性方面?
【发布时间】:2017-08-23 09:25:09
【问题描述】:

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

【问题讨论】:

    标签: r neural-network forecasting


    【解决方案1】:

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

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

    编辑:来自 cmets 中 OP 的新问题

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

    例如:

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

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

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

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

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

    【讨论】:

    • 没有办法避免吗?除了运行它很多次并对其进行平均预测吗?
    • 你可以控制它。我会发布一个编辑,所以你知道怎么做。
    • 运行 100 次并取结果的平均值是否可行?因为虽然播种有效,但不一定能给我最好的预测。
    • 我编辑了我的答案,向您展示如何增加重复次数。
    猜你喜欢
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 2022-08-19
    • 2013-09-18
    • 2017-12-02
    • 1970-01-01
    相关资源
    最近更新 更多