1 KLASZTEREZÉS I. -- Előadás A klaszterezés feladata és algoritmusai [Concepts 7] A klaszterezés lényege, hogy előre nem definiált csoportokra szeretnénk osztani az adatainkat. Ennyiben tehát eltér az alapfeladat a felügyelt osztályozástól (pl. karakterfelismerés), ahol előre megadott osztályokba soroljuk a megfigyeléseinket. A klaszterezési algoritmusok száma szinte végtelen, hiszen nemcsak az osztályok kialakításának módja kérdéses, hanem az a távolságfogalom is, ami alapján a csoportok közelségét mérjük, illetve ahogyan meghatározzuk a klaszterezés tulajdonságait. Az eljárások két nagy csoportra oszthatóak. Egy részük rögzített klaszterszámmal dolgozik (partícionáló módszerek), más részük pedig hierarchikus, azaz fokozatosan növeli a klaszterszámot 1-től n-ig ahol n a csoportosítandó megfigyelések száma, vagy ami ezzel ekvivalens, csökkenti n-től 1-ig. Akármelyik típust is válasszuk, a klaszterszám megválasztása is a mi feladatunk. Ehhez számos statisztika, eljárás nyújt segítséget, de telesen automatikus eljárásra nem számíthatunk. Partícionáló módszerek Ezek közül a legismertebb a k-közép eljárás és változatai. Itt k jelöli a klaszterszámot, amit bemenő paraméterként meg kell adnunk. A kezdeti klaszterekbe iteratívan soroljuk be a megfigyeléseket, majd addig folytatjuk az algoritmust, amíg még adott küszöbnél több változás történt a megelőző ciklusban. Ez a módszer távolságalapú, ami nagyon nagy adathalmazoknál problémát jelenthet. A probléma áthidalására különböző mintavételes technikákat javasoltak a szakirodalomban, ennek az Oracle által javasolt innovatív verziójára (O-klaszter) a későbbiekben visszatérünk. Hierarchikus módszerek Itt minden lépésben megkeressük a legközelebbi két klasztert, feljegyezzük a távolságukat és összevonjuk őket. A kapott fa-gráfot a távolság függvényében ábrázolva kapjuk az úgynevezett dendrogramot. Ez a grafikon azonban csak nem túl nagy esetszám esetén áttekinthető. Ha sok megfigyelésünk van, akkor csak a távolságok alapján tudunk klaszterszámot választani. Ráadásul az algoritmus nagy mintaelemszámra igen lassúvá válhat. Az ODM-ben implementált módszer bár k-közép néven jegyzik, valójában hierarchikus módszer. A klaszterszámot minden lépésben eggyel növeli oly módon, hogy a legnagyobb szóródást mutató klasztert bontja két részre. Itt is kapunk valószínűségeket az egyes klaszterekhez történő tartozásra. Ha a dimenziószám (a változók száma) nagy, akkor a tér viszonylagos üressége miatt a legkisebb távolságok is naggyá válhatnak, ami a távolság-alapú módszerek eredményességét nagyban csökkenti. Ezért is indokolt volt a következő pontban bemutatásra kerülő algoritmus kifejlesztése.
2 O-klaszter [Concepts 17] Az Oracle ezeken a klasszikus módszereken kívül saját fejlesztésű algoritmust is használ, az úgynevezett O-klaszter eljárás a rácspontokat használja (az elnevezés az ortogonális szóból ered). Ennek során a klaszterszámot sem kell a felhasználónak megadni, azt az eljárás automatikusan javasolja. A felbontás sűrűség-alapú: elhagyja a nagyon kevés megfigyelést tartalmazó téglákat, és összevonja egy klaszterré a szomszédos, nagy sűrűségű téglákat. A módszer lelke itt is a korábban már látott szeparáló hipersík, melynek megtalálásához nincs is feltétlenül szükség a teljes adatbázisra, hanem elegendő egy úgynevezett aktív mintavételezéssel kiválasztott minta. Ez nagy adathalmaz esetén feltétlenül előnyös. Az ortogonalitás azt jelenti, hogy a szeparáló hipersík legyen merőleges az adathalmazunk alkalmas vetületére. Ez a szeparáció a hisztogramon alapul: megfelelően megválasztott csoport-szám esetén kiválasztható az a ritka terület (például chi-négyzet statisztikával ellenőrizve, hogy valóban szignifikánsan ritkább az adott rész a várt átlagos gyakoriságnál), ami nagy sűrűségű részek közé esik, megfelelő helyet biztosítva a hipersíknak. Ha a statisztika nem szignifikáns az adott szinten, de kicsit nagyobb bizonytalanság mellett már igen, akkor új mintaelemek hozzávételével van esély a szignifikancia elérésére. Ha még ilyen szinten sem mutatkozik eltérés a hisztogramban, akkor az adott projekció fagyott (frozen) lesz és nem szerepel a további felbontásokban. Az eljárás akkor ér véget, ha már minden új hisztogram csak fagyott eredményt ad. Egy külön paraméter állítja be a szenzitivitást, azaz azt, hogy mennyire engedjük meg a sok kicsi klaszter keletkezését (hasonlóan az Opti-Grid algoritmushoz). Belátható, hogy az algoritmus lépésszáma lineárisan változik a minta elemszámával és a dimenzióval is. Az algoritmus különösen jól működik magasabb dimenzióban és robusztus az adatok között felbukkanó zajra: olyan példák is konstruálhatóak, ahol akkor is helyesen megtalálja szinte az összes klasztert, ha a megfigyelések szóródásának 90%-a zaj, azaz egyszerű véletlen vektor. Az ODM hierarchikus klaszterezési algoritmust használ. A végeredményként adódó klaszterek a fagráf levelei. Minden klaszter definíciója logikai állítások kombinációjával adható meg. A klaszterezés diagnosztikája kevésbé nyilvánvaló, mint az eddig látott többi módszeré. Az adott klaszterhez való tartozást ugyanis nem lehet egyértelműen eldönteni a tesztadatbázison sem. Ezért az arányskálán mért változók esetén néhány leíró statisztikát érdemes kiszámolni, amelyből a klaszterek kiterjedését, középpontját olvashatjuk le. Mivel azonban itt tipikusan nem ilyen változókkal találkozunk, ezért az ODM ábrázolja a klaszterenkénti hisztogramot, amely minden esetben informatív. A klaszterek centroidját az arányskálán mért változók átlaga és a nominális változók adott klaszterbeli módusza határozza meg. A felépített klaszter-modell alapján mód van a teszt-adatbázis klaszterezésére is (szükség esetén Bayes-féle valószínűségi modell alkalmazásával). Az új megfigyelések score-ja az egyes klaszterekhez történő tartozásuk valószínűségét adja meg.
3 -- Gyakorlat O-klaszter megvalósítása [Tutorial 10] Tekintsük először az O-klaszter algoritmust. Itt is a szokásos Mining_Data_Build_V adatbázist használjuk, a Cust_ID azonosítóval. A következő oldalon érdemes áttekinteni, hogy minden változót a megfelelő típusként használjuk-e (pl. a kor folytonos változó kell, hogy legyen). Miután nevet adtunk az elemzésünknek, már a szokásos Advanced option lehetőségekhez is értünk. A mintavételezés és a kiugró érték-kezelés ugyanaz, mint a korábbi algoritmusoknál. A diszkretizálási lehetőségek pedig külön-külön választhatók meg a numerikus és a kategorikus változókra. Az előbbieknél választhatjuk az egyenlő szélességű csoportokat vagy a kvantilis-elven történő csoportosítást, míg az utóbbiaknál a Top N binning módszert alkalmazhatjuk. Ha előzetesen manuálisan elvégeztük az adatelőkészítést, akkor kapcsoljuk ki ezt a beállítást. Végül a modell paraméterei: a maximális klaszterszám jelentése értelemszerű érdemes ezt a várt klaszterszámnál nagyobbra választani. Az érzékenység (sensitivity) növelése a klaszterszám növelése irányába hat, azaz ekkor kisebb véletlenszerű sűrűség- ingadozásokat is klaszterként fog az algoritmus azonosítani. A maximális buffer méret növelésére akkor lehet szükség, ha azt tapasztaljuk, hogy a program túl lassan fut le. A kapott eredmények összefoglalását a következő táblázat mutatja. 8.1. táblázat. Az O-klaszter eljárás eredménye
4 Látható a klaszterek hierarchikus felépítése: az 1. klaszter a teljes adatbázis (1500 elem). Ezt először két részre bontotta az algoritmus a foglalkozás alapján (2., 3. klaszter). Ezután a 2. számút bontotta tovább a 10. és 11. sorszámúra, és ez utóbbi már így is maradt (ez levele a kapott fadiagramnak). A végeredményben tehát 10 klaszter keletkezett. Ha kíváncsiak vagyunk az egyes klaszterek tulajdonságaira, akkor csak az adott klaszter sorszámára kattintva és a details (részletek) menüpontra kattintva a felnyíló ablakban tetszőleges változó hisztogramját megkaphatjuk az adott klaszterben. Ha például a végeredmény két klaszterét, a 7. és 9. számút kiválasztjuk, akkor a jövedelemre az alábbi hisztogramokat kapjuk: 8.2. ábra. A klaszterek elemzése Látható, hogy a 7. klaszterben csak a legmagasabb jövedelem fordul elő, míg a 9. számúban az ez alatti két jövedelemosztály (azaz ezek voltak a definíciós tulajdonságok). Ugyanakkor ez természetesen a többi változó megoszlására is kihat, így például ha két, egymástól távolabbi klasztert hasonlítunk, ahogy a következő ábrán az alacsonyabb jövedelműekből álló 18-ast és az előzőekben már látott 9-est, akkor a nemek megoszlása között is jelentős különbségeket találunk:
5 8.3. ábra. A klaszterek elemzése Mig a 18-asban több a nő, addig a 9-es inkább férfiakból áll. Az ábra táblázatszerű felső része nemcsak a változók kiválasztására szolgál, hanem az összes nominális változó móduszát, illetve a numerikus változók átlagát is mutatja. Ha a következő fülre kattintunk, akkor megkapjuk az egyes klaszterek precíz definícióját az alábbiak szerint:
6 8.4. táblázat. A klaszterek adatai Alapértelmezésben minden változó szerepel, azok is, amelyek valójában nem játszanak szerepet a definícióban (pl. AFFINITY_CARD, ennek csak 0 és 1 lehet az értéke). Áttekinthetőbb képet kapunk, ha csak a legfontosabb szempontokat listáztatjuk. Ezt a lehetőséget a show attributes with minimum relevant rank fület bejelölve és a kívánt attribútum-számot megjelölve tudjuk aktiválni. Az eredményt a következő ábra mutatja. Leolvasható a 3 legfontosabb definíciós attribútum, a megbízhatóság közel 81% és 68 eset tartozik ebbe a klaszterbe.
7 8.5. táblázat. A klaszterek lényeges adatai A kapott klaszterezési eljárást alkalmazhatjuk is más, az elemzettel megegyező formátumú adatbázisra is. Ehhez a modellépítés helyett az Apply fülre kell kattintani. Első lépésként be kell állítani a már elkészült modellt, amelyet a program felkínál a már létező klaszterezések felsorolásával. Az adattáblát is kiválaszthatjuk a felkínált listából. Ezután meg kell adni az eseteket egyértelműen azonosító oszlop nevét (szokás szerint a CUST_ID) és végül az eredmény formátumát. Alapértelmezésben a legvalószínűbb klaszter szerepel a végeredményben. Itt nincs advanced settings fül, így már csak el kell indítani a futást. Az eredmény minden egyes esethez a legvalószínűbb klaszter száma mellett a valószínűséget is tartalmazza. Ez most a legtöbb esetben 1, vagy ahhoz igen közeli, de néhány olyan megfigyelés is található a file-ban, ahol valamely attribútum értéke nem szerepel a modell építésnél felhasznált adatbázisban ekkor jóval kisebb valószínűségű az adott klaszterhez tartozás.
8 8.6. táblázat. A klaszterezés eredménye Ugyanezeket az adatokat a részletesebb output-táblázattal is megmutatjuk. Ehhez az összes klasztert be kellett jelölni az Apply Option ablakban a Specific Klaszter Ids pontban. Látható például, hogy a bizonytalanul a 15. számú klaszterhez rendelt 101543 sorszámú megfigyelés nem sokkal kisebb eséllyel a 19., vagy a 18. számú klaszterhez is tartozhat.
8.7. táblázat. A klaszterezés részletes eredménye 9