提升系数值
Lift factor value
我有一个这样的交易矩阵:
"u1" "u10" "u2" "u3" ...
_____________________________________
"A", | 1 0 1 1 ...
"B", | 0 1 0 0
"u10"| 0 0 0 0 .
"u11"| 0 0 0 0 .
"u2" | 0 0 0 0 .
"u4" | 0 0 0 0
. .
. .
. .
我正在尝试确定每对 (i, j)
、eg、lift(u1, A)
的提升,在那个矩阵中,我首先尝试使用 R使用 arules
包的 apriori algorithm
,但我对规则不感兴趣。然后,我来到这个implementation,但这只适用于对称矩阵。我想知道如何做到这一点,或者在执行此操作的任何 R 包中是否有一些实现。
非常感谢!
我猜你想要的是下面这样的东西:
我的第一个假设是,您开始使用的矩阵不是用户-项目交易矩阵,而是项目-项目共现矩阵,其中条目 i,j 代表购买商品 i 的 # 笔交易项目 j 被带来了。这是一个小的共现矩阵 C。在这个矩阵中,每一行 i 代表购买第 i 件商品的# 笔交易。
C
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 I13 I14 I15 I16 I17 I18 I19 I20
I1 2 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0
I2 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
I3 0 0 9 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1
I4 0 0 0 5 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0
I5 0 0 1 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
I6 0 0 0 0 0 3 0 0 0 1 0 0 0 0 0 0 0 1 1 0
I7 0 0 0 0 0 0 2 0 1 0 0 0 0 0 0 0 0 0 1 0
I8 1 0 1 1 0 0 0 6 2 0 0 0 0 0 0 2 0 1 0 1
I9 0 0 1 1 0 0 1 2 9 0 1 1 0 0 0 1 1 2 1 0
I10 1 0 0 0 0 1 0 0 0 4 0 0 0 0 0 0 0 0 1 0
I11 0 0 1 0 0 0 0 0 1 0 2 0 0 0 0 0 1 0 0 0
I12 0 0 0 0 0 0 0 0 1 0 0 6 0 0 0 1 1 1 1 1
I13 0 0 1 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0
I14 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 1 0 0 0 0
I15 0 0 0 1 0 0 0 0 0 0 0 0 0 0 5 0 0 0 1 0
I16 1 0 0 0 0 0 0 2 1 0 0 1 0 1 0 4 1 1 1 0
I17 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 5 0 1 0
I18 0 0 0 0 0 1 0 1 2 0 0 1 0 0 0 1 0 9 0 0
I19 0 0 0 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 7 0
I20 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 6
现在,在给定项目 B 的情况下,项目 A 的提升是 P(A|B) / P(A)。
items.probs <- rowSums(C) / sum(C)
cond.probs <- C / rowSums(C)
lifts <- round(cond.probs / items.probs,2)
lifts
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 I13 I14 I15 I16 I17 I18 I19 I20
I1 0.90 0.90 0.45 1.79 1.79 1.35 1.79 0.90 0.00 1.79 1.79 1.35 0.45 0.45 0.45 0.00 0.90 0.45 1.35 0.45
I2 2.42 1.82 1.21 1.82 1.21 0.61 0.00 1.21 2.42 0.00 1.21 0.00 0.61 1.82 1.21 1.21 0.61 1.82 0.00 1.21
I3 0.66 0.99 0.66 0.99 0.99 0.99 1.33 0.00 0.99 0.99 0.33 0.99 0.33 0.99 0.66 1.33 1.33 0.66 0.99 0.33
I4 2.18 0.55 0.55 0.55 0.55 0.00 2.18 0.00 0.55 1.64 2.18 2.18 0.55 1.09 0.55 0.55 1.09 0.55 2.18 1.64
I5 0.00 0.00 0.00 1.35 2.71 2.03 2.03 0.68 0.00 2.03 2.03 0.68 2.03 0.68 2.71 0.00 2.03 0.00 2.03 0.68
I6 0.68 2.71 0.00 0.00 0.00 2.03 2.71 0.68 0.00 2.71 2.71 1.35 1.35 1.35 0.00 1.35 0.00 2.03 0.68 1.35
I7 0.69 1.38 0.69 0.69 1.04 1.38 1.38 0.35 0.00 0.35 0.69 1.38 1.38 1.04 0.35 0.69 0.35 1.38 0.35 1.38
I8 1.04 1.38 0.00 0.00 1.38 1.04 0.35 1.38 1.38 0.35 1.04 1.04 1.04 0.69 1.04 0.35 1.04 0.69 1.04 0.69
I9 0.00 1.97 1.97 0.00 2.96 1.97 0.99 1.97 0.99 1.97 0.00 0.00 0.99 0.99 0.99 1.97 1.97 3.94 2.96 0.00
I10 2.30 1.15 1.15 0.00 1.72 2.30 1.15 0.57 0.00 1.15 1.15 0.00 0.00 1.15 1.15 1.15 2.30 1.15 2.30 0.00
I11 0.59 1.18 0.00 0.30 0.89 0.00 1.18 1.18 0.89 1.18 0.30 1.18 0.00 1.18 0.89 0.89 1.18 0.30 1.18 1.18
I12 0.75 1.13 0.38 0.38 0.00 0.38 1.13 1.13 0.00 1.13 0.38 1.13 1.13 1.50 1.50 1.50 0.38 1.50 0.75 1.50
I13 1.50 1.50 0.38 1.13 1.13 1.50 1.50 0.75 0.00 0.38 1.13 0.75 0.00 1.13 1.50 0.75 1.50 0.00 0.38 0.75
I14 1.88 0.94 0.47 0.94 0.00 1.88 0.00 0.47 0.47 0.47 1.41 0.94 0.94 1.88 0.94 0.94 0.47 1.88 1.88 0.94
I15 0.00 1.04 1.38 1.38 1.38 1.04 1.38 0.35 0.00 1.38 1.04 1.04 1.04 1.38 0.69 1.04 0.00 0.35 0.35 0.69
I16 1.08 1.08 0.72 0.72 1.44 1.08 1.44 1.08 0.00 0.00 0.72 0.00 1.08 1.44 0.72 1.44 0.72 1.44 1.08 0.00
I17 1.97 1.97 2.96 0.00 0.00 0.99 0.00 1.97 0.00 2.96 0.00 0.00 0.99 0.99 3.94 1.97 1.97 0.99 0.99 3.94
I18 0.00 0.00 0.00 2.42 1.82 0.00 0.00 2.42 1.21 1.21 2.42 2.42 0.00 2.42 1.82 1.82 1.82 0.61 0.00 0.00
I19 1.41 1.41 0.94 1.88 0.47 0.47 1.88 1.88 0.00 0.47 0.00 0.00 1.41 0.00 0.47 0.94 0.94 1.41 1.88 1.88
I20 0.00 0.00 3.45 0.86 0.00 2.59 0.86 0.86 0.86 1.73 0.86 2.59 1.73 1.73 3.45 0.00 1.73 0.00 2.59 0.86
我有一个这样的交易矩阵:
"u1" "u10" "u2" "u3" ...
_____________________________________
"A", | 1 0 1 1 ...
"B", | 0 1 0 0
"u10"| 0 0 0 0 .
"u11"| 0 0 0 0 .
"u2" | 0 0 0 0 .
"u4" | 0 0 0 0
. .
. .
. .
我正在尝试确定每对 (i, j)
、eg、lift(u1, A)
的提升,在那个矩阵中,我首先尝试使用 R使用 arules
包的 apriori algorithm
,但我对规则不感兴趣。然后,我来到这个implementation,但这只适用于对称矩阵。我想知道如何做到这一点,或者在执行此操作的任何 R 包中是否有一些实现。
非常感谢!
我猜你想要的是下面这样的东西:
我的第一个假设是,您开始使用的矩阵不是用户-项目交易矩阵,而是项目-项目共现矩阵,其中条目 i,j 代表购买商品 i 的 # 笔交易项目 j 被带来了。这是一个小的共现矩阵 C。在这个矩阵中,每一行 i 代表购买第 i 件商品的# 笔交易。
C
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 I13 I14 I15 I16 I17 I18 I19 I20
I1 2 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0
I2 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
I3 0 0 9 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1
I4 0 0 0 5 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0
I5 0 0 1 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
I6 0 0 0 0 0 3 0 0 0 1 0 0 0 0 0 0 0 1 1 0
I7 0 0 0 0 0 0 2 0 1 0 0 0 0 0 0 0 0 0 1 0
I8 1 0 1 1 0 0 0 6 2 0 0 0 0 0 0 2 0 1 0 1
I9 0 0 1 1 0 0 1 2 9 0 1 1 0 0 0 1 1 2 1 0
I10 1 0 0 0 0 1 0 0 0 4 0 0 0 0 0 0 0 0 1 0
I11 0 0 1 0 0 0 0 0 1 0 2 0 0 0 0 0 1 0 0 0
I12 0 0 0 0 0 0 0 0 1 0 0 6 0 0 0 1 1 1 1 1
I13 0 0 1 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0
I14 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 1 0 0 0 0
I15 0 0 0 1 0 0 0 0 0 0 0 0 0 0 5 0 0 0 1 0
I16 1 0 0 0 0 0 0 2 1 0 0 1 0 1 0 4 1 1 1 0
I17 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 5 0 1 0
I18 0 0 0 0 0 1 0 1 2 0 0 1 0 0 0 1 0 9 0 0
I19 0 0 0 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 7 0
I20 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 6
现在,在给定项目 B 的情况下,项目 A 的提升是 P(A|B) / P(A)。
items.probs <- rowSums(C) / sum(C)
cond.probs <- C / rowSums(C)
lifts <- round(cond.probs / items.probs,2)
lifts
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 I13 I14 I15 I16 I17 I18 I19 I20
I1 0.90 0.90 0.45 1.79 1.79 1.35 1.79 0.90 0.00 1.79 1.79 1.35 0.45 0.45 0.45 0.00 0.90 0.45 1.35 0.45
I2 2.42 1.82 1.21 1.82 1.21 0.61 0.00 1.21 2.42 0.00 1.21 0.00 0.61 1.82 1.21 1.21 0.61 1.82 0.00 1.21
I3 0.66 0.99 0.66 0.99 0.99 0.99 1.33 0.00 0.99 0.99 0.33 0.99 0.33 0.99 0.66 1.33 1.33 0.66 0.99 0.33
I4 2.18 0.55 0.55 0.55 0.55 0.00 2.18 0.00 0.55 1.64 2.18 2.18 0.55 1.09 0.55 0.55 1.09 0.55 2.18 1.64
I5 0.00 0.00 0.00 1.35 2.71 2.03 2.03 0.68 0.00 2.03 2.03 0.68 2.03 0.68 2.71 0.00 2.03 0.00 2.03 0.68
I6 0.68 2.71 0.00 0.00 0.00 2.03 2.71 0.68 0.00 2.71 2.71 1.35 1.35 1.35 0.00 1.35 0.00 2.03 0.68 1.35
I7 0.69 1.38 0.69 0.69 1.04 1.38 1.38 0.35 0.00 0.35 0.69 1.38 1.38 1.04 0.35 0.69 0.35 1.38 0.35 1.38
I8 1.04 1.38 0.00 0.00 1.38 1.04 0.35 1.38 1.38 0.35 1.04 1.04 1.04 0.69 1.04 0.35 1.04 0.69 1.04 0.69
I9 0.00 1.97 1.97 0.00 2.96 1.97 0.99 1.97 0.99 1.97 0.00 0.00 0.99 0.99 0.99 1.97 1.97 3.94 2.96 0.00
I10 2.30 1.15 1.15 0.00 1.72 2.30 1.15 0.57 0.00 1.15 1.15 0.00 0.00 1.15 1.15 1.15 2.30 1.15 2.30 0.00
I11 0.59 1.18 0.00 0.30 0.89 0.00 1.18 1.18 0.89 1.18 0.30 1.18 0.00 1.18 0.89 0.89 1.18 0.30 1.18 1.18
I12 0.75 1.13 0.38 0.38 0.00 0.38 1.13 1.13 0.00 1.13 0.38 1.13 1.13 1.50 1.50 1.50 0.38 1.50 0.75 1.50
I13 1.50 1.50 0.38 1.13 1.13 1.50 1.50 0.75 0.00 0.38 1.13 0.75 0.00 1.13 1.50 0.75 1.50 0.00 0.38 0.75
I14 1.88 0.94 0.47 0.94 0.00 1.88 0.00 0.47 0.47 0.47 1.41 0.94 0.94 1.88 0.94 0.94 0.47 1.88 1.88 0.94
I15 0.00 1.04 1.38 1.38 1.38 1.04 1.38 0.35 0.00 1.38 1.04 1.04 1.04 1.38 0.69 1.04 0.00 0.35 0.35 0.69
I16 1.08 1.08 0.72 0.72 1.44 1.08 1.44 1.08 0.00 0.00 0.72 0.00 1.08 1.44 0.72 1.44 0.72 1.44 1.08 0.00
I17 1.97 1.97 2.96 0.00 0.00 0.99 0.00 1.97 0.00 2.96 0.00 0.00 0.99 0.99 3.94 1.97 1.97 0.99 0.99 3.94
I18 0.00 0.00 0.00 2.42 1.82 0.00 0.00 2.42 1.21 1.21 2.42 2.42 0.00 2.42 1.82 1.82 1.82 0.61 0.00 0.00
I19 1.41 1.41 0.94 1.88 0.47 0.47 1.88 1.88 0.00 0.47 0.00 0.00 1.41 0.00 0.47 0.94 0.94 1.41 1.88 1.88
I20 0.00 0.00 3.45 0.86 0.00 2.59 0.86 0.86 0.86 1.73 0.86 2.59 1.73 1.73 3.45 0.00 1.73 0.00 2.59 0.86