如何保存 rxNeuralNet(一个 mlModel)的输出以供重用?

How to save the output from rxNeuralNet (an mlModel) for reuse?

我使用了 rxNeuralNet 并得到了很好的结果。我想保存它以备将来使用。

nnOutput <- rxNeuralNet(formula = savedFormula, data = inputData, 
                        type = "regression", acceleration = "sse")

我可以将 nnOutput 与 rxPredict 一起使用,并验证我的答案。

rxPredict(nnOutput, data = testSet, outData = tempXDF)

现在我想保存输出,以便以后重用。 (培训时间并非微不足道。)我似乎找不到任何这样做的例子。我试过:

rxDataStep(inData = nnOutput, outFile = tempXDF, overwrite = TRUE)
rxImport(inData = nnOutput, outFile = tempXDF, overwrite = TRUE)
write.csv(nnOutput, file = "c:\temp\temp.csv")

有什么建议吗?

如果您有 SQL 服务器,您可以使用 rxSerializeModel and/or rxWriteObject.

将二进制模式持久化到 SQL

也可以使用"bog-standard"Rserialize函数,或者save,或者saveRDS

一个rxNeuralNet模型对象只是一个普通的R对象。您可以使用常用的 R 方法来处理它。

例如,假设您的数据是一个数据框:

glmMod <- glm(y ~ x1 + x2 + x3, data=dat)
nnMod <- rxNeuralNet(y ~ x1 + x2 + x3, data=dat,
                     type="regression", accel="sse")
save(glmMod, nnMod, file="models.rdata")

下次启动R时:

load("models.rdata")
glmPred <- predict(glmMod, newdat)
nnPred <- rxPredict(nnMod, newdat, outData=NULL)