OLAP-módszerek és többdimenziós adatelemzés

Ebben a szakaszban betekintést nyerhetünk azon módszerekbe, amelyek az állományokat többdimenziós tömbként tekintik. Több adatbázis-kezelő rendszer támogatja ezt a szemléletmódot, különösen a közvetlen analítikus feldolgozást (OLAP -- On-Line Analytical Processing) támogató rendszerek. Valójában az OLAP-rendszerek egyes fogalmai és képességei már bekerültek olyan táblázatkezelő programokba, amelyeket emberek milliói használnak. Az OLAP-rendszerek az interaktív adatelemzésre is erős hangsúlyt helyeznek, és jellemzően széles palettát nyújtanak az adatok megjelenítésére és összegző statisztikák készítésére. Ezen okokból kifolyólag a többdimenziós adatelemzéshez való hozzáállásunk az OLAP-rendszerekben általános terminológián és alapelveken nyugszik.

3.7. táblázat - Az íriszek darabszáma három attribútum (sziromlevél hossza és szélessége illetve fajtája) kombinációja által meghatározott csoportok szerinti megoszlásban

Sziromlevél

hossza

Sziromlevél szélessége

Fajta

Szamosság

kicsi

kicsi

közepes

közepes

közepes

közepes

nagy

nagy

nagy

nagy

kicsi

közepes

kicsi

közepes

nagy

nagy

közepes

közepes

nagy

nagy

Setosa

Setosa

Setosa

Versicolor

Versicolor

Virginica

Versicolor

Virginica

Versicolor

Virginica

46

2

2

43

3

3

2

3

2

44


3.30. ábra - Az Írisz-adatok többdimenziós ábrázolása

Az Írisz-adatok többdimenziós ábrázolása

Az Írisz-adatok többdimenziós ábrázolása

A legtöbb adathalmaz táblázatos formában ábrázolható, ahol minden sor egy objektumot reprezentál, míg az oszlopok az attribútumoknak felelnek meg. Az adatok azonban sok esetben többdimenziós tömbként is ábrázolhatók. Ezt a szemléletmódot az Írisz-adatok többdimenziós tömbként történő megjelenítésével illusztráljuk.

A 3.17. táblázatot a sziromlevél hossza és szélessége attribútumok diszkretizálásával kapjuk úgy, hogy minden értéket besorolunk a kicsi, közepes vagy nagy kategóriák valamelyikébe. A táblázat utolsó oszlopában azoknak az íriszeknek a száma található az Írisz-adatállományból, amelyek a sziromlevél hossza és szélessége, valamint a virág fajtája által meghatározott csoportba esnek. (A sziromlevél szélességének értékei a következőképpen lettek csoportosítva: [0;0,75) kicsi, [0,75;1,75) közepes, [1,75;) nagy. A sziromlevél hossza esetében a csoportok a következők: [0;2,5) kicsi, [2,5;5) közepes, [5;) nagy.) Az üres kombinációk -- azon kombinációk, amelyeknek egyetlen virág sem felel meg -- nincsenek megjelenítve.

Az adatok többdimenziós tömbbe szervezhetőek, amelyek három dimenziója a sziromlevél hosszának és szélességének, valamint a fajtának felel meg, ahogy az a 3.30. ábrán látható. A jobb átláthatóság kedvéért a szeletek mint három, kétdimenziós táblázat jelennek meg, minden fajtához egy -- lásd a 3.8., a 3.9. és a 3.10. táblázatot. A 3.7. táblázat és a 3.30. ábra ugyanazt az információt hordozza. A 3.30. ábrán (és a 3.8., a 3.9. és a 3.10 táblázatban) látható többdimenziós ábrázolásmód esetében azonban az attribútumok -- a sziromlevél hossza és szélessége, valamint a fajta -- ennek a tömbnek az indexei.

A dimenziók mentén így különböző nézőpontokból tekinthetjük át az adatokat. A 3.8., a 3.9. és a 3.10 táblázatról jól látszik, hogy minden egyes íriszfajtát meghatároz a sziromlevelének hossza és szélessége. A Setosák sziromlevelének hosszúsága és szélessége kicsi, míg a Versicoloroké közepes, a Virginicáké pedig nagy.

3.8. táblázat - A Setosa fajtához tartozó íriszek kontingenciatáblája a sziromlevél hossza és szélessége szerint

