pattern-matching - 封闭式和开放式顺序模式挖掘算法的区别

标签 pattern-matching data-mining sequential apriori

我想使用一些算法来挖掘我的日志数据。

我在以下位置找到了一个模式挖掘框架:http://www.philippe-fournier-viger.com/spmf/index.php?link=algorithms.php

我尝试了几种算法,BIDE+ 算法表现最好。

BIDE+ 算法用于从序列数据库中挖掘频繁的闭合序列模式。

有人可以解释有关“封闭”顺序模式和开放顺序模式的定义吗?

最佳答案

很高兴您使用我的 SPMF software .

支持序列模式 是包含序列模式的序列数。

A 频繁序列模式是至少出现在序列数据库的“minsup”序列中的模式,其中 minsup 是用户设置的参数。

A 频繁闭序列模式是一个频繁的序列模式,因此它不包含在另一个具有完全相同支持的序列模式中。

算法如前缀跨度 发现频繁的序列模式。算法如必得 + 查找频繁闭合的序列模式。 BIDE+ 通常比 PrefixSpan 快得多,因为它使用修剪技术来避免生成所有顺序模式。此外,封闭模式集通常比顺序模式集小得多,因此 BIDE+ 的内存效率也更高。

要知道的另一件重要的事情是,封闭序列模式是所有序列模式的紧凑且无损的表示。这意味着封闭的序列模式集通常要小得多,但它是无损的,这意味着它允许恢复完整的序列模式集(没有信息丢失),非常方便。

我可以给你举个简单的例子。

让我们考虑 4 个序列:

a  b  c  d  e
a  b  d
b  e  a  
b  c  d  e

假设 minsup = 2。
b c是一个频繁的序列模式,因为它出现在两个序列中(它的支持度为 2)。 b c不是封闭的序列模式,因为它包含在更大的序列模式中 b c d有同样的支持。
b c d支持度为 2。它也不是封闭的序列模式,因为它包含在更大的序列模式中 b c d e有同样的支持。 b c d e是一个封闭的序列模式,因为它不包含在任何其他具有相同支持的序列模式中。

顺便说一句,你也可以查看我关于sequential pattern mining的调查。 .它很好地介绍了这个主题和不同的算法。

关于pattern-matching - 封闭式和开放式顺序模式挖掘算法的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16145448/

相关文章:

c++ - 尝试改进算法以使其更通用

python - Python中异常的程序流程和变量修改

sql - 在SQL中按键组顺序对行进行编号?

java - 使用 Java 实现字符串数组 "is in"方法的有效方法

python - 在 Python 中比较多个字典

rust - 如果让表达式如何 "read"?

data-mining - 数据挖掘和商业智能技术

r - 如何获取所有终端节点 - r 中的权重和响应预测 'ctree'

javascript - 为 m 行拆分 SDP(字符串)以更改视频编解码器

templates - Play 2.0 模板中 object.member 的模式匹配