2017-10-18 2 views
0

내 데이터에 Aprioiri 알고리즘을 구현 중입니다. 데이터는 약 81 개의 속성을 가진 거의 700 개의 레코드를 가지고 있습니다. 해당 데이터에 대한 연결 규칙을 생성하려고합니다. 이 내 프로그램의 코드입니다weka.apriori의 자바 힙 공간 오류

public class Aprioritest { 

/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) throws Exception { 
String dataset = "C:/Users/pc-4/Desktop/CasebaseWithDiseasenamesCSV_1.arff"; 
DataSource source = new DataSource(dataset); 
Instances newData = source.getDataSet(); 

NumericToNominal filter = new NumericToNominal(); 
    filter.setInputFormat(newData); 
    newData = Filter.useFilter(newData, filter); 

     for(int i=0; i<5; i=i+1) 
    { 
     System.out.println("Nominal? "+newData .attribute(i).isNominal()); 
    } 

    Apriori model = new Apriori(); 

model.buildAssociations(newData); 
System.out.println(model); 
} 

} 

그러나 15 분 동안 실행 한 후 다음과 같은 오류가 있습니다 :

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 
    at java.util.Arrays.copyOf(Arrays.java:3181) 
    at java.util.ArrayList.grow(ArrayList.java:261) 
    at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:235) 
    at java.util.ArrayList.ensureCapacityInternal(ArrayList.java:227) 
    at java.util.ArrayList.add(ArrayList.java:458) 
    at weka.associations.AprioriItemSet.mergeAllItemSets(AprioriItemSet.java:587) 
    at weka.associations.Apriori.findLargeItemSets(Apriori.java:1677) 
    at weka.associations.Apriori.buildAssociations(Apriori.java:518) 
    at aprioritest.Aprioritest.main(Aprioritest.java:43) 
C:\Users\pc-4\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53:   
Java returned: 1 
BUILD FAILED (total time: 15 minutes 27 seconds) 

데이터는 .arff 형식이며, 각 속성이 1 또는 0 마지막 속성 만 결과 클래스를 나타냅니다. 다음은 데이터의 5 가지 예입니다.

0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,A 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,A 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,A 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,A 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,A

문제를 찾을 수 있습니까?

답변

0

0 대신 undefined를 사용하여 부재를 나타냅니다.

또한 메모리 제한을 늘려야하며 FPGrowth와 같은 효율적인 알고리즘과 Weka보다 메모리 효율적인 도구를 고려해야합니다.

관련 문제