Szélesség

Szélesség

Szélesség

kicsi

közepes

nagy

Hossz

kicsi

46

2

0

Hossz

közepes

2

0

0

Hossz

nagy

0

0

0


3.9. táblázat - A Versicolor fajtához tartozó íriszek kontingenciatáblája a sziromlevél hossza és szélessége szerint

Szélesség

Szélesség

Szélesség

kicsi

közepes

nagy

Hossz

kicsi

0

0

0

Hossz

közepes

0

43

3

Hossz

nagy

0

2

2


3.10. táblázat - A Virginica fajtához tartozó íriszek kontingenciatáblája a sziromlevél hossza és szélessége szerint

    

Szélesség

Szélesség

Szélesség

kicsi

közepes

nagy

Hossz

kicsi

0

0

0

Hossz

közepes

0

0

3

Hossz

nagy

0

3

44


Többdimenziós adatok: általános eset

Az előző szakaszban egyedi példát mutattunk egy, már ismert adatállomány többdimenziós ábrázolására. Most következzen részletesen az általános megközelítés.

A kiindulópont általában az adatok táblázatos formában történő reprezentációja (mint a 3.7. táblázat), amelyet ténytáblának is nevezünk. Az adatok többdimenziós tömbként való ábrázolásához két lépés szükséges: a dimenziók azonosítása, majd azon attribútum meghatározása, amely alapján az elemzést el szeretnénk végezni. A dimenziók kategóriaattribútumok lehetnek, vagy, mint az előző példában, folytonos attribútumok kategóriaattribútumokká alakítva. Az attribútumértékek az attribútum által meghatározott dimenzió mentén felépülő tömb indexei lesznek, és ezen értékek darabszáma határozza meg az adott dimenzió méretét. Az előző példában minden attribútumnak három lehetséges értéke volt, ezért minden dimenzió mérete három, és három értékkel indexelhető. Így egy 3 × 3 × 3 dimenziós tömb jött létre.

Az attribútumértékek minden egyes kombinációja (attribútumonként egy érték) határozza meg a többdimenziós tömb egy celláját. Az előző példával szemléltetve, ha a sziromlevél-hossz = kicsi, -szélesség = közepes és a fajta = Setosa, akkor egyértelműen azonosítható egy cella, amely a 2-es értéket tartalmazza. Azaz csak két olyan virág van az adatállományban, amely a megadott attribútumértékekkel rendelkezik. Megjegyezzük, hogy a 3.7. táblázat minden sora (objektuma) egy cellának felel meg a többdimenziós tömbben.

Minden cella egy célmennyiség (célváltozó, célattribútum) értékét tartalmazza, amelyre az elemezés során kíváncsiak vagyunk. Az íriszes példában azon virágok darabszáma volt a célmennyiség, amelyeknek sziromlevél-hossza és -szélessége a megadott határok közé esik. A célattribútum kvantitatív, hiszen a többdimenziós adatelemzés egyik kulcsfeladata az aggregált mennyiségek, mint például az összegek és az átlagok, megjelenítése.

A következőkben összefoglaljuk azt az eljárást, amelynek hatására az adatállomány táblázatos megjelenési formájából előáll a többdimenziós adatreprezentáció. Először meg kell határoznunk a kategóriaattribútumokat, amelyek a dimenziók lesznek majd, ezután pedig egy mennyiségi attribútumot, amely az elemzés céljául szolgál. A táblázat minden sora (objektuma) leképződik a többdimenziós tömb egy cellájára. A cella indexeit a dimenzióként kiválasztott attribútum értékei határozzák meg, míg a cella értéke a célattribútum értéke lesz. Az adatok által nem definiált celláknál 0 értéket feltételezünk.

3.23. Példa.

A fent részletezett eljárást tovább szemléltetendő egy hagyományosabb példát mutatunk termékek eladásával kapcsolatban. A 3.11. táblázat tartalmazza ennek a példának a ténytábláját. A dimenziók a termékazonosító, a helyszín és a dátum, míg a célattribútum a bevétel lesz. A 3.31. ábrán látható ennek az adatállománynak a többdimenziós reprezentációja. Ezt a nagyobb és összetettebb adathalmazt arra használjuk majd, hogy bemutassuk a többdimenziós adatelemzés további lehetőségeit.

