R - 关联规则 - 先验
Posted
技术标签:
【中文标题】R - 关联规则 - 先验【英文标题】:R - association rules - apriori 【发布时间】:2015-04-13 15:08:19 【问题描述】:我正在运行这样的先验算法:
rules <-apriori(dt)
inspect(rules)
其中 dt 是我的 data.frame 格式:
> head(dt)
Cus T C B
1: C1 0 1 1
2: C2 0 1 0
3: C3 0 1 0
4: C4 0 1 0
5: C5 0 1 0
6: C6 0 1 1
数据集的想法是捕获客户以及他/她是否在特定购买中购买了三种不同的商品(T、C 和 B)。例如,根据上面的信息,我们可以看到 C1 买了 C 和 B;客户 C2 到 C5 只买了 C,客户 C6 只买了 C 和 B。
输出如下:
lhs rhs support confidence lift
1 => T=0 0.90 0.9000000 1.0000000
2 => C=1 0.91 0.9100000 1.0000000
3 B=0 => T=0 0.40 0.8163265 0.9070295
4 B=0 => C=1 0.40 0.8163265 0.8970621
5 B=1 => T=0 0.50 0.9803922 1.0893246
6 B=1 => C=1 0.51 1.0000000 1.0989011
我的问题是:
1) 我怎样才能摆脱 T、C 或 B 等于 0 的规则。如果你想一想,规则 B=0 => T=0 甚至 B=1 => T=0 没有任何意义。
2)我正在阅读先验算法,在大多数示例中,每一行代表实际的交易,所以在我的例子中,它应该是这样的:
C,B
C
C
C
C
C, B
而不是我的一组 1 和 0,这是一个规则吗?或者我仍然可以使用我的格式吗?
谢谢
【问题讨论】:
【参考方案1】:不确定程序的目的应该是什么,但 Apriori 算法的目的是首先提取给定数据的频繁项集,其中频繁项集是一定数量的项目,这些项目经常以这样的数量出现在数据中。其次是生成那些提取的频繁项集关联规则。例如,关联规则如下所示:
B -> C
在所述情况下,这意味着购买 B 的客户也以一定的概率购买 C。其中概率由 Apriori 算法的支持度和置信度决定。支持度调节频繁项集的数量,置信度调节关联规则的数量。置信度上的关联规则称为强关联规则。 不明白在这种背景下,为什么要使用 Apriori 算法来确定客户是否购买了不同的商品。这可以通过 if 语句来回答。在这种情况下,提供的输出毫无意义。例如,第三行的输出表明,如果客户不购买 B,那么他不会购买 T,支持率为 40%,置信度为 81.6%。除了关联规则没有支持之外,只有关联规则 B -> C 是正确的,但它的置信度值是错误的。 然而,如果目标是生成描述的关联规则,则原始 Apriori 无法以这种格式操作输入:
> head(dt)
Cus T C B
1: C1 0 1 1
2: C2 0 1 0
3: C3 0 1 0
4: C4 0 1 0
5: C5 0 1 0
6: C6 0 1 1
对于未定制的 Apriori 算法,数据集需要这种格式:
> head(dt)
C1: B, C
C2: C
C3: C
C4: C
C5: C
C6: B, C
查看两种解决方案:要么在任何地方格式化输入,要么将 Apriori 算法自定义为这种格式,这可以说是算法中输入格式的变化。为了阐明对所述输入格式的需求,Apriori 算法与提供的数据简而言之:
Support level = 0.3
Confidence level = 0.3
Number of customers = 6
Total number of B's bought = 2
Total number of C's bought = 6
Support of B = 2 / 6 = 0.3 >= 0.3 = support level
Support of C = 6 / 6 = 1 >= 0.3 = support level
Support of B, C = 2 / 6 = 0.3 >= 0.3 = support level
-> Frequent itemsets = B, C, BC
-> Association rules = B -> C
Confidence of B -> C = 2 / 2 = 1 >= 0.3 = confidence level
-> Strong association rules = B -> C
希望这会有所帮助。
【讨论】:
刚刚看到您的查询是从 2015 年开始的:(无论如何,它可能对某人有所帮助:)以上是关于R - 关联规则 - 先验的主要内容,如果未能解决你的问题,请参考以下文章