【问题标题】:Input arff file for Weka AprioriWeka Apriori 的输入 arff 文件
【发布时间】:2013-03-19 11:47:49
【问题描述】:

我正在尝试对版本历史进行关联挖掘。我在 mysql 中有我的交易数据。 Weka apriori 算法需要一定格式的 arff 或 csv 文件。它必须有每个项目的列。对于事务中的每个项目,值将被指定为 TRUE 或 FALSE。我正在寻找一种使用 Weka InstanceQuery 创建此文件的方法。如果交易数据很大,还有哪些选择。

【问题讨论】:

    标签: data-mining weka


    【解决方案1】:

    如果您想要 FPGrowth 或 Apriori 的快速 Java 实现,请查看我的项目 SPMF。 SPMF 中的 FPGrowth 实现在某些数据集上比 Weka 实现高出两个数量级。例如,您可以看到以下性能比较:

    http://www.philippe-fournier-viger.com/spmf/performance/chess_fpgrowth_spmf_vs_weka.png

    这是主要的项目网页:

    http://www.philippe-fournier-viger.com/spmf/index.php

    此外,请注意,SPMF 提供了超过 50 种算法,用于项集挖掘、关联规则挖掘、顺序模式挖掘等。另外,SPMF 的 GUI 版本还支持 Weka 使用的 ARFF 格式。

    【讨论】:

      【解决方案2】:

      我可以回答第二部分:交易数据巨大时的选项。 Weka 是一个很好的软件,但是它们的先验实现速度非常慢。我推荐http://fimi.ua.ac.be/src/ 的实现(我使用了 Ferenc Bodon 列表中的第一个)。

      Bodon 的实现使用 Trie 数据结构而不是 Weka 使用的哈希表。正因为如此,我在工作中发现,Weka 需要 3 天才能完成 Bodon 的实现可以在不到一个小时内完成的事情(是的,差别如此之大!!)。

      另外,Bodon 的实现使用简单的输入格式:每笔交易一行,项目用空格分隔。

      【讨论】:

      • 是的,我尝试了 Weka Apriori 以及 Weka FP Growth。对于具有大约 120 个属性和只有 8 个事务的数据,它会产生堆错误。增加堆大小并没有多大帮助,因为在现实世界中我的输入文件有更多的数据。我在看 R。有人先验地尝试过 R 吗?我需要从java调用它。我见过 Rcaller 这样做。如果有人可以评论 R apriori 的性能以及它可以处理的输入事务的数量,那将是非常有帮助的。
      • 对 Weka 的行为并不感到惊讶!不知道 R 中的先验知识;但如果您的目标是从 Java 调用,您可以考虑通过 Runtime.exec() 调用 C++ 可执行文件。
      猜你喜欢
      • 1970-01-01
      • 2014-08-12
      • 2015-04-30
      • 2015-06-24
      • 1970-01-01
      • 2013-10-22
      • 2012-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多