O ile wiem rozwój algorytmów do rozwiązania problemu Frequent Pattern Mining (FPM), droga ulepszeń ma kilka głównych punktów kontrolnych. Po pierwsze, algorytm Apriori został zaproponowany w 1993 r. Przez Agrawal i in. wraz z sformalizowaniem problemu. Algorytm był w stanie usunąć niektóre zestawy z 2^n - 1
zestawów (powerset) za pomocą sieci do przechowywania danych. Wadą tego podejścia była konieczność ponownego odczytu bazy danych w celu obliczenia częstotliwości każdego rozszerzonego zestawu.
Później, w roku 1997, Zaki i in. zaproponował algorytm Eclat , który wstawiał wynikową częstotliwość każdego zestawu do sieci. Dokonano tego poprzez dodanie, w każdym węźle sieci, zestawu identyfikatorów transakcji, które miały elementy z katalogu głównego do wskazanego węzła. Główny wkład polega na tym, że nie trzeba ponownie czytać całego zestawu danych, aby poznać częstotliwość każdego zestawu, ale pamięć wymagana do utrzymania takiej struktury danych może przekraczać rozmiar samego zestawu danych.
W 2000 r. Han i in. zaproponował algorytm o nazwie FPGrowth wraz ze strukturą danych drzewa prefiksów o nazwie FPTree. Algorytm był w stanie zapewnić znaczną kompresję danych, jednocześnie zapewniając, że uzyskiwane byłyby tylko częste zestawy przedmiotów (bez generowania zestawu przedmiotów kandydujących). Dokonano tego głównie poprzez sortowanie pozycji każdej transakcji w malejącej kolejności, tak aby najczęstszymi pozycjami były te z najmniejszą liczbą powtórzeń w strukturze danych drzewa. Ponieważ częstotliwość maleje tylko podczas dogłębnego przemierzania drzewa, algorytm jest w stanie usunąć rzadkie zestawy przedmiotów.
Edytuj :
O ile mi wiadomo, można uznać to za najnowocześniejszy algorytm, ale chciałbym wiedzieć o innych proponowanych rozwiązaniach. Jakie inne algorytmy dla FPM są uważane za „najnowocześniejsze”? Jaka jest intuicja / główny wkład takich algorytmów?
Czy algorytm FPGrowth jest nadal uważany za „najnowocześniejszy” w częstym wydobywaniu wzorów? Jeśli nie, to jaki algorytm (algorytmy) może wydajniej wyodrębniać częste zestawy przedmiotów z dużych zestawów danych?