Per quanto ne so lo sviluppo di algoritmi per risolvere il problema Frequent Pattern Mining (FPM), la strada dei miglioramenti ha alcuni punti di controllo principali. In primo luogo, l' algoritmo Apriori è stato proposto nel 1993, da Agrawal et al. , insieme alla formalizzazione del problema. L'algoritmo è stato in grado di rimuovere alcuni set dagli 2^n - 1
insiemi (powerset) usando un reticolo per mantenere i dati. Uno svantaggio dell'approccio era la necessità di rileggere il database per calcolare la frequenza di ciascun set espanso.
Più tardi, nel 1997, Zaki et al. ha proposto l'algoritmo Eclat , che ha inserito la frequenza risultante di ciascun set all'interno del reticolo. Ciò è stato fatto aggiungendo, su ciascun nodo del reticolo, l'insieme di ID transazione che avevano gli elementi dalla radice al nodo indicato. Il contributo principale è che non è necessario rileggere l'intero set di dati per conoscere la frequenza di ciascun set, ma la memoria richiesta per mantenere tale struttura di dati può superare le dimensioni del set di dati stesso.
Nel 2000, Han et al. ha proposto un algoritmo chiamato FPGrowth , insieme a una struttura di dati con prefisso chiamata FPTree. L'algoritmo è stato in grado di fornire una significativa compressione dei dati, garantendo al contempo che si producessero solo set di articoli frequenti (senza generazione di set di articoli candidati). Ciò è stato fatto principalmente ordinando gli articoli di ciascuna transazione in ordine decrescente, in modo che gli articoli più frequenti siano quelli con il minor numero di ripetizioni nella struttura dei dati dell'albero. Dal momento che la frequenza scende solo mentre si attraversa l'albero in profondità, l'algoritmo è in grado di eliminare elementi non frequenti.
Modifica :
Per quanto ne so, questo può essere considerato un algoritmo all'avanguardia, ma mi piacerebbe conoscere altre soluzioni proposte. Quali altri algoritmi per FPM sono considerati "allo stato dell'arte"? Qual è l' intuizione / il contributo principale di tali algoritmi?
L'algoritmo FPGrowth è ancora considerato "allo stato dell'arte" nelle miniere di pattern frequenti? In caso contrario, quali algoritmi possono estrarre più frequentemente set di elementi da set di dati di grandi dimensioni?