2017-05-10 5 views
0

다른 스크립트에서 스크립트의 일부를 자동으로로드하는 방법을 찾고 있습니다.R은 자동으로 데이터 셋에 구현 된 전처리를 새 데이터 셋에 적용합니다.

여기 내 문제 : 데이터 세트에서 사전 처리를 수행 한 스크립트를 만든 다음 xgboost를 적용했습니다.

이 스크립트의 실현 된 전처리 (예 : 새 변수 만들기, 평균에 의한 NA 대체 - 초기 데이터 세트의 평균 유지)를 새 데이터 세트에 자동으로 적용해야합니다. 이것은 사용자에게 완전히 투명해야합니다 (복사 붙여 넣기가 없으며 새로운 세트가있는 함수 만 있고 모델의 Rdata가 인수로 입력해야 함).

내 생각은 스크립트의 일부를 Rdata의 개체로 "저장"한 다음이 스크립트를 새 스크립트에로드하면 newdataset에 전처리가 적용됩니다.

누구나 할 방법에 대한 아이디어가 있습니까?

+0

함수에 전처리 단계를 넣으시겠습니까? –

+0

그게 내가 생각하는거야. 그러나 때로는 데이터 집합을로드하고 모든 것을 적용해야합니다. 예를 들어 NA를 평균으로 바꾸려면 초기 값에서 평균을 검색해야하는 등 일부 값을 검색해야합니다. dataset, 대체 할 새 데이터 집합의 평균을 계산하지 마십시오. 따라서 여러 함수를 만들고 Rdata에서 생성 된 함수를 호출해야하는 함수를 작성해야합니다.이를 처리하는 방법은 확실하지 않습니다. – Oolis

답변

1

R에 안정적인 파이프 라인을 구현하려는 것처럼 들립니다. 큰 데이터 예측 구현을위한 모든 사전 처리, 변환 및 예측 단계를 한 곳에서 저장하십시오. 내가 현재 전용 파이프 라인 도구를 사용하고 대신에 R 스크립트를 호출하는 것을 사용하는 것이 좋습니다 것이지만

, flowr처럼, 파이프 라인 구문을 제공하려고 일부 R 패키지가있다.

당신이 중간 솔루션으로 sparklyr를 통해 Spark-ML의 파이프 라인 구문을 활용할 수있을 수있는 xgboost을하고있는 것처럼 있지만 여전히 매우 적극적으로 예상대로 아직 완전히 작동하지 않을 수 있도록 개발되고있다. 하지만 수입 그들에게,

광고 공유 파이프 라인을 저장하기위한 개방형 표준은 pmml이며, 대부분의 프레임 워크는 수출 pmml- 파이프 라인 (Rpmml 패키지를 가지고) 할 수있는 방법이있다.

ETA : 완성도, 당신은 또한 preprocess(), transform()predict() 방법을 S4 클래스로 훈련 된 각 모델에 필요한 자료 구조와 훈련 모델 객체를 래핑 (매우 구체적인)를 정의하려고 할 수 있습니다. 나는 개인적인 용도로이 작업을 해왔지만, 나에게 그것은 너무 많은 덕트와 티랩이있어서 고객에게 노출되는 느낌이 든다.

+0

많은 분들께 감사드립니다. 훌륭한 답변입니다. 구현해 보겠습니다. – Oolis