Не удается сохранить/загрузить модель каретки M5 RWeka

Я получаю сообщение об ошибке после загрузки сохраненной реализации M5 пакета RWeka через 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.


person Gary Chung    schedule 16.01.2015    source источник
comment
не могли бы вы предоставить MyData или использовать встроенный набор данных, чтобы я мог его опробовать? Может GermanCredit от caret?   -  person Hack-R    schedule 16.01.2015
comment
Hack-R, код обновлен для воспроизводимости.   -  person Gary Chung    schedule 22.01.2015
comment
Спасибо, сегодня попробую посмотреть   -  person Hack-R    schedule 22.01.2015


Ответы (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")

Это может помочь вам.

Кстати, есть ли методы, которые могут превратить классификатор J48 Rweka в правила?

person 楊亮魯    schedule 15.05.2015