weka.apriori中的java堆空间错误
我在我的数据上实现了Aprioiri算法。数据近700条记录,近81个属性。我想为这些数据生成关联规则。 这是我的程序代码:weka.apriori中的java堆空间错误
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);
}
}
但十五分钟后运行它提供了以下错误:
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,使用undefined表示不存在。另外,您需要增加内存限制,而应该考虑更高效的算法,如FPGrowth和比Weka更高效的内存工具。