首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >weka.apriori中的java堆空间错误

weka.apriori中的java堆空间错误
EN

Stack Overflow用户
提问于 2017-10-18 09:55:40
回答 1查看 256关注 0票数 2

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

代码语言:javascript
复制
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分钟后,它会出现以下错误:

代码语言:javascript
复制
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,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,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,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、A

你能帮我找出问题吗?

EN

回答 1

Stack Overflow用户

发布于 2017-10-18 19:34:33

使用未定义的值来表示缺勤,而不是0。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46807454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档