通过 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.
这篇文章表明 RWeka 对象是对 Java 对象的引用,并且该对象必须被序列化才能正确保存/加载。
但是,我找不到将其扩展到 Caret 包实现的正确命令。