Apyori相关性度量

周杰伦

我正在使用Apyori库作为Apriori算法的实现。

rules = apriori(trs, min_support = 0.02, min_confidence = 0.1, min_lift = 3)

rules是一个生成器,可以使用转换为列表res=list(rules)对于大型数据集,list(rules)似乎需要很长时间。

您能帮我理解规则是否按某种标准排序,以便我只能检索最相关的前n条规则吗?或者说,什么是排序的最有效的方法ruleslift例如。

这是典型的输出结果(即列表中的元素):

RelationRecord(items=frozenset({'chicken', 'light cream'}), 
> support=0.004532728969470737, 
> ordered_statistics=[OrderedStatistic(items_base=frozenset({'light cream'}), 
> items_add=frozenset({'chicken'}), 
> confidence=0.29059829059829057, lift=4.84395061728395)])
ZaxR

您能帮我理解规则是否按某种标准排序吗?

tl; dr:它们的长度按升序排列,其次是结果中的项目如何首先出现在您的交易中。

详细说明:默认情况下,Apriori是广度优先(逐级)算法。在挖掘步骤中,它首先发现长度为1的所有频繁项目集,然后发现长度为2的所有频繁项目集,然后是3,依此类推。这意味着最终确定顺序的是单个项目候选者的顺序。随着Apyori项添加到[python]的名单,因为它们可以在交易中首先遇到(见事务管理类的add_transaction()方法在这里)。

对于满足最低置信度/提升阈值的结果,规则生成的工作原理类似。例如,对于频繁项集{a,b,c,d},我们将查看规则(即,满足我们的兴趣度标准的关联),其结果中只有一个项(例如,{a,c,d})- > {b},然后依次是{a,b,d}-> {c}),然后是有趣的规则,因此有两个项(例如{a,d}-> {b,c})。

例如,按电梯对规则进行排序的最有效方法是什么?

不幸的是,以上解释的结果意味着默认情况下,确实没有很好的方法来执行此操作。就是说,有许多Apriori的修改版本和其他ARL算法可以帮助解决这一问题。据我所知,这些都不是开源Python项目。听起来您可能正在寻找top-k方法。本文可以找到一种方法如果这还不够,或者您的项目花费了太多精力,则可能需要考虑其他方法。

如果您不需要详尽地挖掘所有长度的关联,建议您使用协作过滤。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章