3.11. táblázat - A termékek különböző helyszíneken és időpontokban történt eladásaiból származó bevételek (dollárban)

Termékazonosító

Helyszín

Dátum

Bevétel

.

.

.

1

1

.

.

.

1

.

.

.

27

27

.

.

.

27

.

.

.

.

.

.

Minneapolis

Chicago

.

.

.

Párizs

.

.

.

Minneapolis

Chicago

.

.

.

Párizs

.

.

.

.

.

.

2004. okt. 18.

2004. okt. 18.

.

.

.

2004. okt. 18.

.

.

.

2004. okt. 18.

2004. okt. 18.

.

.

.

2004. okt. 18.

.

.

.

.

.

.

$250

$79

301

.

.

.

$2 321

$3 278

.

.

.

$1 325

.

.

.


3.31. ábra - Az eladási adatok többdimenziós reprezentációja

Az eladási adatok többdimenziós reprezentációja

Többdimenziós adatok elemzése

Ebben a szakaszban különböző többdimenziós adatelemzési módszereket mutatunk be. Részletesebben, adatkockák létrehozásáról és a hozzájuk kapcsolódó műveletekről lesz szó, mint például szeletelés, darabolás, dimenziócsökkentés, göngyölítés vagy lefúrás.

Adatkockák: aggregált mennyiségek kiszámítása

Az adatok többdimenziós nézőpontból való vizsgálatának fő indoka annak fontossága, hogy az adatok aggregálását, összesítését különböző módokon végezhessük el. Az eladási adatoknál látni szeretnénk például az összes eladásból származó bevételt egy adott évre és egy adott termékre vonatkozóan. Vagy az összes termékre vonatkozóan helyszínenként szeretnénk megvizsgálni az éves eladásokból származó bevételt. Ahhoz, hogy aggregált összegeket tudjunk számolni, rögzítenünk kell néhány olyan attribútum értékét, amelyeket dimenziókként használunk. Ezután az attribútumok minden lehetséges értékére összegezve kiegészítjük a megmaradó dimenziókat. Az aggregációnak további típusai is léteznek, de az egyszerűség kedvéért most csak az összegekkel foglalkozunk.

A 3.12. táblázat tartalmazza a helyszínek szerinti összegzésnek az eredményeit különböző dátum- és termékkombinációkra. Az egyszerűség kedvéért tételezzük fel, hogy minden dátum egy adott évben van. Ha 365 nap van az évben, és 1000 termékünk van, akkor a 3.12. táblázat 365 000 cellából (összegből) áll, amelyek mindegyike egy termék-dátum párhoz tartozik. Szintén rögzíthetjük a bolt helyét és a dátumot, majd összegezhetünk a termékekre vonatkozóan, vagy rögzíthetjük a helyszínt és a terméket, majd összegezhetünk az összes dátumra.

A 3.13. táblázat a 3.12. táblázathoz tartozó marginális összegeket is tartalmazza. Ezek az összegek úgy kaphatók meg, hogy az eddigi eredményeket tovább összegezzük dátum vagy termék szerint. A 3.13. táblázatban az 1-es számmal jelölt termék összes eladásaiból származó bevétel, amelyet az abban a sorban lévő összegek összegeként kapunk (minden időpontra összegezve), 370 000 dollár. A 2004. január 1-jére vonatkozó összes eladásból származó bevétel, amelyet az abban az oszlopban lévő összegek összegeként kapunk (minden termékre összegezve), 527 362 dollár. A teljes eladásból származó bevétel, amelyet a minden sorban és oszlopban megtalálható összegek összegeként kapunk (minden időpontra és termékre összegezve), 227 352 127 dollár. Ezek az összegek az összes helyszínre vonatkoznak, mivel a 3.13. táblázat cellái az összes helyszínt tartalmazzák.

