2014-12-13 2 views
0

R로 만든 임의 포리스트 모델을 OpenCV로 내보내려면 어떻게해야합니까?R에서 OpenCV로 내보내기 무작위 포리스트 모델

R (특히 Random Forest)에서 프로토 타입을 작성했지만 큰 이미지를 처리 ​​할 때 후자의 속도 때문에 OpenCV에서 내 모델을 실행할 수 있기를 바랍니다.

+0

나는 이것이 라이브러리 및/또는 튜토리얼에 대한 추천과 경계를 이루기 때문에 OT로 표시되었다고 가정하고 있습니다. 나는이 주제에 관해서 내가 무엇을 발견했는지에 따라이 작업을 수행하는 방법을 모르기 때문에 질문을하고있다. 나는 다른 사람들이이 일을 어떻게 성취했는지, 또는 현재의 지식 상태에 따라 어떻게 할 것인지를 알고 싶다. 질문을 더 직설적으로 바꾸 었으며 작업 수행에 도움이 될 것이라고 생각되는 도서관에 대한 언급을 삭제했습니다. – Prophet60091

답변

0

효과적으로 PMML은 단방향 거리입니다. 어떤 프레임 워크 특정 표현 (예 : OpenCV, R)에서 PMML 표현으로 모델을 내보내는 것이 오히려 쉽지만 그 반대는 쉽지 않습니다. 일단 모델을 PMML로 표현하면 일반적으로 PMML 스코어링 엔진을 사용하여 소비해야하며 다른 일부 기술은 사용하지 않아야합니다.

귀하의 경우, 수행하려는 것은 OpenCV's CvRTrees classR's randomForest data structure 사이에서 변환하는 것입니다. (. ->PMML < ->randomForestCvRTrees <) 중매인으로 PMML을 사용하는 것보다 - 당신은 직접 양방향 컨버터 (>randomForest. 즉 CvRTrees <)를 개발하여 오프 아마 더 낫다. 현재로서는 randomForest ->PMML 전환 요소 만 있으므로 합리적인 결정을 내리기가 쉽습니다. 따라서 누락 된 전환 구성 요소 두 개 (즉, 이전의 "직접"전환 시나리오)가 누락 된 전환 구성 요소 세 개 (즉 후자의 "중재 된"전환 시나리오)보다 개발 노력이 적을 것입니다.

간단하게하기 위해 공유 교육 데이터 세트를 사용하여 "모델 이식성"을 달성하는 것이 좋습니다. 즉, OpenCV의 RF 모델이 필요하다면 CvRTrees::train 메서드 호출을 사용하여 직접 교육하고 R의 RF 모델이 필요한 경우 randomForest() 메서드 호출을 사용하여 직접 모델링합니다.

+0

헤드 업 PMML에 감사드립니다. 마지막 코멘트에 관해서는, R에서 훈련 된 모델이 최종 모델을 파생시키기 위해'캐럿 (catcht) '과 몇 가지 다른 유용한 트릭을 사용하기 때문에 그것이 저에게 효과가 있을지 확신 할 수 없습니다. OpenCV의 RF 구현으로 모델 조정을 R로 복제하는 것이 가능하지 않을 것이라고 생각합니다. – Prophet60091

+0

완벽을 기하기 위해 PMML에서 특정 프레임 워크 (예 : PMML -> OpenCV)로 이동하기가 쉽지 않은 이유를 설명 할 수 있습니까? 이것이 PMML이 무엇인지에 대한 내 이해였습니다. – Prophet60091

+1

주요 문제는 "불일치하는"어휘입니다. PMML에는 OpenCV 또는 R에서 표현할 수없는 표현식이 포함될 수 있으며 그 반대의 경우도 가능합니다. 'caret' 패키지에 관해서는 기본적으로 RF 매개 변수 공간 (예 :'ntree','mtry' 등)에서 검색을 수행합니다. 최상의 매개 변수가 무엇인지 알게되면 OpenCV에 "수동으로"매개 변수를 전송할 수 있습니다. – user1808924

관련 문제