【发布时间】:2016-11-09 13:51:28
【问题描述】:
我使用 R 中的 C50 库创建了一个模型,用于将电子邮件分类为各种类别。我现在想使用该模型通过 Java 使用 R predict 对新收到的电子邮件进行实时分类。我不确定如何从 R 中保存模型并将其加载到另一个与 Java 一起使用的 R 实例中。 有什么方法可以将模型保存到文件中,然后将文件加载到 R 中以获取模型进行预测?
【问题讨论】:
我使用 R 中的 C50 库创建了一个模型,用于将电子邮件分类为各种类别。我现在想使用该模型通过 Java 使用 R predict 对新收到的电子邮件进行实时分类。我不确定如何从 R 中保存模型并将其加载到另一个与 Java 一起使用的 R 实例中。 有什么方法可以将模型保存到文件中,然后将文件加载到 R 中以获取模型进行预测?
【问题讨论】:
这篇文章回答了如何将模型(它是一个 java 对象)保存到文件中,然后再次加载该文件:
Save/load a M5 RWeka caret model fails
library(RWeka)
j48.model <- J48(formula=class ~ ., data=data)
library(rJava)
.jcache(j48.model$classifier)
save(j48.model, file="j48.model.rda")
【讨论】:
当我从 Trees 迁移到 Radom Forests 时,我使用下面的方法从 randomForest 中保存模型。 :) 。我还使用了 combine 以便在同一模型中添加多个随机森林。
mod <- randomForest(as.factor(type)~.-type,data1_rf[,c(5:52)],proximity=FALSE,mtry=5,nodesize=10,ntree=500,importance=FALSE)
mod1 <- randomForest(as.factor(type)~.-type,data2_rf[,c(5:52)],proximity=FALSE,mtry=5,nodesize=10,ntree=500,importance=FALSE)
mod <- combine(mod,mod1)
然后将最终模型保存到文件中。
save(mod,file="/Rscripts/Models/MULTI23Jul2016.RData")
要使用它,请加载模型。
mod<-get(load("/Rscripts/Models/MULTI23Jul2016.RData"))
【讨论】: