J'utilise R (et le package d'arules) pour extraire des transactions pour les règles d'association. Ce que je veux faire, c'est construire les règles, puis les appliquer à de nouvelles données.
Par exemple, disons que j'ai de nombreuses règles, dont l'une est canonique {Beer=YES} -> {Diapers=YES}
.
Ensuite, j'ai de nouvelles données transactionnelles où l'un des enregistrements a acheté de la bière mais pas des couches. Comment puis-je identifier une règle où le LHS est respecté, mais pas encore le RHS?
Exemple R:
install.packages("arules")
library(arules)
data("Groceries")
**#generate Rules omitting second record**
rules <- apriori(Groceries[-2],parameter = list(supp = 0.05, conf = 0.2,target = "rules"))
Les règles générées sont:
> inspect(rules)
lhs rhs support confidence lift
1 {} => {whole milk} 0.25554200 0.2555420 1.000000
2 {yogurt} => {whole milk} 0.05603010 0.4018964 1.572722
3 {whole milk} => {yogurt} 0.05603010 0.2192598 1.572722
4 {rolls/buns} => {whole milk} 0.05664023 0.3079049 1.204909
5 {whole milk} => {rolls/buns} 0.05664023 0.2216474 1.204909
6 {other vegetables} => {whole milk} 0.07484238 0.3867578 1.513480
7 {whole milk} => {other vegetables} 0.07484238 0.2928770 1.513480
La deuxième transaction montre ce client, car ils ont du yaourt mais pas du lait entier, il faudrait peut-être envoyer un coupon pour le lait. Comment localiser les règles applicables dans les "règles" pour les nouvelles transactions?
> LIST(Groceries[2])
[[1]]
[1] "tropical fruit" "yogurt" "coffee"
la source
basket <- "tropical fruit" "yogurt" "coffee"
?as(list(basket), "itemMatrix")