【问题标题】:Frequent item set based on Apriori Algorithm and item based recommendation基于Apriori算法的频繁项集和基于项的推荐
【发布时间】:2016-09-19 19:31:10
【问题描述】:

我使用 Apriori 算法,当我使用 min support= 2 时,得到以下项集作为频繁项集。(项集:支持) 我对此实施的目标是根据客户识别的频繁项目集和他已经添加到购物车的内容向客户提出建议

-+- L -+-
[5] : 3
[1] : 3
[2] : 3
[3] : 4

-+- L -+-
[1, 2] : 2
[1, 5] : 2
[3, 5] : 3
[1, 3] : 3
[2, 5] : 3
[2, 3] : 3

-+- L -+-
[1, 2, 5] : 2
[1, 2, 3] : 2
[2, 3, 5] : 3
[1, 3, 5] : 2

-+- L -+-
[1, 2, 3, 5] : 2

我的第一个问题是:我只使用支持规则来识别上述集合。在什么时候我应该使用信心和提升规则?是在识别频繁项集时,还是在根据已识别的频繁项集添加推荐时?

我的第二个问题是:我在添加推荐时使用了置信度规则,我应该如何检查置信度规则? 例如,如果用户将第 2,5 项添加到他的购物清单中,我建议也购买第 3 项。基于 [2,3,5] 集。推荐第 3 项的规则应该如何?即[2,5]的频率应该更接近[2,3,5]的频率[3]的频率应该更接近[2,3,5]的频率?

在建议第 3 项之前我必须检查哪些条件?

我的第三个问题是提升规则在哪些情况下很重要?根据上面的项目集,即使我考虑了所有支持、信心和提升规则,似乎也可以建议任何项目。如果我错了,请纠正我?

谢谢

【问题讨论】:

标签: algorithm data-mining apriori


【解决方案1】:

您只完成了第一步,频繁项集

频繁项集如下所示:1, 2, 3, 4, 5 并且有一个支持

现在你需要做第二步,关联规则

您需要如下所示的规则:

1, 2, 3 -> 4, 5  (confidence: 60%, lift: 1.2)

其中说“如果用户的购物篮中有 1、2 和 3,则推荐 4 和 5。您然后计算置信度并提升以决定保留和使用哪些规则。

【讨论】:

  • 是的,基于更高的置信度和提升值,我可能会向客户推荐一些商品。要找到哪些项目/项目集对篮子中的项目具有更高的置信度/提升值,我需要遍历超市项目列表中所有可能的项目集并找到更适合建议的置信度和提升值用户?
  • 如果适用的规则不止一个,那就是另一个问题了(尽管主要是 UI 决定)。
【解决方案2】:

给一和二:

关联规则如下:

{3} -> {2, 5}

这意味着例如,如果客户购买 3,那么他也以一定的概率购买 2 和 5。同样,概率由支持度和置信度决定。例如:

> dataset 
1: {1, 2, 3} 
2: {1, 2, 4}
3: {1, 2, 5} 

Support level = 0.6
Confidence level = 0.6
Number of cases = 3

// Get frequency of each item
Total number of 1's bought = 3
Total number of 2's bought = 3
Total number of 3's bought = 1
Total number of 4's bought = 1
Total number of 5's bought = 1

// Check support of each item against support level
Support of 1 = 3 / 3 = 1 >= 0.6 = support level
Support of 2 = 3 / 3 = 1 >= 0.6 = support level
Support of 3 = 1 / 3 = 0.33 <= 0.6 = support level
Support of 4 = 1 / 3 = 0.33 <= 0.6 = support level
Support of 5 = 1 / 3 = 0.33 <= 0.6 = support level
-> Frequent itemsets = {(1), (2), (1, 2)}
-> Association rules = {1 -> 2}

// Check confidence of each association rule against confidence level
Confidence of 1 -> 2 = 3 / 3 = 1 >= 0.6 = confidence level
-> Strong association rules = {1 -> 2}
-> For a customer who buys 1, the recommandation is article 2

给三个:

提供的数据是频繁项集,没有关联规则。因此,从那些原始的频繁项集中,不可能将建议联系起来,例如如果客户购买 1,他也会以一定的概率购买 2。它们需要被处理为关联规则。而对于一个关联规则来说,提升值只是表示关联规则的置信度值与期望值之间的关系。换句话说,这个关联规则的意义。

希望这会有所帮助。

【讨论】:

  • 在您的回答中,您已将频繁项集标识为 {(1), (2), (1, 2)} 并且在下一行中您导出了关联规则 = {1 -> 2} .你是怎么一下子拿到的。就我而言,有很多频繁项集,我怎样才能找到关联规则?
  • 根据我的观察,如果我们使用频繁项集中的项建立关联规则,并且发现置信度总是强的。因此不需要找到置信度。请给我您的意见
  • To one:关联规则可以从n+1个频繁项集生成,例如{1, 2, 3} 具有 {{1}, {2}, {3}, {1, 2}, {2, 3}, {1, 3}} 作为子集。因此,{{{1} -> {2, 3}}, {{2} -> {1, 3}}, {{3} -> {1, 2}}, {{2, 3} -> {1}}, {{1, 3} -> {2}}, {{1, 2} -> 3}} 是关联规则。对二:只有当关联规则第一部分的数据集中出现的频率除以关联规则第二部分在第一部分已经出现的数据集中出现的频率时,关联规则才是强的信心不足。
猜你喜欢
  • 2021-05-24
  • 2016-09-18
  • 2012-12-20
  • 2011-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多