计算事务中具有重复项的频繁项集

时间:2014-01-09 22:48:11

标签: transactions data-mining apriori

背景频繁项目集挖掘的大多数示例都包含具有唯一项目的事务。例如{1,2}, {1,3}, {2,3,5,6}, {6}。我很想知道交易中是否有重复影响结果。例如{1,2,1}, {2,2,3}, {4,3}, {4,1,2,4,2,6}

问题使用apriori算法,在事务数据库{1,2,1}, {2,2,3}, {4,3}, {4,1,2,4,2,6}中对1项的支持是什么?我认为结果将是:

{1}: 2
{2}: 3
{3}: 2
{4}: 2
{6}: 1

3 个答案:

答案 0 :(得分:1)

“默认”FIM算法不允许重复。

但是你可以轻易地将重复项编码为附加项,即

{ Beer, Beer }  ->  { Beer, Beer_2 }

然后像往常一样继续。然后,您将获得无聊的组织规则,例如

{ Beer_2 } -> { Beer }

即。买了第二杯啤酒的人也买了第一瓶啤酒。

从结果中删除这些微不足道的事情:从不考虑将x移到右侧,当x_2位于左侧时等等。

答案 1 :(得分:1)

频繁项目集挖掘的原始问题没有数量,即项目只能在事务中出现零或一次。因此,您提到的案例未定义。

如果您想允许重复项,您可以查看项目集挖掘问题的变化。

在“高效用项集挖掘”中,每个项目可以出现多次,每个项目也可以具有单位利润等权重。高效用项目集挖掘的目标是找到具有高效用(例如高利润)的项目集。如果您感到好奇,可以查看论文,了解他们如何根据项目在交易中出现的次数和权重来定义实用程序。高效率挖掘的问题是比重复问题更普遍的问题。您可以使用算法进行高效用项目集挖掘,例如FHM和HUI-Miner,如果您为每个项目赋予1的权重,它将解决重复问题。如果您感到好奇,可以在Java SPMF data mining library中获得HUI-Miner的Java实现。

另一个变体是“加权项集挖掘”,其中项目具有权重但不能出现多次。

如果你看一下这些变化和其他变化,我认为有人肯定已经解决了这个问题。

答案 2 :(得分:0)

我知道这个问题很旧,但是还没有结束,所以我教我应该提供答案,以便将来任何人参考。

在关联规则挖掘中,如果某项在多个交易中而不是在单个交易中重复出现,则该项目是频繁的。这就是为什么您不需要在交易中重复项目的原因。 这就是为什么从该单元格中删除任何此类项目。然后为适当的关联申请先验。

相关问题