Ebben a szakaszban egy alternatív algoritmust mutatunk be melynek neve FP-bővítés (FP-growth).[6] Ez az algoritmus teljesen másképp közelíti meg a gyakori elemhalmazok bányászatát. Az FP-bővítés nem követi az Apriori ``generál és tesztel'' paradigmáját. Ehelyett az adathalmazt egy kompakt struktúrába sűríti (ennek neve FP-fa, azaz gyakori mintázatok fája), majd a gyakori elemhalmazokat közvetlenül ebből a struktúrából nyeri ki. A következőkben ezt a módszert mutatjuk be részletesen.
Egy FP-fa nem más, mint a bemeneti adatok tömörített reprezentációja. Létrehozásakor beolvassuk az adathalmazt tranzakciónként, majd az egyes tranzakció kat az FP-fában ráillesztjük egy-egy útvonalra. Mivel a különböző tranzakció kban számos azonos elem is lehet, így a tranzakció k útvonalai átfedhetik egymást. Minél jobban fedik egymást az útvonalak, az FP-fa struktúrával annál jobb tömörítést tudunk elérni. Ha az FP-fa mérete elég kicsi ahhoz, hogy beférjen a központi memóriába, akkor a gyakori elemhalmazokat közvetlenül ebből a memóriában tárolt struktúrából tudjuk kinyerni, és nem kell újra és újra végigolvasni az adatokat egy másodlagos tárolón.
A 6.24. ábrán látható adathalmaz tíz tranzakció t és öt elemet tartalmaz. Az ábrán szintén feltüntettük az első három tranzakció beolvasásával kapott FP-fa struktúrákat. A fa minden egyes csúcsához hozzá van rendelve egy attribútumcímke és egy számláló; ez utóbbi az adott útvonalra illesztett tranzakció k számát jelöli. Kezdetben az FP-fában csupán a gyökércsúcs szerepel, ezt a null szimbólummal jelöljük. Az FP-fa folyamatos bővítése a következőképpen történik:
Egyszer végigolvassuk az adathalmazt az elemek
támogatottsági szintjének megállapítása miatt. A nem gyakori
elemeket elvetjük, a gyakori elemeket pedig előfordulási
gyakoriságuk szerinti csökkenő sorrendbe rendezzük. A 6.24. ábrán
látható adathalmaz esetén az
Az algoritmus még egyszer végigolvassa az adathalmazt az
FP-fa felépítéséhez. Az első tranzakció (
A második tranzakció ({
A harmadik tranzakció (
Ez a művelet addig folytatódik, míg az összes tranzakció t rá nem illesztjük az FP-fa megfelelő útvonalára. Az összes tranzakció beolvasásával kapott végleges FP-fa a 6.24. ábra alján látható.
Egy FP-fa mérete általában kisebb, mint a tömörítetlen adatbázis mérete. Ez azzal magyarázható, hogy a bevásárlókosarak adataiban számos tranzakció ban szerepelnek azonos árucikkek. A legjobb esetben az összes tranzakció ban ugyanazok az elemek szerepelnek. Ekkor az FP-fa csupán egyetlen ágat tartalmaz. A legrosszabb esetben a tranzakció kban szereplő elemek egyedi halmazokat alkotnak. Mivel ekkor a tranzakció k között nincs egyetlen közös elem sem, az FP-fa mérete gyakorlatilag azonos lesz az eredeti adathalmaz méretével. Az igazság az, hogy az FP-fa fizikailag nagyobb helyet fog elfoglalni a csúcsok közti mutatók és az elemekhez rendelt számlálók külön tárigénye miatt.
6.25. ábra - A 6.24. ábrán látható adathalmaz FP-fa reprezentációja az elemek eltérő rendezése mellett

Egy FP-fa mérete attól is függ, hogy hogyan rendezzük az
elemeket. Ha az előző példában megfordítjuk a rendezést, vagyis az
elemeket támogatottság szerinti növekvő sorrendbe tesszük, akkor a
6.25. ábrán látható FP-fát kapjuk. A fa sűrűbbnek tűnik, mivel a
gyökércsúcsnál az ágak száma 2-ről 5-re, a magas támogatottságú
elemeket tartalmazó csúcsok ( például
Az FP-fákban szerepel még egy mutatólista is, ahol a mutatók az azonos elemeket tartalmazó csúcsokat kötik össze. Ezek a mutatók (a 6.24. és a 6.25. ábrákon szaggatott vonallal jelöltük őket) az egyes elemek gyors elérését könnyítik meg a fában. A következő szakaszban azt mutatjuk be, hogy hogyan lehet felhasználni az FP-fát a mutatóival együtt a gyakori elemhalmazok előállításához.
Az FP-bővítés algoritmus a gyakori elemhalmazokat egy FP-fából
állítja elő, ahol a fát alulról felfelé irányuló módon tárja fel.
Vegyük például a 6.24. ábrán látható fát. Az algoritmus először az
6.26. ábra - A gyakori elemhalmaz ok előállításának problémája több
részproblémára felosztva. Az egyes részproblémák az

Miután megtaláltuk az
6.6. táblázat - A gyakori elemhalmaz ok listája. Az elemhalmaz ok az utótagjaik alapján vannak rendezve .
utótag | gyakori elemhalmaz ok |
e |
|
d |
|
c |
|
b |
|
a |
|
Az FP-bővítés algoritmus az egy bizonyos utótagra végződő
gyakori elemhalmaz okat az úgynevezett ``oszd meg és uralkodj''
stratégiával keresi meg, melynek során egy problémát kisebb
részproblémákra oszt fel. Tegyük fel például , hogy az
A részproblémák megoldásának konkrét szemléltetésére nézzük meg,
hogy hogyan tudjuk megkeresni az
Az első lépés során összegyűjtjük az összes
A 6.27. (a) ábrán látható prefix útvonalakból megállapítjuk
az
Mivel
Először is frissíteni kell a prefix útvonalakon a
támogatottsági értékeket, ugyanis néhány érték olyan tranzakció
kat is tartalmaz, melyekben nem szerepel az
(b) A prefix útvonalakat megrövidítjük az
(c) A prefix útvonalakon történő támogatottsági értékek
frissítése során néhány elemről kiderülhet, hogy már nem
gyakoriak. Például a
Az
Az FP-bővítés algoritmus az
Ezzel a példával az FP-bővítés algoritmusban használt ``oszd meg és uralkodj'' stratégiát szemléltettük. A rekurzív lépésekben egy feltételes FP-fát építünk, melynek során frissítjük a prefix útvonalakon a számlálókat, illetve eltávolítjuk a nem gyakori elemeket. Mivel a részproblémák diszjunktak, az FP-bővítés nem fogja ismételten előállítani ugyanazt az elemhalmaz t. Miközben az algoritmus közös utótaggal rendelkező elemhalmazokat állít elő, a csúcsokhoz rendelt számlálók lehetővé teszik a támogatottsági szintek megállapítását.
Az FP-bővítés egy érdekes algoritmus, mely azt mutatja meg, hogy egy tranzakció s adathalmaz kompakt reprezentációjából hogyan lehet gyakori elemhalmaz okat hatékonyan előállítani. Ráadásul bizonyos tranzakció s adathalmazok esetén az FP-bővítés nagyságrendekkel jobb teljesítményt nyújt, mint a klasszikus Apriori. Az FP-bővítés futási ideje az adathalmaz tömörítési tényezőjétől függ. Ha az előállított feltételes FP-fák túlságosan szerteágazók (a legrosszabb esetben egy teljes prefix fa), akkor az algoritmus teljesítménye számottevően visszaesik, mivel jelentősen megnő a részproblémák száma, és így nagyon sok részeredményt kell összevonni.
[6] A fordító megjegyzése: Az FP a frequent pattern, azaz a gyakori mintázat, gyakori elemhalmaz rövidítése.