2014-04-14 2 views
0

문서 분류 연구에 Weka를 사용하고 있습니다. 저의 기여가 분류를 향상시키는 것을 보여줄 기준선을 설정해야합니다. 그러나 Weka API에서 기본 잠복 성 의미 분석을 사용하면 OutOfMemory 오류가 발생합니다.WEKA의 잠재 의미 분석의 확장 성

일부 전처리를 수행 한 후 내 데이터 집합은 9,603 개의 인스턴스에서 사용 된 25,765 개의 특성으로 구성됩니다. 이것은 기차 세트를위한 것입니다. 테스트 세트의 경우 동일한 수의 클래스 및 일반 속성이 있지만 여기에는 3,299가 있습니다.

나는 8GB의 램을 가지고 있으며 자바 힙 크기를 이미 4Gb로 설정했지만 여전히 OutOfMemory 오류가 발생합니다. 다음은 오류 메시지입니다 :

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 
at weka.core.matrix.Matrix.getArrayCopy(Matrix.java:301) 
at weka.core.matrix.SingularValueDecomposition.<init>(SingularValueDecomposition.java:76) 
at weka.core.matrix.Matrix.svd(Matrix.java:913) 
at weka.attributeSelection.LatentSemanticAnalysis.buildAttributeConstructor(LatentSemanticAnalysis.java:511) 
at weka.attributeSelection.LatentSemanticAnalysis.buildEvaluator(LatentSemanticAnalysis.java:416) 
at weka.attributeSelection.AttributeSelection.SelectAttributes(AttributeSelection.java:596) 
at weka.filters.supervised.attribute.AttributeSelection.batchFinished(AttributeSelection.java:455) 
at weka.filters.Filter.useFilter(Filter.java:682) 
at test.main(test.java:44) 

나는 작은 데이터 세트로 내 코드를 테스트 한이 모든 것이 정상적으로 작동하므로 코드 관련 문제가되지 않습니다. LSA를 어떻게 확장하여 요구 사항을 충족시킬 수 있는지 설명 할 수 있습니까? 아니면 적용 가능한 비슷한 프로세스가 더 확장 가능합니까?

+1

Weka와 관련이 없다면 gensim은 실제로 견고하고 확장 가능한 LSA 구현을 가지고 있습니다. –

+0

@RobNeuhaus 입력에 감사하지만 불행히도 나는 WEKA에 묶여있다 – RazorAlliance192

+0

http://stackoverflow.com/questions/19067449/increase-heap-to-avoid-out-of-memory-error-in-weka – tazaree

답변

2

답변을 좋아하지는 않지만 WEKA는 처리 할 수 ​​없습니다. 구현은 무엇이든 상관없이 완전한 SVD를 사용합니다. 따라서 데이터 포인트가 수천을 넘는 경우 전체 SVD를 수행하는 데 엄청난 시간이 걸릴 것입니다.

WEKA는 일반적으로 필요한 것보다 훨씬 많은 메모리를 사용합니다.

위의 모든 것 중에서 Weka는 SVD를 수행하기 위해 밀집한 매트릭스를 만듭니다. 당신은 아마 희소 한 자료를 위해 그것을 사용하고있다, 그리고 LSA를 위해 Weka를 사용하는 것의 당신이 이제까지 가지고있는 희망을 파괴 할 것이있다.

이 있으니 LSKA 완료를 위해 Weka 이외의 것을 사용하십시오.

+0

사실, 나는 대답을 좋아하지 마라. 그러나 그것은 나의 질문에 답한다! 고맙습니다 – RazorAlliance192