Market Basket Analysis de Supermercado

Instalar paquetes y llamar librerías

#install.packages("plyr")
library(plyr)
## Warning: package 'plyr' was built under R version 4.2.3
#install.packages("Matrix")
library(Matrix)
## Warning: package 'Matrix' was built under R version 4.2.3
#install.packages("arules")
library(arules)
## Warning: package 'arules' was built under R version 4.2.3
## 
## Attaching package: 'arules'
## The following objects are masked from 'package:base':
## 
##     abbreviate, write
#install.packages("arulesViz")
library(arulesViz)
## Warning: package 'arulesViz' was built under R version 4.2.3
#install.packages("datasets")
library(datasets)

Importar la base de datos

#file.choose()
#bd_limpia <- read.csv("C:\\Users\\lesda\\OneDrive\\Documentos\\Manipulación de datos\\LESsupermercado_limpia.csv")

Ordenar de menor a mayor los tickets

#bd_limpia <- bd_limpia[order(bd_limpia$BillNo),]
#head(bd_limpia)
#tail(bd_limpia)

Extraer productos por ticket

#basket <- ddply(bd_limpia, c("BillNo"), function(bd_limpia)paste(bd_limpia$Itemname,collapse = ","))

Eliminar número de ticket

#basket$BillNo <- NULL

Renombrar el nombre de la columna marca

#colnames(basket) <- c("Itemname")

Exportar basket

#write.csv(basket,"basketSUPERMERCADO.csv", quote = FALSE, row.names = FALSE)

Importar transacciones

#file.choose()
#tr <- read.transactions("C:\\Users\\lesda\\OneDrive\\Documentos\\basketSUPERMERCADO.csv", format = "basket", sep = ","")

Generar reglas de asociación

#reglas_asociacion <- apriori(tr, parameter = list(supp=0.001, conf=0.2, maxlen=10))
#summary(reglas_asociacion)
#inspect(reglas_asociacion)

#reglas_asociacion <- sort(reglas_asociacion, by= "confidence", decreasing = TRUE)
#summary(reglas_asociacion)
#inspect(reglas_asociacion)

