Algoritmo a priori en programación R

El algoritmo a priori se usa para encontrar conjuntos de elementos frecuentes en un conjunto de datos para la minería de reglas de asociación . Se llama a priori porque utiliza el conocimiento previo de las propiedades frecuentes de los conjuntos de elementos. Aplicamos un enfoque iterativo o una búsqueda por niveles en la que se utilizan conjuntos de elementos k frecuentes para encontrar conjuntos de elementos k+1. Para mejorar la eficiencia de la generación nivelada de conjuntos de elementos frecuentes, se utiliza una propiedad importante llamada propiedad Apriori que ayuda a reducir el espacio de búsqueda. Es muy fácil implementar este algoritmo utilizando el lenguaje de programación R.

Propiedad a priori: todos los subconjuntos no vacíos de un conjunto de elementos frecuentes deben ser frecuentes. A priori asume que todos los subconjuntos de un conjunto de elementos frecuentes deben ser frecuentes (propiedad a priori). Si un conjunto de elementos es infrecuente, todos sus superconjuntos serán infrecuentes.

Esencialmente, el algoritmo Apriori toma cada parte de un conjunto de datos más grande y lo contrasta con otros conjuntos de forma ordenada. Los puntajes resultantes se utilizan para generar conjuntos que se clasifican como apariciones frecuentes en una base de datos más grande para la recopilación de datos agregados. En un sentido práctico, uno puede tener una mejor idea del algoritmo mirando aplicaciones como una herramienta de cesta de la compra que ayuda a determinar qué artículos se compran juntos en una cesta de la compra, o una herramienta de análisis financiero que ayuda a mostrar cómo varios las acciones tienden juntas. El algoritmo Apriori se puede usar junto con otros algoritmos para ordenar y contrastar datos de manera efectiva para mostrar una imagen mucho mejor de cómo los sistemas complejos reflejan patrones y tendencias.

Terminologías importantes

  • Soporte: el soporte es una indicación de la frecuencia con la que aparece el conjunto de elementos en el conjunto de datos. Es el conteo de registros que contienen un ítem ‘x’ dividido por el número total de registros en la base de datos.
  • Confianza: La confianza es una medida de tiempos tal que si se compra un artículo ‘x’, entonces el artículo ‘y’ también se compra en conjunto. Es el conteo de soporte de (x U y) dividido por el conteo de soporte de ‘x’.
  • Elevación: La elevación es la relación entre el soporte observado y el que se esperaría si ‘x’ e ‘y’ fueran independientes. Es el recuento de soporte de (x U y) dividido por el producto de los recuentos de soporte individuales de ‘x’ e ‘y’.

Algoritmo

  1. Lea cada artículo en la transacción.
  2. Calcular el apoyo de cada elemento.
  3. Si el soporte es inferior al soporte mínimo, deseche el artículo. De lo contrario, insértelo en el conjunto de elementos frecuentes.
  4. Calcule la confianza para cada subconjunto no vacío.
  5. Si la confianza es inferior a la confianza mínima, descarte el subconjunto. Si no, en reglas fuertes.

Implementación de algoritmo a priori en R

RStudio proporciona un popular software profesional de código abierto y listo para la empresa para el entorno informático estadístico R. R es un lenguaje desarrollado para admitir cálculos estadísticos y computación/visualizaciones gráficas. Tiene una función de biblioteca incorporada llamada arules que implementa el algoritmo Apriori para Market Basket Analysis y calcula las reglas fuertes a través de Association Rule Mining, una vez que especificamos el soporte mínimo y la confianza mínima, de acuerdo con nuestras necesidades. A continuación se muestra el código requerido y la salida correspondiente para el algoritmo Apriori. los comestiblesSe ha utilizado un conjunto de datos para el mismo, que está disponible en la base de datos predeterminada de R. Contiene 9835 transacciones/registros, cada uno con ‘n’ número de artículos que se compraron juntos en la tienda de comestibles.

Ejemplo:

Paso 1: Cargue la biblioteca requerida

El paquete ‘ arules ‘ proporciona la infraestructura para representar, manipular y analizar patrones y datos de transacciones.

library(arules)

El paquete ‘ arulesviz ‘ se utiliza para visualizar las reglas de asociación y los conjuntos de elementos frecuentes. Extiende el paquete ‘arules’ con varias técnicas de visualización para reglas de asociación y conjuntos de elementos. El paquete también incluye varias visualizaciones interactivas para la exploración de reglas.

library(arulesViz)

RColorBrewer ‘ es una paleta ColorBrewer que proporciona esquemas de color para mapas y otros gráficos.

library(RColorBrewer)

Paso 2: importa el conjunto de datos

El conjunto de datos ‘ Supermercados ‘ está predefinido en el paquete R. Es un conjunto de 9835 registros/transacciones, cada uno con ‘n’ número de artículos, que se compraron juntos en la tienda de comestibles.

