Gyakori elemhalmazok kinyerése- elvárások, segédletek

Néhány ajánlott feladat

DIC

A DIC implementációjának elkészítéséhez a referencia APRIORI implementációt írjuk át! Az egy- és kételemű gyakori elemhalmazok meghatározásához használjuk az APRIOIRI módszert. A DIC ötletet csak a háromnál nagyobb elemű halmazoknál alkalmazzuk. Paraméterben lehessen megadni, hogy mennyi az állomások mennyi tranzakció (store_input=true esetén szűrt tranzakció) után helyezkednek el egymástól.

DF-APRIORI

Használjuk az APRIORI-ban implementált szófát.

Eclat

Használjunk STL tárolókat és algoritmusokat.

Programozási nyelv, paraméterek

Minden program C++ nyelven készüljön. A programnak 3 kötelező paramétere legyen: A első paraméter a bementi fájl, második a kimeneti, a harmadik pedig a gyakorisági küszöb. Ha az algoritmus egyéb paramétereket vár, akkor ezeket a három kötelező paraméter után lehessen megadni.

Bemenet, kimenet

A bementi-, kimeneti fájlformátum tekintetében kövessük a referencia APRIORI implementációt. A hallgató szabadon felhasználhatja a referenciaprogram bementi-, kimeneti fájl kezelését végző eljárásait (vagy akár a paraméterkezelés programsorait).

A bemeneti adatbázisban minden sor külön kosárnak felel meg. Az elemeket nemnegatív egész számok jellemzik. Minden számot 4 byte-on tárolunk, ezért ne szerepeljen 232-nél nagyobb szám a számok között. Bármely nemszám karaktert a program elválasztójelnek vesz. A bemenet feldolgozását végző eljárás nem követeli meg, hogy a sorokban található számok nagyság szerint rendezve legyenek. Példa bemeneti adatbázisra:

 3 0 8 4
 0 2 8 4 28 4897 176 38
 98 67 8 76

A kimeneti fájlban - némi információ mellett - a gyakori elemhalmazok és támogatottságaik szerepeljenek. Minden gyakori elemhalmaz külön sorban szerepeljen, és az elemek szóközzel legyenek elválasztva. Az utolsó elem után egy szóköz majd a támogatottság következzen zárójelekkel határolva. Példa a helyes kimeneti fájlra:

 Frequent 0-itemsets:
 itemset (occurrence)
 {} (990002)
 Frequent 1-itemsets:
 itemset (occurrence)
 7 (86898)
 218 (88598)
 1 (197522)
 11 (364065)
 3 (450031)
 6 (601374)
 Frequent 2-itemsets:
 itemset (occurrence)
 1 11 (91882)
 1 3 (84660)
 1 6 (132113)
 11 3 (161286)
 11 6 (324013)
 3 6 (265180)
 Frequent 3-itemsets:
 itemset (occurrence)
 1 11 6 (86092)
 11 3 6 (143682)
Látható, hogy az üres halmazt a {} jellel jelöljük.

Adatbázisok teszteléshez

Minden gyakori elemhalmaz-kinyerő algoritmus az alábbi 5 adatbázison kell tesztelni a mellékelt támogatottsági küszöbökkel. Az adatbázisok letölthetők a http://fimi.cs.helsinki.fi/data/ oldalról.