E példa kulcsszereplői a különböző összegek (aggregátumok), amelyek többdimenziós tömb esetében számolhatóak attól függően, hogy hány attribútumot vonunk be az összesítésbe. Tegyük fel, hogy n dimenziónk van, és az i -edik dimenziónak (attribútumnak) s i számú lehetséges értéke van. Ekkor, csupán egy attribútum fölött is, n különböző módon összegezhetünk. Ha a j -edik dimenzió mentén összegzünk, akkor s 1 ** s j1 * s j+1 ** s n darab összeget kapunk, egyet-egyet a fennmaradó n1 attribútum (dimenzió) minden lehetséges értékének kombinációjára. Az összegek, amelyek egy többdimenziós tömb n1 dimenziója mentén az attribútum értékeinek összegzésével keletkeznek, csupán egy dimenzióra vonatkoznak, így n darab ilyen összesítő tömb jöhet létre. Az eladási példában az összegeknek három halmazát tekintjük. Az összegzés egyetlen dimenzió mentén történik és minden ilyen halmaz reprezentálható egy kétdimenziós táblázattal.

Abban az esetben, ha két dimenzió mentén összegzünk (esetleg az egyik dimenzió menti összegzés elemei már egy korábban végrehajtott aggregálás eredményei), az összegeknek egy n2 dimenziós tömbjét kapjuk. Ekkor ilyen összegeknek n 2 számú különböző tömbjét különböztethetjük meg. Az eladási példánál maradva, itt 3 2 =3 összegtömböt kapunk, amelyek a helyszín és termék, helyszín és időpont, valamint termék és időpont szerinti összesítés eredményei. Általánosságban, k dimenzió feletti összegzés n k számú összegtömböt eredményez, amelyek mindegyike nk dimenziós.

Az adatok többdimenziós reprezentációját, minden lehetséges összegzéssel (aggregálással) ellátva, adatkockának nevezzük. Az elnevezés ellenére nem szükséges, hogy minden dimenzió -- az attribútumértékek száma -- egyforma nagyságú legyen. Továbbá, egy adatkocka 3-nál több, de 3-nál kevesebb dimenzióból is állhat. Lényegesebb tulajdonsága, hogy a statisztika terminológiájában kontingenciatáblázatnak nevezett adatreprezentáció általánosításának tekinthető. Ha a marginális összegeket is szerepeltetjük, akkor a 3.8., a 3.9. és a 3.10. táblázatok a kontingenciatáblázatok jellegzetes példái.

3.12. táblázat - A helyszínek rögzített időpont és termék szerinti összbevétele

dátum

     

2004. jan. 1.

2004. jan. 2.

2004. dec. 31.

1

$1 001

$987

...

$891

27

$10 265

$10 225

...

$9 325

90 termékazonosító


3.13. táblázat - A 3.12. táblázat adatai marginális összegekkel kiegészítve

dátum

      

2004. jan. 1.

2004. jan. 2.

2004. dec. 31.

összesen

1

$1 001

$987

...

$891

$370 000

27

$10 265

$10 225

...

$9 325

$3 800 020

90 termékazonosító

összesen

$527 362

$532 953

...

$631 221

$227 352 127


Dimenziócsökkentés és forgatás

Az utolsó szakaszban bemutatott aggregációt a dimenziócsökkentés egyik formájának is tekinthetjük. Speciálisan, a j -edik dimenziót kiküszöböljük a felette végrehajtott összegzéssel. Úgy is fogalmazhatunk, hogy a j -edik dimenzió celláinak összes ``oszlopa'' egyetlen cellára redukálódik. Mind az eladási, mind az íriszes példát tekintve, az egy dimenzió mentén végzett aggregálás az adatok dimenziószámát 3-ról 2-re csökkenti. Ha s j a j -edik dimenzió lehetséges értékeinek számát jelöli, akkor az s j -ed részére csökken a cellák száma.

A 147 oldalon található 17. feladat arra bíztatja az Olvasót, hogy derítse fel a különbséget a dimenziócsökkentés ezen típusa és a főkomponens analízis (PCA) között.

A forgatás (pivoting) azt jelenti, hogy kettő kivételével az összes dimenzió mentén elvégezzük az aggregálást. Az eredmény a megmaradó két dimenzióból álló kontingenciatáblázat lesz. A 3.13. táblázat az időpont és a termék körüli forgatásra mutat példát.

Szeletelés és darabolás

