Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Comparación del Rendimiento Algorítmico | Minería de Reglas de Alto Rendimiento y Optimización de Escala
Análisis de Canasta de Mercado y Sistemas de Recomendación

Comparación del Rendimiento Algorítmico

Desliza para mostrar el menú

Comprender las diferencias computacionales entre Apriori y FP-Growth es fundamental al extraer reglas de asociación a gran escala. A continuación se presenta un desglose estructurado para ayudar a comparar estos dos algoritmos de manera efectiva:

Uso de memoria

Apriori
expand arrow

Genera todos los conjuntos de elementos posibles y los almacena en memoria, lo que puede provocar un crecimiento exponencial del uso de memoria a medida que aumenta el número de elementos únicos;

FP-Growth
expand arrow

Construye una estructura compacta de árbol FP que almacena las transacciones de manera más eficiente al colapsar los prefijos comunes, lo que reduce considerablemente el uso de memoria en conjuntos de datos densos.

Velocidad

Apriori
expand arrow

Escanea repetidamente el conjunto de datos para contar las frecuencias de los conjuntos de ítems, lo que conduce a un tiempo de ejecución elevado, especialmente a medida que aumenta el tamaño del conjunto de ítems;

FP-Growth
expand arrow

Requiere solo dos pasadas completas sobre los datos: una para determinar los ítems frecuentes y otra para construir el FP-tree, lo que lo hace significativamente más rápido para conjuntos de datos grandes.

Escalabilidad

Apriori
expand arrow

Presenta dificultades de escalabilidad debido a la explosión combinatoria de los conjuntos de ítems candidatos, lo que lo vuelve poco práctico para conjuntos de datos muy grandes o densos;

FP-Growth
expand arrow

Escala mejor al evitar la generación de candidatos y aprovechar la compresión mediante árboles, permitiendo una minería eficiente incluso cuando aumentan el tamaño de los datos y la complejidad de los conjuntos de ítems.

Escenarios prácticos

Usar Apriori
expand arrow

Cuando los conjuntos de datos son pequeños o dispersos, la interpretabilidad y la simplicidad son importantes, o cuando se desea ajustar fácilmente los umbrales mínimos de soporte;

Usar FP-Growth
expand arrow

Cuando los conjuntos de datos son grandes, densos, o la eficiencia de memoria y la velocidad son prioridades.

El siguiente ejemplo de código muestra cómo crear un conjunto de datos sintético de transacciones de cesta de mercado y comparar el rendimiento en tiempo de ejecución de los algoritmos Apriori y FP-Growth utilizando la biblioteca mlxtend de Python. Se observará cómo cada algoritmo maneja los mismos datos y cómo difieren sus tiempos de ejecución, destacando su eficiencia en escenarios prácticos.

123456789101112131415161718192021222324252627
import pandas as pd from mlxtend.frequent_patterns import apriori, fpgrowth import numpy as np import time # Create a medium-sized synthetic dataset np.random.seed(42) items = ['apple', 'banana', 'milk', 'bread', 'butter', 'cheese', 'eggs', 'juice'] n_transactions = 3000 data = [] for _ in range(n_transactions): basket = np.random.choice(items, size=np.random.randint(2, 6), replace=False) data.append({item: (item in basket) for item in items}) df = pd.DataFrame(data) # Timing Apriori start_apriori = time.time() apriori(df, min_support=0.05, use_colnames=True) end_apriori = time.time() # Timing FP-Growth start_fpgrowth = time.time() fpgrowth(df, min_support=0.05, use_colnames=True) end_fpgrowth = time.time() print(f"Apriori runtime: {end_apriori - start_apriori:.3f} seconds") print(f"FP-Growth runtime: {end_fpgrowth - start_fpgrowth:.3f} seconds")

1. ¿Cuándo se debe preferir FP-Growth sobre Apriori para la minería de reglas de asociación?

2. ¿Qué afirmación describe mejor la diferencia de complejidad computacional entre Apriori y FP-Growth?

question mark

¿Cuándo se debe preferir FP-Growth sobre Apriori para la minería de reglas de asociación?

Selecciona la respuesta correcta

question mark

¿Qué afirmación describe mejor la diferencia de complejidad computacional entre Apriori y FP-Growth?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 2

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 2. Capítulo 2
some-alt