【问题标题】:java heap space error in weka.aprioriweka.apriori 中的 java 堆空间错误
【发布时间】:2018-03-30 04:00:23
【问题描述】:

我正在对我的数据实施 Aprioiri 算法。数据有近 700 条记录,包含近 81 个属性。我想为该数据生成关联规则。 这是我的程序的代码:

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

你能找出问题吗?

【问题讨论】:

    标签: data-mining heap-memory apriori arff


    【解决方案1】:

    用 undefined 代替 0 来表示缺席。

    此外,您将需要增加内存限制,并且应该考虑使用更高效的算法,例如 FPGrowth,以及比 Weka 更高效的内存工具。

    【讨论】:

      猜你喜欢
      • 2023-04-07
      • 1970-01-01
      • 2015-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-10
      • 1970-01-01
      相关资源
      最近更新 更多