基于时间的数据的模式挖掘Java库

3
我们有一个代表各种主题每分钟发布量的数字。我们希望能够找到模式,以便我们可以预测未来的帖子量。
我们希望模式检测过程是自动化的(不需要人工干预),并且一直在想是否有任何方法可以自动化它。我们一直在阅读关于“模式挖掘”的文章,但我们还没有找到任何可以开始使用的Java库。
是否有任何基于时间数据的模式挖掘Java库,我们可以用它来自动化这个模式挖掘过程?谢谢。

如果涉及日期解析,为什么不使用SimpleDateFormat呢?或者更好的选择是Joda Time。你能给一个示例吗? - fge
通过“自动化”,我会编写代码来完成它。数据挖掘往往非常特定于您要挖掘的内容以及数据的表示方式。计算机不会像人类一样自动发现模式,您需要编写代码来确定数据与模型的匹配程度。 - Peter Lawrey
4个回答

2
您可以查看我的开源数据挖掘框架:http://www.philippe-fournier-viger.com/spmf/(SPMF)。它提供了超过130种算法,其中有几种是专门设计用于执行与时间相关的数据挖掘任务,例如在一组序列中发现顺序模式和顺序规则。我不知道其中是否有适合您需求的算法,但您可以查看一下。

0

嗯,Java有一些非常可靠的数据挖掘库。我曾经使用过WEKA进行分类和关联挖掘(http://www.cs.waikato.ac.nz/ml/weka/)。我也使用过Mahout进行聚类(http://mahout.apache.org/)。但是,在处理数据之前,您需要知道自己在做什么。95%的时间将用于清理不良数据并将剩余数据预处理成这些框架可以使用的格式。

您对问题的细节了解得有点少。听起来像是您想要基于数据中某个事件集的频率建立某种警报系统。如果它纯粹基于频率(即 - 违反您对事件随时间分布的假设),那么您可能希望查看一种称为n-gramming的技术。尽量避免使用晦涩难懂的术语,但您应该使用n不是固定长度的n-grams。这是一种在NLP中常用的技术,如果您熟悉最长公共子串问题,那么您应该对如何处理它有一些想法。


我已经对问题进行了更详细的说明。我不确定 n-gramming 能否帮助我们解决这个问题。不过,你还有其他什么想法可以建议吗? - rreyes1979
好的,你想做的是构建一个回归模型。虽然我不是回归方面的专家,但如果你使用像WEKA这样的框架,它们还是很容易实现的。事实上,这里有一篇文章介绍了它的操作方法:http://www.ibm.com/developerworks/opensource/library/os-weka1/index.html。从你的角度来看,你需要对数据进行格式化处理,将其输入WEKA中,保留你训练的回归模型,然后使用该模型进行预测。 - Chris J

0

您想要做两件非常不同的事情: 1)文本分类(主题) 2)预测未来的主题/数量

1)对于文本分类,任何标准的NLP库都可以- GATE、OpenNLP、LingPipe等。个人建议使用NLTK或编写自己的主题分类器,因为我认为大型Java库不易使用且用户不友好。更容易使用轻量级工具。

您可能需要使用标记数据来训练分类器-如果您有标记数据,那很好,如果没有,那就是开始标记的时候了。最重要的事情始终是数据质量-您的训练数据与您预期看到的数据有多相似?您的特征有多好(n-grams、单词n-grams等)?

2)对于预测,有许多统计模型可供选择。个人会选择随机模型,但这只是因为我花了太多时间研究它们。


-1
你可以使用GATE(文本工程通用架构)这个开源基础设施来处理文本。你可以使用它的IDE(Gate Developer)使用一套全面的插件来构建文本处理组件,或者如果你需要在代码中使用它,你需要将其jar文件嵌入到你的项目中。 这个工具有一个称为JAPE(Java注释模式引擎)的语言,它允许你在文档注释中识别正则表达式(你可以使用Gate分析器注释文档,或者你可以开发自己的分析器)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接