Documentos de Académico
Documentos de Profesional
Documentos de Cultura
(Parte II)
1
Reglas de Asociación
2
Reglas de asociación - Definición
DEFINICIÓN
Las Reglas de asociación (Association Rule Learning o Market Basket Analysis)
son técnicas utilizadas para encontrar patrones o “reglas” que permitan estimar la
ocurrencia de un hecho basado en la ocurrencia de otros hechos (o ítems).
3
Reglas de asociación - Definición
Dada una base de datos Transaccional, los algoritmos buscan las Reglas que
describen la Asociación entre distintos elementos (e.g. cuando se compran
pañales también se compra cerveza).
4
Reglas de asociación - Aplicaciones
Casos de uso
● Identificar cuando la compra de un artículo está asociada a la
compra de otro artículo, para así crear ofertas, combos,
promociones, etc.
● Distribución de mercancías en tiendas
● Segmentación de clientes considerando patrones de compra
(similar a cluster de clientes)
● Recomendar un item a un cliente, dada una historia de
transacciones (recomendar siguiente compra).
5
Reglas de asociación - Aplicaciones
Caso - Deafness after birth
(PDF en Clase 4)
6
Reglas de asociación - Medidas
7
Reglas de asociación - Medidas
Regla Asociación 3:
{cerveza, pan} → {leche, huevos}
Item Item
X Y 8
Reglas de asociación - Medidas
Itemset: Una colección de uno o más ítems. Ej: {pan, leche}
Itemset Frecuente:
Es un itemset cuyo soporte es mayor o igual que el minsup
establecido.
9
Reglas de asociación - Medidas
Métricas de evaluación de la regla
Soporte Confianza
Proporción de transacciones que Proporción de transacciones que contienen tanto
contienen tanto a X como a Y a X como a Y respecto al proporción de
respecto al total de transacciones transacciones que contienen X.
(N).
Ejemplo Ejemplo
10
transacciones
en total (N)
Soporte
s({a}) = ?
s({b, d}) = ?
s({a, b, d}) = ?
11
Reglas de asociación - Medidas
Usando los resultados del ejercicio anterior, calcular la confianza de las reglas:
{b, d} → {a} y {a} → {b, d}.
Customer ID Items
1 {a, b, c, d, e}
2 {a, b, c, d, e}
3 {b, c, d, e}
4 {a, b, c, d, e}
5 {a, b, d, e}
Agrupando por Transacción puede verse cuáles Agrupando por Customer ID puede verse qué
productos conviene ofrecerlos juntos producto conviene ofrecer a un cliente
13
Reglas de asociación - Medidas
Otras métricas a considerar
Lift
Permite medir qué tan importante es una regla.
= P(X,Y)/P(X).P(Y)
https://hal.archives-ouvertes.fr/hal-00113594/document 15
Association Rules en R
16
Association Rules en R
Transformar CSV en “transactions”
Para poder procesar un dataset con el package arules es necesario
convertirlo en transactions. La forma más utilizada de hacerlo es
leerlo mediante la función read.transactions del mismo package. CSV
library(arules)
trx = read.transactions("transacciones.csv",
format = "single",
sep = ",",
cols = c("Id_Factura", "Item") Transactions
)
17
ARules en R
Transformar Data Frame en “transactions”
Una manera de transformar un “Data Frame” en un objeto “transactions” de ARules es a través de una lista que
contenga los ítems pertenecientes a cada transacción, para luego convertir a esa lista en “transactions”.
df <- read.csv("transacciones.csv") # Generar u obtener el data frame
df_split <- split(df$Item, df$Id_Factura) # Crea una lista con los items de cada Id_Factura (transacción)
trx2 <- as(df_split,"transactions") # Convierte la lista en “transactions”
18
ARules en R
Flujo de análisis de reglas usando libreria ARules:
19
ARules en R
Resumen de reglas en R
Donde:
lhs: (left-hand-side) es la parte izquierda de la regla (el X) o antecedente (productos asociados a la compra de otros
productos)
rhs: (right-hand-side) es la parte derecha de la regla (el Y) o resultado (producto comprado como "resultado" de
otro producto)
Support: es la frecuencia relativa de una regla sobre el total de transacciones
Confidence: mide qué tan confiable es la suposición hecha por la regla, es decir, qué tantas veces sucede el rhs
cuando se presenta el lhs, para cada regla.
Lift: mide si la regla se debió al azar. Calcula el ratio entre la confianza de la regla y el consecuente de la regla o rhs.
20
ARules - Cargar dataset
# install.packages("arules")
# install.packages("arulesViz")
library(arulesViz);library(arules)
trx = read.transactions("transacciones.csv",
format = "single",
sep = ",",
cols = c("Id_Factura", "Item")
)
summary(trx)
Density:
Porcentaje de celdas con datos en la matriz dispersa
(factura x item)
21
ARules - Print y Análisis
# Continuación…
# CREAR REGLAS
reglas <- apriori(trx, parameter = list(support = 0.01, confidence = 0.05))
print(reglas) # Muestra la cantidad de reglas creadas
set of 312 rules
22
ARules - Plot
# Continuación….
# PLOT
# Gráfico de los 20 productos más frecuente
itemFrequencyPlot(trx, topN = 20, type = "absolute")
23
ARules - Plot
# Continuación….
# Gráfico de 20 reglas con mayor confianza
# (utiliza el objeto “reglas” ya creado y
# ordenado)
24
ARules - Plot
# Continuación….
# gráfico de dispersión de todas las reglas
plot(reglas)
25
ARules - Plot
# Continuación….
# gráfico de dispersión de todas las reglas
plot(reglas, method = "two-key plot")
26
Ejercicio
Reglas de Asociación con datos Online Retail.xlsx
27
Sistemas de Recomendación
28
Sistemas de Recomendación - Definición
1. https://www.youtube.com/watch?v=giIXNoiqO_U
2. https://www.mckinsey.com/industries/retail/our-insights/how-retailers-can-keep-up-with-consumers
Sistemas de Recomendación - Definición
Caso Amazon
Tipos de Sistemas de
Recomendación
33
Sistemas de Recomendación
Basados en Contenido (Content-Based)
recommenderlab github Provides a research infrastructure to test and develop recommender algorithms including UBCF, IBCF,
FunkSVD and association rule-based algorithms
rrecsys github Implementations of several popular recommendation systems like Global/Item/User-Average baselines,
Item-Based KNN, FunkSVD, BPR and weighted ALS for rapid prototyping
recosystem github R wrapper of the 'libmf' library (http://www.csie.ntu.edu.tw/~cjlin/libmf/) for recommender system using matrix
factorization. It is typically used to approximate an incomplete matrix using the product of two matrices in a
latent space. Other common names for this task include "collaborative filtering", "matrix completion", "matrix
recovery", etc. High performance multi-core parallel computing is supported in this package
rectools github Advanced Package for Recommender Systems to incorporate user and item covariate information, including
item category preferences with Parallel computation, Novel variations on statistical latent factor model,
Focus group finder, NMF, ANOVA, cosine models
https://gist.github.com/talegari/77c90db326b4848368287e53b1a18e8d