¿FPGrowth todavía se considera "estado del arte" en la minería de patrones frecuente?


12

Hasta donde sé, el desarrollo de algoritmos para resolver el problema de Minería de patrones frecuentes (FPM), el camino de las mejoras tiene algunos puntos de control principales. En primer lugar, el algoritmo Apriori fue propuesto en 1993 por Agrawal et al. , junto con la formalización del problema. El algoritmo pudo eliminar algunos conjuntos de los 2^n - 1conjuntos (conjunto de potencia) mediante el uso de una red para mantener los datos. Un inconveniente del enfoque fue la necesidad de volver a leer la base de datos para calcular la frecuencia de cada conjunto expandido.

Más tarde, en el año 1997, Zaki et al. propuso el algoritmo Eclat , que insertó la frecuencia resultante de cada conjunto dentro de la red. Esto se hizo agregando, en cada nodo de la red, el conjunto de identificadores de transacción que tenían los elementos desde la raíz hasta el nodo referido. La contribución principal es que no es necesario volver a leer el conjunto de datos completo para conocer la frecuencia de cada conjunto, pero la memoria requerida para mantener dicha estructura de datos construida puede exceder el tamaño del conjunto de datos en sí.

En 2000, Han et al. propuso un algoritmo llamado FPGrowth , junto con una estructura de datos de árbol de prefijos llamada FPTree. El algoritmo pudo proporcionar una compresión de datos significativa, al tiempo que garantizaba que solo se producirían conjuntos de elementos frecuentes (sin la generación de conjuntos de elementos candidatos). Esto se hizo principalmente clasificando los elementos de cada transacción en orden decreciente, de modo que los elementos más frecuentes son los que tienen menos repeticiones en la estructura de datos del árbol. Como la frecuencia solo desciende mientras atraviesa el árbol en profundidad, el algoritmo puede eliminar conjuntos de elementos no frecuentes.

Editar :

Hasta donde sé, esto puede considerarse un algoritmo de vanguardia, pero me gustaría saber sobre otras soluciones propuestas. ¿Qué otros algoritmos para FPM se consideran "estado del arte"? ¿Cuál es la intuición / contribución principal de tales algoritmos?

¿El algoritmo FPGrowth todavía se considera "estado del arte" en la minería de patrones frecuente? Si no, ¿qué algoritmo (s) puede extraer conjuntos de elementos frecuentes de grandes conjuntos de datos de manera más eficiente?


Esta publicación fue investigada y presentada bien. Es una mala pregunta para un sitio de la red SE, pero sería un gran tema para comenzar en un foro de discusión.
Aire

@AirThomas Gracias por la advertencia. Traté de guardar la publicación haciendo una pregunta adecuada.
Rubens

Respuestas:


9

Estado del arte como en: ¿usado en la práctica o trabajado en teoría?

APRIORI se usa en todas partes, excepto en el desarrollo de nuevos algoritmos frecuentes de conjuntos de elementos. Es fácil de implementar y fácil de reutilizar en dominios muy diferentes. Encontrará cientos de implementaciones de APRIORI de calidad variable. Y es fácil equivocarse APRIORI, en realidad.

El crecimiento de FP es mucho más difícil de implementar, pero también mucho más interesante. Por lo tanto, desde un punto de vista académico, todos tratan de mejorar el crecimiento de FP: aceptar el trabajo basado en APRIORI será muy difícil por ahora.

Si tiene una buena implementación, cada algoritmo tiene buenas y es malas situaciones en mi opinión. Una buena implementación de APRIORI solo necesitará escanear la base de datos k veces para encontrar todos los conjuntos de elementos frecuentes de longitud k . En particular, si sus datos se ajustan a la memoria principal, esto es barato. Lo que puede matar a APRIORI son demasiados conjuntos de 2 elementos frecuentes (en particular cuando no usas un Trie y técnicas de aceleración similares, etc.). Funciona mejor en datos grandes con un bajo número de conjuntos de elementos frecuentes.

Eclat trabaja en columnas; pero necesita leer cada columna con mucha más frecuencia. Hay algo de trabajo en los conjuntos para reducir este trabajo. Si sus datos no caben en la memoria principal, Eclat sufre probablemente más que Apriori. Al profundizar primero, también podrá devolver un primer resultado interesante mucho antes que Apriori, y puede usar estos resultados para ajustar los parámetros; entonces necesita menos iteraciones para encontrar buenos parámetros. Pero por diseño, no puede explotar la poda tan bien como lo hizo Apriori.

FPGrowth comprime el conjunto de datos en el árbol. Esto funciona mejor cuando tienes muchos registros duplicados. Probablemente también podría obtener bastantes ganancias para Apriori y Eclat si puede ordenar sus datos y fusionar duplicados en vectores ponderados. FPGrowth hace esto a un nivel extremo. El inconveniente es que la implementación es mucho más difícil; y una vez que este árbol ya no cabe en la memoria, se implementa un desastre.

En cuanto a los resultados de rendimiento y puntos de referencia, no confíe en ellos. Hay tantas cosas que implementar incorrectamente. Pruebe 10 implementaciones diferentes y obtendrá 10 resultados de rendimiento muy diferentes. En particular para APRIORI, tengo la impresión de que la mayoría de las implementaciones están rotas en el sentido de que faltan algunas de las principales contribuciones de APRIORI ... y de las que tienen estas partes correctas, la calidad de las optimizaciones varía mucho.

En realidad, incluso hay documentos sobre cómo implementar estos algoritmos de manera eficiente:

Implementaciones eficientes de Apriori y Eclat.
Christian Borgelt
Taller de implementaciones frecuentes de minería de conjuntos de artículos (FIMI 2003, Melbourne, FL, EE. UU.).

También puede leer estas encuestas en este dominio:

  • Goethals, Bart. "Encuesta sobre minería de patrones frecuentes". Univ. de Helsinki (2003).

  • Ferenc Bodon, A Survey on Frequent Itemset Mining, Technical Report, Budapest University of Technology and Economic, 2006,

  • Minería de conjuntos de elementos frecuentes
    Christian Borgelt
    Wiley Revisiones interdisciplinarias: minería de datos y descubrimiento de conocimiento 2 (6): 437-456. 2012


2

La mayoría de los enfoques recientes de patrones frecuentes que he visto en la literatura se basan en la optimización de FPGrowth. Tengo que admitir que no he visto muchos desarrollos dentro de la literatura en FPM en muchos años.

Este wikibook destaca muchas de las variantes de FPGrowth que existen.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.