data("Groceries")

Paso 3: Aplicar la función a priori()

La función ‘ apriori() ‘ está integrada en R para extraer conjuntos de elementos frecuentes y reglas de asociación utilizando el algoritmo Apriori. Aquí, ‘Comestibles’ son los datos de la transacción. ‘parámetro’ es una lista con nombre que especifica el soporte mínimo y la confianza para encontrar las reglas de asociación. El comportamiento predeterminado es extraer las reglas con un soporte mínimo de 0,1 y 0,8 como confianza mínima. Aquí, hemos especificado que el soporte mínimo sea 0,01 y la confianza mínima sea 0,2.

rules <- apriori(Groceries, parameter = list(supp = 0.01, conf = 0.2))

Paso 4: Aplicar la función inspeccionar()

La función inspeccionar() imprime la representación interna de un objeto R o el resultado de una expresión. Aquí, muestra las primeras 10 reglas de asociación fuerte.

inspect(rules[1:10])

Paso 5: Aplicar la función itemFrequencyPlot()

itemFrequencyPlot() crea un diagrama de barras para frecuencias/soporte de elementos. Crea un gráfico de barras de frecuencia de elementos para inspeccionar la distribución de objetos en función de las transacciones. Los elementos se trazan ordenados por soporte descendente. Aquí, ‘topN=20’ significa que se trazarán 20 elementos con la mayor frecuencia/elevación de elementos.

arules::itemFrequencyPlot(Groceries, topN = 20, 
                          col = brewer.pal(8, 'Pastel2'),
                          main = 'Relative Item Frequency Plot',
                          type = "relative",
                          ylab = "Item Frequency (Relative)")

El código R completo se proporciona a continuación.

R

# Loading Libraries
library(arules)
library(arulesViz)
library(RColorBrewer)
 
# import dataset
data("Groceries")
 
# using apriori() function
rules <- apriori(Groceries,
                 parameter = list(supp = 0.01, conf = 0.2))
 
# using inspect() function
inspect(rules[1:10])
 
# using itemFrequencyPlot() function
arules::itemFrequencyPlot(Groceries, topN = 20,
                          col = brewer.pal(8, 'Pastel2'),
                          main = 'Relative Item Frequency Plot',
                          type = "relative",
                          ylab = "Item Frequency (Relative)")

Producción:

Running the code in RStudio

Reglas fuertes:

Las Reglas Fuertes obtenidas luego de aplicar el Algoritmo A priori es la siguiente 

Strong Rules obtained after applying Apriori Algorithm

Después de ejecutar el código anterior para el algoritmo Apriori, podemos ver el siguiente resultado, especificando las primeras 10 reglas de asociación más sólidas, según el soporte (soporte mínimo de 0,01), confianza (confianza mínima de 0,2) y elevación, además de mencionar el conteo de veces que los productos ocurren juntos en las transacciones. 

Visualización:

Diagrama de caja de los 20 elementos principales que tienen la frecuencia de elementos más alta (relativa) utilizando el aumento como parámetro 

Box Plot of the Top 20 Items having the Highest Item Frequency (Relative) using Lift as a Parameter

Conclusión

Hemos utilizado el conjunto de datos ‘ Comestibles ‘ que tiene alrededor de 9835 transacciones que incluyen ‘n’ cantidad de artículos que se compraron juntos en la tienda. Al ejecutar el algoritmo Apriori sobre el conjunto de datos con un valor de soporte mínimo de 0,01 y una confianza mínima de 0,2, filtramos las reglas de asociación fuerte en la transacción. Hemos enumerado las primeras 10 transacciones anteriores, junto con el diagrama de caja de los 20 elementos principales que tienen la frecuencia relativa de elementos más alta. Algunas reglas de asociación que podemos concluir de este programa son: 

  • Si se compra queso duro, también se compra leche entera.
  • Si se compra suero de leche, también se compra leche entera.
  • Si se compra suero de leche, también se compran otras verduras juntas.
  • Además, la leche entera tiene un alto apoyo, así como un valor de confianza.

Por lo tanto, será rentable colocar ‘leche entera’ en un estante visible y accesible, ya que es uno de los artículos que se compran con más frecuencia. Además, cerca del anaquel donde se coloca el ‘suero de leche’, debe haber anaqueles para ‘leche entera’ y ‘otras verduras’ ya que su valor de confianza es bastante alto. Por lo tanto, existe una mayor probabilidad de comprarlos junto con suero de leche. Por lo tanto, con acciones similares, podemos apuntar a aumentar las ventas y las ganancias de la tienda de comestibles mediante el análisis de los patrones de compra de los usuarios.

Publicación traducida automáticamente

Artículo escrito por SAKSHIKULSHRESHTHA y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *