Documento 14 Proyecto Futbin

En este fichero vamos a explicar las funciones no conocidas en el proyecto futbin creado por Daniel Redondo: https://danielredondo.com/posts/20200405_reglas_asociacion/

  1. Se calculan los itemsets maximales y cerrados:
# Itemsets maximales
imaxfutbin_transacciones <- ifutbin_transacciones[is.maximal(ifutbin_transacciones)]

# Itemsets cerrados
iclofutbin_transacciones <- ifutbin_transacciones[is.closed(ifutbin_transacciones)]

is.maximal: devuelve un vector lógico con la misma longitud que x que indica para cada elemento en x si es itemset maximal.

  1. Se eliminan las reglas que son redundantes, esto es, reglas que están incluidas dentro de otras (antecedente de una regla incluida en el antecedente de otra regla).
# Matriz con todas las reglas como nombres de filas y columnas.
# is.subset comprueba para cada regla qué elementos son subconjuntos
# de todas las reglas una a una
subsetMatrix <- is.subset(rulesSorted, rulesSorted)

# Se filtran ahora los que han salido contenidas en 2 o más reglas
# porque como mínimo, cada regla es un subconjunto de sí misma
redundant <- colSums(subsetMatrix, na.rm = TRUE) >= 2 

# Se eliminan las reglas redundantes
rulesPruned <- rulesSorted[!redundant] 
  1. Se seleccionará un conjunto pequeño de reglas que puedan ser relevantes, en el sentido de que aporten información que no es obvia.
# Añadimos a las reglas varias medidas de interés:
mInteres <- interestMeasure(reglas_seleccionadas,
                            measure = c("gini", "chiSquared"),
                            transactions=futbin_transacciones)

quality(reglas_seleccionadas) <- cbind(quality(reglas_seleccionadas), mInteres)

La función interestMeasure sirve para calcular varias medidas de interés adicional para conjuntos existentes de itemsets o reglas.

Además gini es una medida de desilguadad que puede utilizarse para medir cualquier forma de distribución desigual.

chiSquared: El estadístico ji-cuadrado (o chi cuadrado) sirve para someter a prueba hipótesis referidas a distribuciones de frecuencias.

  1. Se visualizan ahora las 10 reglas más relevantes encontradas, usando distintos métodos de visualización del paquete arulesViz.
# Tipo grafo
reglas_seleccionadas %>%
  head(by = "gini", n = 10) %>%
  plot(method = "graph")
reglas_seleccionadas %>%
  head(by = "gini", n = 10) %>%
  plot(method = "grouped")
reglas_seleccionadas %>%
  head(by = "gini", n = 10) %>%
  plot(method = "paracoord", reorder = TRUE)