Ez a két hangzatos név viszonylag egyszerű műveleteket takar. Szeletelés (slicing) alatt egy, a teljes többdimenziós tömb celláiból álló olyan csoport kiválasztásának folyamatát értjük, amelyet egy vagy több dimenzió egy meghatározott értéke jelöl ki. A 3.8., a 3.9. és a 3.10. táblázat az Írisz-adatállomány három olyan szelete, amelyeket a fajta dimenzió három önálló értéke jelöl ki. A darabolás (dicing) a cellák egy olyan részhalmazának a kiválasztását jelenti, amelyet az attribútumértékek egy tartománya definiál. Ez ekvivalens a teljes tömb egy résztömbjének megadásával. A gyakorlatban mind a szeletelés, mind a darabolás kiegészíthető az adatok néhány dimenzió mentén végzett aggregálásával is.

Göngyölítés és lefúrás

A 2. fejezetben az attribútumértékeket bizonyos módon ``atominak'' tekintettük. A valóságban azonban ezek az értékek nem mindig egyszerűek. Nevezetesen, minden dátum számos tulajdonsággal rendelkezik, mint például év, hónap és hét. Az adatok tartozhatnak üzleti negyedévekhez, vagy ha az alkalmazás az oktatás számára készült, akkor iskolai negyedévekhez, félévekhez is. Egy helyszín szintén több tulajdonsággal bírhat: kontinens, ország, állam, tartomány, város. A termékek szintén több kategóriára oszthatók: ruházat, elektronikai berendezések, bútorok.

Ezek a kategóriák gyakran szervezhetők hierarchikus fába vagy hálóba. Az évek például hónapokból vagy hetekből állnak, amelyek tovább oszthatók napokra. A helyszínek nemzetekre bonthatók, amelyek államokat (vagy a helyi közigazgatás egyéb egységeit) tartalmaznak, amelyek városokból állnak. Hasonlóan, a termék szintén tovább osztható alkategóriákra. A bútor termékkategória tartalmazhat például székeket, asztalokat, díványokat, stb.

A göngyölítési és lefúrási műveleteknek éppen ezen hierarchikus struktúra miatt van létjogosultsága. Ezt az eredeti eladási adatokkal megvilágítva, annak többdimenziós tömbjében minden dátum rendelkezik hozzá tartozó cellával, így az eladásokat összegezhetjük (göngyölítés) a dátum mentén havi szintre. Megfordítva, amennyiben az adatoknak egy olyan reprezentációja adott, ahol az idő dimenzió hónapokra van bontva, akkor feloszthatjuk (lefúrás) a havi összesített eladásokat napi összegekké. Természetesen ahhoz, hogy ezt megtehessük, a napi bontásnak is rendelkezésre kell állnia.

Elmondható, hogy mind a göngyölítés, mind a lefúrás módszere rokonságban áll az aggregálással. Mejegyezzük, hogy ezen két módszer az eddig tárgyalt aggregációs műveletektől abban különbözik, hogy dimenzión belül öszesítik a cellákat, és nem a teljes dimenzió mentén.

Záró megjegyzések a többdimenziós adatelemzéshez

A többdimenziós adatelemzés, ahogy azt az OLAP és a vele rokon rendszerek tekintik, egyrészt az adatok többdimenziós tömbként történő megjelenítéséből, másrészt, hogy az adatok szerkezetét jobban elemezhessük, azok aggregálásából állnak. Az Írisz-adatok esetében a sziromlevél hossza és szélessége alapján láthatóvá válnak a különbségek egy ilyen elemzés során. Az üzleti jellegű adatok, mint például az eladási adatok elemzése szintén érdekes mintázatokat tárhat fel, mint például a profitot termelő (vagy nem termelő) boltok vagy termékek.

Mint ahogy már említettük, több különböző típusú adatbázis-kezelő rendszer is támogatja a többdimenziós adatok elemzését. Néhány közülük relációs adatbázisokon alapszik, és ROLAP-ként ismert. Olyan speciális adatbázis-kezelőket is fejlesztenek, amelyek a többdimenziós adatábrázolást mint alapvető adatmodellt használják. Ezeket MOLAP-rendszereknek nevezzük. Az ilyen típusú rendszerek mellett statisztikus adatbázis-kezelőket (SDB -- statistical databases) is fejlesztettek ki, amelyek a statisztikai adatok különböző típusait képesek tárolni és elemezni, mint például népszámlálási és népegyészségügyi adatokat, amelyeket kormányok vagy egyéb nagy szervezetek gyűjtenek. OLAP- és SDB-rendszerekre az irodalmi megjegyzésekben adunk hivatkozásokat.