예측 모델 및 기타 복잡한 객체를 JSON으로 (부터) 변환 할 수있는 좋은 R 패키지가 있습니까? 이 예제의 선형 회귀 모델이 있습니다.
eruption.lm = lm(eruptions ~ waiting, data=faithful)
newdata = data.frame(waiting=80)
predict(eruption.lm, newdata)
eruption.lm 모델을 JSON으로 직렬화하여 어딘가에 저장하거나 외부 시스템으로 보낸 다음 나중에 역 직렬화하고 예측을 수행하고 싶습니다. jsonlite R 패키지로 시도했습니다 .
json<-serializeJSON(eruption.lm)
lin.model<-unserializeJSON(json)
predict(lin.model, newdata)
그러나 jsonlite는 복잡한 객체를 처리 할 수 없습니다. 역 직렬화 된 모델은 예측에서 오류를 반환합니다.
Error in eval(expr, envir, enclos) : could not find function "list"
개체를 직렬화 / 역 직렬화 할 수있는 더 나은 패키지가 있습니까?
다음에 대한 환경을 기억하도록 도와 주면됩니다 terms
.
attr(lin.model$terms, ".Environment") <- .GlobalEnv
predict(lin.model, newdata)
## 1
## 4.17622
http://github.com/jeroenooms/jsonlite/issues 에서 개선 요청으로 제출하겠습니다.
또는 네이티브 R 바이너리 직렬화를 사용할 수 있습니다.
saveRDS(lin.model, "lin.model.rds")
predict(readRDS("lin.model.rds"), newdata)
## 1
## 4.17622
텍스트 직렬화 방법이 절대적으로 필요한 경우가 아니면 다음을 수행 할 수 있습니다.
saveRDS(lin.model, file="lin.model.txt", ascii=TRUE)
predict(readRDS("lin.model.txt"), newdata)
## 1
## 4.17622
는 ascii=TRUE
개체의 텍스트 진수 표현을한다 :
1f8b 0800 0000 0000 0003 ed5d c992 1cb9
91bd e797 cc1c 9806 381c db51 36a6 c35c
e61f 4a64 5153 3645 b255 2cb6 749a 6f1f
5fb0 bcc8 ca62 4b1a 33f5 25da 8c6d 8848
04fc f9f6 b004 10f5 870b 5d62 afa9 964b
4cb1 71b8 d456 2f91 2e99 8afc f421 5e5b
e510 73ef 9770 0d35 17aa 3d5f 6290 5fe3
850a c59c 2ef9 f2f5 e1cb e3f7 4bd4 27c6
bd18 2fff f69f 5f5f 1f5f 3e3e fef2 faef
f36e bdfc f5e1 e9f5 e9eb 9f2f 94d9 4554
1112 ae39 84dc 63d7 2287 de7a b2bb a975
... (lots more)
바이너리 blob이 할 수없는 곳에 저장할 수 있습니다.
읽을 수있는 텍스트 직렬화 방법 이 필요한 경우 위에 제안 된 향상 요청을 제출하는 것이 좋습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다