#top10reglas <- head(reglas_asociacion, n=10, by="confidence")
#plot(top10reglas, method="graph", engine="htmlwidget")
LS0tDQp0aXRsZTogIlNVUEVSIE1FUkNBRE8gTUFSS0VUIEJBU0tFVCBBTkFMSVNJUyINCmF1dGhvcjogIkxlc2x5IERhcmlhbiBSb21lcm8gVmF6cXVleiAtIEEwMTc3MTEyNyINCmRhdGU6ICIyMDIzLTAzLTE4Ig0Kb3V0cHV0OiANCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IHRydWUNCiAgICB0b2NfZmxvYXQ6IHRydWUNCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlDQotLS0NCiFbXShDOlxcVXNlcnNcXGxlc2RhXFxPbmVEcml2ZVxcRXNjcml0b3Jpb1xcU00ucG5nKQ0KDQojIE1hcmtldCBCYXNrZXQgQW5hbHlzaXMgZGUgU3VwZXJtZXJjYWRvIA0KDQojIyBJbnN0YWxhciBwYXF1ZXRlcyB5IGxsYW1hciBsaWJyZXLDrWFzIA0KDQpgYGB7cn0NCiNpbnN0YWxsLnBhY2thZ2VzKCJwbHlyIikNCmxpYnJhcnkocGx5cikNCiNpbnN0YWxsLnBhY2thZ2VzKCJNYXRyaXgiKQ0KbGlicmFyeShNYXRyaXgpDQojaW5zdGFsbC5wYWNrYWdlcygiYXJ1bGVzIikNCmxpYnJhcnkoYXJ1bGVzKQ0KI2luc3RhbGwucGFja2FnZXMoImFydWxlc1ZpeiIpDQpsaWJyYXJ5KGFydWxlc1ZpeikNCiNpbnN0YWxsLnBhY2thZ2VzKCJkYXRhc2V0cyIpDQpsaWJyYXJ5KGRhdGFzZXRzKQ0KYGBgDQoNCiMjIEltcG9ydGFyIGxhIGJhc2UgZGUgZGF0b3MgDQpgYGB7cn0NCiNmaWxlLmNob29zZSgpDQojYmRfbGltcGlhIDwtIHJlYWQuY3N2KCJDOlxcVXNlcnNcXGxlc2RhXFxPbmVEcml2ZVxcRG9jdW1lbnRvc1xcTWFuaXB1bGFjacOzbiBkZSBkYXRvc1xcTEVTc3VwZXJtZXJjYWRvX2xpbXBpYS5jc3YiKQ0KDQpgYGANCg0KIyMgT3JkZW5hciBkZSBtZW5vciBhIG1heW9yIGxvcyB0aWNrZXRzIA0KYGBge3J9DQojYmRfbGltcGlhIDwtIGJkX2xpbXBpYVtvcmRlcihiZF9saW1waWEkQmlsbE5vKSxdDQojaGVhZChiZF9saW1waWEpDQojdGFpbChiZF9saW1waWEpDQpgYGANCg0KDQojIyBFeHRyYWVyIHByb2R1Y3RvcyBwb3IgdGlja2V0IA0KYGBge3J9DQojYmFza2V0IDwtIGRkcGx5KGJkX2xpbXBpYSwgYygiQmlsbE5vIiksIGZ1bmN0aW9uKGJkX2xpbXBpYSlwYXN0ZShiZF9saW1waWEkSXRlbW5hbWUsY29sbGFwc2UgPSAiLCIpKQ0KDQpgYGANCg0KIyMgRWxpbWluYXIgbsO6bWVybyBkZSB0aWNrZXQgDQpgYGB7cn0NCiNiYXNrZXQkQmlsbE5vIDwtIE5VTEwNCg0KYGBgDQoNCiMjIFJlbm9tYnJhciBlbCBub21icmUgZGUgbGEgY29sdW1uYSBtYXJjYSANCmBgYHtyfQ0KI2NvbG5hbWVzKGJhc2tldCkgPC0gYygiSXRlbW5hbWUiKQ0KDQpgYGANCg0KIyMgRXhwb3J0YXIgYmFza2V0DQpgYGB7cn0NCiN3cml0ZS5jc3YoYmFza2V0LCJiYXNrZXRTVVBFUk1FUkNBRE8uY3N2IiwgcXVvdGUgPSBGQUxTRSwgcm93Lm5hbWVzID0gRkFMU0UpDQoNCmBgYA0KDQojIyBJbXBvcnRhciB0cmFuc2FjY2lvbmVzIA0KYGBge3J9DQojZmlsZS5jaG9vc2UoKQ0KI3RyIDwtIHJlYWQudHJhbnNhY3Rpb25zKCJDOlxcVXNlcnNcXGxlc2RhXFxPbmVEcml2ZVxcRG9jdW1lbnRvc1xcYmFza2V0U1VQRVJNRVJDQURPLmNzdiIsIGZvcm1hdCA9ICJiYXNrZXQiLCBzZXAgPSAiLCIiKQ0KYGBgDQoNCg0KIyMgR2VuZXJhciByZWdsYXMgZGUgYXNvY2lhY2nDs24gDQpgYGB7cn0NCiNyZWdsYXNfYXNvY2lhY2lvbiA8LSBhcHJpb3JpKHRyLCBwYXJhbWV0ZXIgPSBsaXN0KHN1cHA9MC4wMDEsIGNvbmY9MC4yLCBtYXhsZW49MTApKQ0KI3N1bW1hcnkocmVnbGFzX2Fzb2NpYWNpb24pDQojaW5zcGVjdChyZWdsYXNfYXNvY2lhY2lvbikNCg0KI3JlZ2xhc19hc29jaWFjaW9uIDwtIHNvcnQocmVnbGFzX2Fzb2NpYWNpb24sIGJ5PSAiY29uZmlkZW5jZSIsIGRlY3JlYXNpbmcgPSBUUlVFKQ0KI3N1bW1hcnkocmVnbGFzX2Fzb2NpYWNpb24pDQojaW5zcGVjdChyZWdsYXNfYXNvY2lhY2lvbikNCg0KI3RvcDEwcmVnbGFzIDwtIGhlYWQocmVnbGFzX2Fzb2NpYWNpb24sIG49MTAsIGJ5PSJjb25maWRlbmNlIikNCiNwbG90KHRvcDEwcmVnbGFzLCBtZXRob2Q9ImdyYXBoIiwgZW5naW5lPSJodG1sd2lkZ2V0IikNCmBgYA0KDQo=