2

我正在使用 R 中 nnet 包中的nnet函数包。我正在尝试设置MaxNWts参数,并且想知道将这个数字设置为像 10^8 这样的大值是否有任何缺点。文档说

“允许的最大权重数量。代码中没有内在限制,但增加 MaxNWts 可能会允许非常缓慢且耗时的拟合。”

我还通过以下计算来计算尺寸参数

size = Math.Sqrt(%No of Input Nodes% * %No of Output Nodes%)

问题是,如果我将 "MaxNWts" 设置为 10000 之类的值,有时会失败,因为在处理大量数据集时系数的数量 > 10000。

编辑

有没有办法以某种方式计算 wts 的数量(以获得由 R nnet 计算的相同数字),以便我每次都可以明确设置它而不必担心失败?

建议?

4

1 回答 1

2

这就是我在应用预测建模中看到的:Kuhn M、Johnson K. 应用预测建模。第 1 版。纽约:斯普林格。2013. 对于MaxNWts=参数,您可以通过以下任一项:

5 * (ncol(predictors) + 1) + 5 + 1)

或者

10 * (ncol(predictors) + 1) + 10 + 1  

或者

13 * (ncol(predictors) + 1) + 13 + 1

predictors 是您的预测变量的矩阵

我认为这是基于您的数据的经验,它是一个正则化术语,例如收缩方法背后的想法,例如岭回归 (L2) 术语。它的主要目标是防止模型过度拟合,就像神经网络经常出现的情况一样,因为其计算的过度参数化。

于 2014-01-02T20:01:22.457 回答