Сохранить / загрузить модель каретки M5 RWeka не удалось
Я получаю сообщение об ошибке после загрузки сохраненной реализации пакета RWeka для M5 через Caret.
Ошибка в.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.
1 ответ
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")
Это может помочь вам.
Кстати Есть ли методы, которые могут превратить классификатор Rweka J48 в правила?