【发布时间】:2015-02-02 01:02:02
【问题描述】:
我的意思是只有像 aprioriall 这样的序列模式算法给项目一个顺序?这可能会减少关联规则的数量吗?
【问题讨论】:
-
先验 vs 先验???可以比较吗??
标签: data-mining
我的意思是只有像 aprioriall 这样的序列模式算法给项目一个顺序?这可能会减少关联规则的数量吗?
【问题讨论】:
标签: data-mining
频繁项集挖掘 (FIM) 算法(例如 Apriori)将交易数据库作为输入。交易只是一组没有任何排序的项目。目标是找到在交易中经常出现的项目集,而不考虑时间等顺序。
序列模式挖掘 (SPM) 算法,例如 AprioriAll、PrefixSpan、CM-SPADE 和 GSP,将序列数据库作为输入。序列是事务的有序列表。目标是发现经常出现在一组序列中的子序列。在这种情况下,会考虑项目之间的顺序。
因此,如果您的数据中存在顺序或者您关心结果中的顺序,您应该使用顺序模式挖掘而不是频繁项集挖掘。如果你不关心排序,你可以使用 FIM 算法。
此外,我注意到您还谈到了关联规则。让我澄清这些想法。频繁项集可用于生成关联规则。两组项目之间的规则 X --> Y 意味着 X 中的项目以给定的置信度和支持度与 Y 中的项目一起出现。但是关联规则并没有提供关于 X 和 Y 之间是否存在顺序排列的任何信息。如果要查找顺序排列的规则,则应考虑使用顺序规则。顺序规则可以通过某种算法直接找到,也可以从顺序模式中推导出来。
顺序规则和顺序模式有什么区别?序列模式通常是根据它们的支持来找到的(它们在序列数据库中出现的序列数)。另一方面,顺序规则通常是基于其支持度和置信度来找到的,因此对于推荐等应用更有用。规则 X -> Y 的置信度可以看作是对 Y 遵循 X 的概率的估计。
如果您想尝试一些 FIM、SPM 和顺序规则挖掘算法,您可以访问 SPMF data mining library(我是创始人)的网站,该网站提供了 200 多种算法实现以及一些示例,如好吧。
【讨论】:
如果你想学习时间/顺序行为,你不能丢弃你的这部分信息,而是将它整合到你的算法中。
即如果您想学习 sets,请使用 APRIORI。如果您想学习序列,请使用序列方法。
【讨论】: