tahi

tahi

2026-05-28

#1. INSTALACIÓN Y CARGA DE LIBRERÍAS (Ejecutar solo si no las tienes) #

# install.packages(“arules”) # install.packages(“arulesViz”)

library(arules) library(arulesViz)

==============================================================================

2. CARGAR EL ARCHIVO “sesiones_spotify.csv”

==============================================================================

Primero leemos el archivo CSV normalmente, porque tiene dos columnas:

ID_Sesion y Contenido.

datos <- read.csv(file.choose(), stringsAsFactors = FALSE)

Luego separamos la columna Contenido usando “|”, porque ahí están los artistas/géneros.

El símbolo “|” debe escribirse como “\|” porque en R es un carácter especial.

lista_contenido <- strsplit(datos$Contenido, “\|”)

Finalmente, convertimos esa lista en un objeto tipo “transactions”,

que es el formato que necesita el algoritmo Apriori.

transacciones <- as(lista_contenido, “transactions”)

Revisar un resumen rápido de lo que cargamos

summary(transacciones)

Visualizar los 10 artistas/géneros más frecuentes

itemFrequencyPlot(transacciones, topN = 10, type = “absolute”, col = “springgreen3”, main = “Top 10 más escuchados”)

==============================================================================

3. EJECUTAR EL ALGORITMO APRIORI

==============================================================================

Ajustamos soporte a 0.01 (que aparezcan al menos en el 1% de sesiones)

y confianza al 25% (0.25). Modifica estos números si salen muchas o pocas reglas.

reglas <- apriori(transacciones, parameter = list(supp = 0.01, conf = 0.25, minlen = 2))

Ver cuántas reglas logramos generar

summary(reglas)

==============================================================================

4. REVISAR E INTERPRETAR LOS RESULTADOS

==============================================================================

Ordenamos por ‘lift’ para ver las relaciones más fuertes y significativas

reglas_ordenadas <- sort(reglas, by = “lift”, decreasing = TRUE)

Mostrar en consola las 15 mejores reglas

inspect(head(reglas_ordenadas, 15))

——————————————————————————

EXTRA: ¿Quieres saber qué recomiendan a los que escuchan “Bad_Bunny”?

——————————————————————————

reglas_bad_bunny <- subset(reglas, lhs %in% “Bad_Bunny”) inspect(head(sort(reglas_bad_bunny, by = “lift”, decreasing = TRUE), 5))

==============================================================================

5. GRAFICAR LAS REGLAS (Para tu reporte de RPubs)

==============================================================================

Gráfico interactivo tipo red

plot(head(reglas_ordenadas, 20), method = “graph”, engine = “htmlwidget”)

Gráfico de dispersión clásico

plot(reglas, method = “scatterplot”)