2017-01-03 2 views
0

특히 RandomForestModel을 사용하여 spark-mllib로 분류하려고합니다.Spark-mllib retraining saved models

나는이 예제를 spark (RandomForestClassificationExample.scala)에서 살펴 봤지만 다소 확장 된 접근 방식이 필요하다.

나는 모델을 훈련시키고 미래의 사용을 위해 모델을 저장할 수 있어야하고, 그것을로드하고 더 훈련 할 수 있어야한다. 데이터 집합을 확장하고 다시 훈련하십시오.

답변

1

향후 사용을 위해 모델을 내보내고 가져올 필요가 있음을 완전히 알고 있습니다.

불행히도 Spark에서는 "추가"교육을 수행 할 수 없으며 의미가 없습니다. 따라서 첫 번째 모델 + 새 데이터를 훈련하는 데 사용되는 데이터가있는 모델을 다시 훈련하는 것이 좋습니다. 당신은 더 많은 데이터 (예를 들어, 기능, 차단, 계수 등) 나는이 질문에 대한 답변 바랍니다

를 추가하려면

첫 번째 훈련 값은/통계는 더 이상 많은 의미가 없습니다.

+0

덧붙여서, 새로운/확장 데이터 세트를 사용하여 모델을 학습 할 때 시작점으로 이전에 훈련 된 모델 매개 변수를 사용하는 것이 유일한 방법입니다. 그러나 초과하지 않는지 확인하기 위해 매개 변수에 대해 _clean 슬레이트 상태로 모델을 실행해야합니다. 따라서, 나는 eliasah와 동의하는 것은 _retraining_이 거의 의미가 없다는 것에 동의한다. – TDrabas

+0

온라인 학습이 큰 분야라는 것을 감안할 때 추가 교육은 왜 의미가 없습니까? 가능할 때마다 기본 SGD를 최소한 지원할 수있는 것은 아닙니다. – user31415

0

JavaRDD[Object]을 저장해야하는 경우

model.saveAsObjectFile() 

값은 자바 직렬화를 사용하여 writter됩니다 (자바) 할 수 있습니다. 그런 다음 데이터를 읽으려면 다음을 수행하십시오.

JavaRDD[Object] model = jsc.objectFile(pathOfYourModel) 

오브젝트 파일은 Python에서 사용할 수 없으므로주의하십시오. 그러나 saveAsPickleFile()을 쓰면 모델을 쓰고 pickleFile()이면 읽을 수 있습니다.

0

이전 모델을 사용하고 새 데이터로 다시 테스트하려면 Random Forest 대신 강화 학습 기술을 찾아야 할 수 있습니다.

아시다시피, Spark (및 Hadoop) 위에 심층적 인 학습 알고리즘을 구현하는 deeplearning4j이 있습니다.