我很确定这对于当前的neuralnet 代码是不可能的。你可以看看here。
相关部分大约从第 350 行开始
result <- rprop(weights = weights, threshold = threshold,
response = response, covariate = covariate, learningrate.limit = learningrate.limit,
learningrate.factor = learningrate.factor, stepmax = stepmax,
lifesign = lifesign, lifesign.step = lifesign.step, act.fct = act.fct,
act.deriv.fct = act.deriv.fct, err.fct = err.fct, err.deriv.fct = err.deriv.fct,
algorithm = algorithm, linear.output = linear.output,
exclude = exclude, learningrate.bp = learningrate.bp)
startweights <- weights
weights <- result$weights
step <- result$step
reached.threshold <- result$reached.threshold
net.result <- result$net.result
error <- sum(err.fct(net.result, response))
if (is.na(error) & type(err.fct) == "ce")
if (all(net.result <= 1, net.result >= 0))
error <- sum(err.fct(net.result, response), na.rm = T)
在这里您可以看到内部err.fct 仅显式传递了网络的result,而不是权重。如果要传递权重和 lambda 参数,则需要更改源代码。虽然可能不适合“胆小鬼”,但这确实是可能的,因为您可以随时下载源代码并开始修改它。