【问题标题】:Using the apriori algorithm for recommendations使用先验算法进行推荐
【发布时间】:2010-11-18 08:18:09
【问题描述】:

所以recent question 让我意识到了相当酷的apriori algorithm。我可以看到它为什么起作用,但我不确定的是实际用途。据推测,计算相关项目集的主要原因是能够根据某人自己的购买(或拥有的项目等)为他们提供推荐。但是,您如何从一组相关的项目集到单独的推荐呢?

维基百科文章结束:

第二个问题是生成 那些大的关联规则 具有约束的项集 最小的信心。假设其中一个 大项集是 Lk, Lk = {I1, I2, ... , Ik}, 与 this 的关联规则 项目集在 如下方式:第一条规则是{I1, I2, … , Ik-1}⇒ {Ik},通过检查 有信心可以确定这条规则 有趣与否。然后其他规则 是通过删除最后一个生成的 先行项和插入项中的项目 因此,进一步 新规则的信心是 检查以确定 他们的趣味性。那些 过程迭代直到 先行词变空了

不过,我也不确定关联规则集如何帮助确定最佳建议集。也许我错过了重点,并且 apriori 不适合这种用途?在这种情况下,它的目的是什么

【问题讨论】:

    标签: algorithm graph-theory apriori


    【解决方案1】:

    因此,先验算法不再是 Market Basket Analysis(又名 Association Rule Mining)的最先进算法。尽管 Apriori 原则(子集的支持度高于集合的支持度)仍然是驱动力,但这些技术已经有所改进。

    在任何情况下,使用关联规则生成推荐的方式是,给定一些历史项目集,我们可以检查每个规则的前件,看看是否包含在历史中。如果是这样,那么我们可以推荐规则的结果(当然,排除结果已经包含在历史中的情况)。

    我们可以使用各种指标对我们的推荐进行排名,因为在将规则与历史进行比较时,我们可能会遇到很多点击,而我们只能提出有限数量的推荐。一些有用的指标是规则的支持度(与前件和后件的并集的支持度相同),规则的置信度(支持度规则对前件的支持),以及规则的提升(规则的支持对前件和后件的支持的乘积)等等。

    【讨论】:

    • 将每个规则与给定用户的集合进行比较似乎效率极低——这不是性能问题吗?可以优化吗?
    • 好吧,您可以按指标对规则进行一次排序,然后对于每个历史记录,在足够的规则与历史记录匹配后停止检查。或者,您可以按前件创建规则格,并且仅在其父规则匹配时才检查子规则。您也可以按前件对规则进行聚类。
    • 好主意。排名似乎仍然只会将工作量减少一个恒定的因素——大多数规则都不匹配。索引似乎是一个更好的主意,尽管我不知道有任何索引可以很好地查找作为搜索查询子集的条目。
    【解决方案2】:

    如果您想了解有关如何使用 Apriori 进行分类的详细信息,可以阅读有关 CBA 算法的论文:

    Bing Liu、Wynne Hsu、Yiming Ma,“集成分类和关联规则挖掘”。第四届知识发现和数据挖掘国际会议论文集 (KDD-98, Plenary Presentation),美国纽约,1998 年

    【讨论】:

      猜你喜欢
      • 2012-08-06
      • 2017-08-19
      • 2016-07-06
      • 1970-01-01
      • 1970-01-01
      • 2014-05-14
      • 1970-01-01
      • 2010-10-22
      • 2018-03-09
      相关资源
      最近更新 更多