使用Apriori算法进行推荐

4
所以一个最近的问题让我意识到了相当酷的Apriori算法。我能理解它的工作原理,但我不确定它的实际用途。假设计算相关物品集合的主要原因是为了能够基于某人的购买(或拥有的物品等)提供推荐。但是如何从一组相关的物品集合转换为个体的推荐呢?
维基百科文章结束了:
第二个问题是基于最小置信度生成与大项集相关的关联规则。假设其中一个大项集为Lk,Lk = {I1, I2, …, Ik},可以通过以下方式生成这些项集的关联规则: 第一条规则是{I1, I2, …, Ik-1}⇒{Ik},通过检查置信度可以确定该规则是否有趣。然后通过删除前件中的最后一项并将其插入到后件中生成其他规则,进一步检查新规则的置信度以确定它们的有趣程度。该过程重复进行直到前件为空。我不确定关联规则集如何帮助确定最佳推荐集。也许我没有理解它的意义,apriori算法可能不是用于此目的的?那么它的用途是什么呢?
2个回答

2
因此,Apriori算法不再是“市场篮子分析”(又称关联规则挖掘)的最新技术。虽然技术已经改进,但Apriori原则(即子集支持上限约束集合支持)仍然是一个主要推动力。
无论如何,使用关联规则生成推荐的方法是,给定一些历史项集,我们可以检查每个规则的前提是否包含在历史中。如果是,则我们可以推荐规则的结论(当然要排除结论已经包含在历史中的情况)。
我们可以使用各种度量标准来对我们的推荐进行排名,因为在比较它们与历史记录时,由于多种规则的存在,我们可能会有很多命中,而我们只能做出有限数量的推荐。一些有用的指标包括规则的支持度(即前提和结论的并集的支持度),规则的置信度(规则支持度除以前提的支持度),以及规则的提升度(规则支持度除以前提和结论支持度的乘积),等等。

将每个规则与给定用户集进行比较似乎非常低效 - 这不是一个性能问题吗?是否可能对此进行优化? - Nick Johnson
你可以根据度量标准对规则进行排序,然后针对每个历史记录,在足够数量的规则匹配历史记录后停止检查。或者,你可以通过前提条件创建规则格,只有在父规则匹配时才检查子规则。你也可以通过前提条件对规则进行聚类。 - rampion
好的想法。排名似乎只能通过一个常数因子减少工作量 - 大多数规则都不匹配。索引似乎是一个更好的想法,但我不知道有哪些索引可以很好地找到搜索查询的子集条目。 - Nick Johnson

0
如果您想了解Apriori算法如何用于分类的详细信息,可以阅读有关CBA算法的论文:
Bing Liu,Wynne Hsu,Yiming Ma,“Integrating Classification and Association Rule Mining.” Proceedings of the Fourth International Conference on Knowledge Discovery and Data Mining (KDD-98, Plenary Presentation),New York,USA,1998。

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