2012-08-23 5 views
1

개인 프로젝트의 경우 여러 텍스트를 분류하기 위해 여러 텍스트를 대상으로 여러 가지 학습 알고리즘을 실행해야합니다.모델을로드하는 것이 왜 R에 너무 많은 시간이 걸립니까?

저는 RapidMiner를 사용하여이 작업을 했었지만 모든 개발을 R로 이동하기로 결정했습니다.

지금보고있는 문제 (RapidMiner에서 알지 못했던 문제)는 모델을로드하는 데 많은 시간이 걸리는 것입니다. 예를 들어

:

나는 그것이 텍스트가 스포츠를 참조하는 경우 확인하는 모델을 가지고있다. 모델은 37.7 MB이며 내가 모델을 호출하고 내 2.2 GH i7 Mac with 4GB of RAM

방법으로 8:34 걸리는 다음과 같다 : 모델은 RTextTools

그 쿼리 변수를 사용하여 생성 된

fileNameMatrix = paste(query,query1,"-matrix.Rd", sep ="") 
fileNameModel= paste(query,query1,"-model.Rd", sep ="") 

load(fileNameMatrix) 
load(fileNameModel) 

왜냐하면 나는 거의 20 개의 모델을 호출하고 다른 데이터 세트와 비교해야하기 때문이다. 그래서 8 분이 많이 걸리지는 않지만, 로딩 할 때 거의 3 시간 만에 모든 것을 읽었을 때 거의 실시간 작업을 고려하면 내 작업을 거의 쓸모 없게 만듭니다.

모델의 크기를 줄이는 것이 옵션이 아닌 경우 어떤 요소를 고려하여 로딩 시간을 단축해야합니까?

내가 의심스러운 또 다른 한 가지는 매트릭스 파일이 다소 작지만 64KB 모델이 여전히 37.7MB 인 것입니다. 모델 파일이 필요 이상으로 커질 수 있습니까? RTextTools를 사용하여 비슷한 경험을 한 사람이 있습니까?

이것은 내가 잘못한 일을하는 경우 실례지만 R에서 모델을 사용하는 첫 번째 작업 중 하나입니다.

시간 내 주셔서 감사 드리며 올바른 방향으로 팁을 보내 주시면 감사하겠습니다.

답변

1

활동 모니터에서 RAM 사용량을 확인 했습니까? 압축 된 RData 파일은 비교적 작지만 대량으로 압축됩니다. 예를 들어 0n x n 행렬은 (사용자의 작은 행렬 크기를 설명 할 수 있음)을위한 공간을 기본적으로 차지하지 않습니다.그러면로드 된 모델이 커질 수 있습니다. RData 파일의 길이는 200 MB 일 수 있지만 메모리에로드 할 수없는 파일의 크기는 R입니다. 컴퓨터가 드라이브 공간을 사용하여 파일을로드하려고 시도 할 수 있기 때문에 RAM이 부족한 경우 문제가 될 수 있습니다.

+0

감사합니다. 깨끗한 재부팅에서 실행하고 RAM을 확인하려고했습니다. 나는 실행 중에 CPU가 급격히 증가했다는 것을 알았고 잠시 동안 거의 아무것도 돌아 가지 않았지만 RAM을 확인해야했습니다. 다른 점에 대해서는 압축 된 Rdata 파일의 최종 크기를 확인하는 방법이 있는지 알고 있습니까? 시간 내 주셔서 감사합니다. – JordanBelf

+0

재부팅 전에 몇 가지 테스트를 수행했는데 이것이 문제 일 수 있습니다. R은 모델을로드 한 후 70MB에서 1.42GB로 변경되었습니다 (20 개 모델 중 단 하나만 해당). 즉, 모델이 잘못 포맷되어 있고 @ozjimbob이 제안한대로 많은 불필요한 데이터가있는 거대한 파일을 생성한다는 것입니다. 또는 RAM을 더 구입해야합니다. ( – JordanBelf

+0

모델이 매우 커서 점프가 많지 않은 경우는 드문 일이 아닙니다. . 많은 데이터를 쉽게 압축 할 수있는 경우 정상입니다. 확인하려면'compress = FALSE' 옵션을 사용하여 압축되지 않은 파일에 내용을 저장하십시오. 모델이 있는지 확인하는 좋은 방법을 생각할 수 없습니다. 문제는 아마도 저장된 모델을 온라인 (RData')에서 찾아 다시 생성하고 저장하고 크기를 비교할 것입니까? – jclancy

2

저는 RTextTools의 모델 출력에 익숙하지 않지만 모델 객체가 입력 데이터 프레임보다 훨씬 더 많이 사용됩니다. 예를 들어, glm의 출력에는 예측 된 값, 잔차, 계수, 오류 등 모든 입력 데이터가 포함되어 있습니다. RandomForest 모델의 출력은 수천 개의 나무 등등에 대한 정의와 입력 데이터를 포함합니다.

모델의 로딩 시간은 처음부터 실행하는 것과 어떻게 다릅니 까? 당신은 에 무엇이 있는지 살펴 보았는가? 그 모델 객체는 무엇이 포함되어 있는지 볼 필요가없는 통계를 정리할 수있다.

str(fileNameModel) 
+0

안녕하세요. 빠른 응답에 감사드립니다. 이것은 이상해지고있다. str()을 실행하면 완료하는 데 거의 3 시간이 걸렸습니다! 내가 할 수있는 최선의 방법은 하나씩 알고리즘을 훈련시키고 어떤 것이 문제를 일으키는 지 확인하는 것입니다. str()에 관해서는이 모든 로딩 시간을 정당화 할만한 것을 보지 못했습니다. – JordanBelf

관련 문제