Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在R中保存机器学习模型_Python_R_Machine Learning - Fatal编程技术网

Python 如何在R中保存机器学习模型

Python 如何在R中保存机器学习模型,python,r,machine-learning,Python,R,Machine Learning,我正在使用R创建一些基本的机器学习模型。我使用klar、caret和e1071软件包。下面是生成我的模型的代码 library(e1071) library(klaR) library(caret) x = iris[,-5] y = iris$Species model = train(x,y,'nb',trControl = trainControl(method='cv',number=10)) 我想知道,是否可以将此模型保存到某个地方,然后再引用它?例如,在python中,我

我正在使用R创建一些基本的机器学习模型。我使用klar、caret和e1071软件包。下面是生成我的模型的代码

library(e1071)
library(klaR)
library(caret)



x = iris[,-5]

y = iris$Species

model = train(x,y,'nb',trControl = trainControl(method='cv',number=10))
我想知道,是否可以将此模型保存到某个地方,然后再引用它?例如,在python中,我们可以使用pickle包

nbClassifier = nltk.NaiveBayesClassifier.train(featureSets)

saveNBClassifier = open("abtNBClassifier.pickle","wb")

pickle.dump(nbClassifier, saveNBClassifier)

saveNBClassifier.close()
后来

open_file = open("abtNBClassifier.pickle", "rb")

classifier = pickle.load(open_file)

open_file.close()
R中是否可能有类似的功能?

是的,您可以使用:

save(model,file=“model.Rda”)

后来:


load(“model.Rda”)

如果只想保存单个对象,还可以使用:

saveRDS(model, file = "model.rds")
之后你可以使用

loadedModel <- readRDS(model.rds)

loadedModel谢谢@tcash21,我可以保存但不能加载。当我以loadedModel=load(“nbModel.Rda”)的形式加载它,然后尝试查看loadedModel时,它显示的是“model”,而不是实际的model。加载模型时,它将为它指定与保存它的对象相同的名称,因此在您的例子中是“model”。加载对象后,您应该能够像平常一样使用它(例如,使用它进行预测),谢谢,但是我仍然需要取消对它的引用吗?如果它总是以“model”或我保存它的任何名称加载,那么执行loadModel=load(“model.Rda”)有意义吗?不,执行
loadModel=load(“model.Rda”)没有意义。正如答案所示,只需执行
加载(“model.Rda”)
是有意义的。如果您想对其进行重命名,则由您决定。完美!正是我想要的:)