Estoy usando R (y el paquete arules) para minar transacciones para reglas de asociación. Lo que deseo hacer es construir las reglas y luego aplicarlas a los nuevos datos.
Por ejemplo, digamos que tengo muchas reglas, una de las cuales es la canónica {Beer=YES} -> {Diapers=YES}
.
Luego tengo nuevos datos transaccionales donde uno de los registros ha comprado cerveza pero no pañales. ¿Cómo puedo identificar una regla donde se cumple el LHS, pero aún no el RHS?
R ejemplo:
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"))
Las reglas generadas son:
> 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 segunda transacción muestra a este cliente, ya que tiene yogur pero no leche entera, tal vez debería enviarse un cupón para la leche. ¿Cómo pueden ubicarse las reglas aplicables en "reglas" para nuevas transacciones?
> LIST(Groceries[2])
[[1]]
[1] "tropical fruit" "yogurt" "coffee"
fuente
basket <- "tropical fruit" "yogurt" "coffee"
?as(list(basket), "itemMatrix")