保存/加载M5 RWeka插入符模型失败

时间:2015-01-16 19:17:35

标签: r r-caret rweka

在通过Caret加载RWeka软件包的已保存M5实现后,我想出了一个错误。

  

.jcall(o,“Ljava / lang / Class;”,“getClass”)出错:

     

RcallMethod:尝试调用NULL对象的方法。

重现错误:

library(caret); library(RWeka)
data(GermanCredit)

myModel <- train(Duration~Amount, data=GermanCredit, method="M5")
predict(myModel, GermanCredit[1,]) # Works.

save(myModel, file="myModel.rda")
load("myModel.rda")
predict(myModel, GermanCredit[1,]) # Produces the RcallMethod error.

This post表示RWeka对象是对Java对象的引用,并且必须序列化该对象才能正确保存/加载。

但是,我找不到合适的命令将其扩展到Caret包的实现。

1 个答案:

答案 0 :(得分:3)

http://one-line-it.blogspot.tw/2013/03/r-store-rweka-model-to-file.html

library(RWeka)
j48.model <- J48(formula=class ~ ., data=data)
library(rJava)
.jcache(j48.model$classifier)
save(j48.model, file="j48.model.rda")

这可能会对你有帮助。

顺便说一句 有没有方法可以将J48 Rweka分类器变成规则?