【问题标题】:Java library for Pattern mining on time based data用于基于时间的数据进行模式挖掘的 Java 库
【发布时间】:2012-02-03 09:22:04
【问题描述】:

我们有一个数字,表示每分钟关于众多主题的帖子数量。我们希望能够找到模式,以便我们可以预测未来的帖子数量。

我们希望模式检测过程是自动的(不需要人工交互),并且我们一直在想是否有任何方法可以实现自动化。我们一直在阅读有关“模式挖掘”的内容,但我们一直无法找到任何可以开始使用的 Java 库。

是否有任何 Java 库可用于基于时间的数据进行模式挖掘,我们可以使用这些库来自动化这个模式挖掘过程?提前致谢。

【问题讨论】:

  • 如果是关于日期解析,为什么不使用SimpleDateFormat?或者,更好的是,Joda Time?能给个样品吗?
  • 通过“自动化”我会编写代码来做到这一点。数据挖掘往往非常特定于您要挖掘的内容以及数据的表示方式。计算机不会像人类那样自动找到模式,您需要编写代码来确定数据与模型的拟合程度。

标签: data-mining java


【解决方案1】:

您可以查看我的开源数据挖掘框架:http://www.philippe-fournier-viger.com/spmf/ (SPMF)

它提供了 130 多种算法。其中一些旨在执行与时间相关的数据挖掘任务,例如在一组序列中发现顺序模式和顺序规则。

我不知道其中一些是否适合您的需求。不过你可以去看看。

【讨论】:

    【解决方案2】:

    您希望做两件截然不同的事情: 1)文本分类(主题) 2) 预测未来的主题/数量

    1) 对于文本分类,任何标准 NLP 库都可以——GATE、OpenNLP、LingPipe 等。我个人会使用 NLTK 或只是编写自己的主题分类器,因为我认为大型 Java 库笨重且用户不友好.更容易拥有轻量级的东西。

    您可能需要使用标记数据训练您的分类器 - 如果您有标记数据,那么很好,如果没有,是时候开始标记了。与往常一样,最重要的是数据质量——您期望看到的数据的训练数据的代表性如何?你的特征有多好(n-gram、单词 n-gram 等)?

    2) 对于预测,您可以使用任意数量的统计模型。我个人会选择随机模型,但这只是因为我花了太多时间研究这些。

    【讨论】:

      【解决方案3】:

      您可以使用GATE (General Architecture for Text Engineering) 一个用于文本处理的开源基础架构,您可以使用它的 IDE (Gate Developer) 来使用一套全面的其他插件构建文本处理组件,或者如果您需要在您的代码上使用它,您需要将其 jar 文件嵌入到您的项目中。 该工具有一种称为 JAPE(Java 注释模式引擎)的语言,它允许您识别文档注释中的正则表达式(您可以使用门分析器对文档进行注释,也可以开发自己的分析器)。

      【讨论】:

        【解决方案4】:

        嗯,有一些非常可靠的 Java 数据挖掘库。我使用 WEKA 进行分类和关联挖掘 (http://www.cs.waikato.ac.nz/ml/weka/)。我还使用 Mahout 进行集群 (http://mahout.apache.org/)。在处理数据方面,您确实需要事先知道自己在做什么。您将花费 95% 的时间来清理不良数据并将剩余的数据预处理为可供这些框架使用的格式。

        你对你的问题的细节有点了解。听起来您想要某种基于数据中某些事件集的频率的警报系统。如果它纯粹基于频率(即 - 与您假设的事件随时间分布不符的东西),那么您可能想要查看一种称为 n-gramming 的技术。试图避免在这里变得深奥,但您想使用 n-gram,其中 n 不是固定长度。这是 NLP 中常用的一种技术,如果您熟悉最长公共子字符串问题,那么您应该知道如何着手去做。

        【讨论】:

        • 我已经详细说明了这个问题。我不确定 n-gramming 能否在这里为我们提供帮助。不过,您还有其他想法可以建议我们吗?
        • 好的,你要做的是建立一个回归模型。我不是一个真正的回归者,但如果你使用像 WEKA 这样的框架,它们就很容易做到。事实上,这里有一篇关于它的文章:ibm.com/developerworks/opensource/library/os-weka1/index.html。基本上,从您的角度来看,您希望格式化您的数据,将其输入 WEKA,保留您训练的回归模型,然后使用该模型进行预测。
        猜你喜欢
        • 2012-06-25
        • 2011-12-25
        • 2012-04-24
        • 1970-01-01
        • 1970-01-01
        • 2012-12-30
        • 2011-02-07
        • 2011-12-28
        • 2012-06-21
        相关资源
        最近更新 更多