Sto usando R (e il pacchetto Arules) per estrarre transazioni per regole di associazione. Quello che desidero fare è costruire le regole e quindi applicarle a nuovi dati.
Ad esempio, supponiamo che io abbia molte regole, una delle quali è quella canonica {Beer=YES} -> {Diapers=YES}
.
Poi ho nuovi dati transazionali in cui uno dei dischi ha acquistato birra ma non pannolini. Come posso identificare una regola in cui viene rispettato l'LHS, ma non ancora l'RHS?
Esempio 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"))
Le regole generate sono:
> 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 seconda transazione mostra questo cliente, dal momento che hanno yogurt ma non latte intero forse dovrebbe essere inviato un coupon per il latte. Come si possono individuare eventuali regole applicabili in "regole" per le nuove transazioni?
> LIST(Groceries[2])
[[1]]
[1] "tropical fruit" "yogurt" "coffee"