Adatbányászat a hatékonyság eszköze
|
|
- Ildikó Fehérné
- 9 évvel ezelőtt
- Látták:
Átírás
1 Adatbányászat a hatékonyság eszköze Gyakorlati útmutató kezdőknek és haladóknak SZERKESZTETTE: DR. ABONYI JÁNOS VESZPRÉMI EGYETEM 2006
2 2
3 Tartalomjegyzék 1. Bevezetés Miért kell menedzselni a tudást, illetve az adatokat? Adatbányászat, mint a tudásmenedzsment eszköze Az adatbányászat definíciója Az adatbányászat mint tanulás Adatbányászati technikák Adatbányászat módszertana A tudásfeltárás folyamata A módszertanok kialakulása Az üzleti cél definiálása és értelmezése A szükséges illetve rendelkezésre álló adatok megismerése Adatkezelés, adattranszformációk végrehajtása Adatbányászati modellek alkotása Az eredmények üzleti szempontú kiértékelése Az adatbányászati eredmények üzleti alkalmazása Ami a módszertanon túl van az adatbányászat csupán eszköz Adatelemző eszközök Általános áttekintés WEKA Excel és alkalmazásai Alkalmazott adatsorok Adattárházak és kiaknázásuk Az adattárház fogalma Hogy kerül az adat az adattárházba? Adatstruktúrák Adattárház és heterogén adatbázisok Az OLAP kritériumai Az OLTP és az OLAP I
4 TARTALOMJEGYZÉK Adattárházak alkalmazása A többdimenziós adatmodell A dimenziók hierarchiaszintjei Műveletek a többdimenziós adatmodellen Hatékony adatkocka-kezelés A csillagséma modell A hópehelyséma modell A galaxisséma modell Gyakorlati példa: OLAP-kocka létrehozása MS Excelben Adatelérés ODBC használatával Az OLAP-kocka létrehozása OLAP-műveletek Adattárházak tervezése Az architektúra megválasztása Implementációs modellek Implementációs módszer kiválasztása Adattárház létrehozásának folyamata Adatok feltáró jellegű elemzése és megjelenítése Adatok előfeldolgozása Adattípusok Adattisztítás Inkonzisztencia Inkompatibilitás Redundancia Zaj Adatok felkészítése Transzformálás Fontos ismérvek kiválasztása Adatredukció számosságcsökkentéssel Adatok megjelenítése Pont diagram, vonal diagram - grafikon Oszlop, sáv diagram Kör diagram Feltáró jellegű adatelemzés Hisztogram Doboz diagram Kvantilis ábra Több változó együttes megjelenítése és elemzése Kvantilis-kvantilis ábra II
5 TARTALOMJEGYZÉK Pontdiagram mátrix Párhuzamos koordináták Adatredukció dimenzió-csökkentéssel Csoportosítás (klaszterezés) Motiváció Csoportok (klaszterek) Objektumok, hasonlósági mértékek Folytonos értékek különbözősége, hasonlósága Kategorikus adatok különbözősége, hasonlósága Vegyes típusú változó különbözősége, hasonlósága, és az attribútumok súlyozása Csoportokra jellemző távolságok Hierarchikus módszerek Egyesítő hierarchikus módszerek Felosztó hierarchikus módszerek Partícionáló módszerek A k-átlag és a k-medoid algoritmusok Fuzzy módszerek Fuzzy csoportok A fuzzy c-átlag csoportosítás Mesterséges neuronhálós módszerek Önszerveződő hálózatok szerkezete, tanítása, ábrázolása Önszerveződő hálózatok szerepe a csoportosításokban Egyéb csoportosítási módszerek, algoritmusok Gyakorlati alkalmazások szoftveres megvalósításai Csoportosítás a WEKA program használatával Csoportosítás a Hierarchical Clustering Explorer használatával Osztályozási feladatok Mik az osztályozási feladatok? Az osztályozási módszerekről Az osztályozási feladatok lépései Döntési fák Döntési fák elkészítése Az információnyereség elve Gini index A felépített fa tisztítása Bayes-modell alapú osztályozás A naiv Bayes-osztályozás III
6 TARTALOMJEGYZÉK Bayes-féle hihetőségi hálók A k-legközelebbi szomszéd technika Osztályozási modellek pontossága A pontosság növelésének lehetőségei Egyéb mérőszámok Tanulás és tesztelés Gyakori elemhalmazok és asszociációs szabályok feltárása Alapfogalmak Gyakori elemhalmazokat feltáró algoritmusok jellemzői Jelölt keresési módszerek Gyakoriság számlálási technikák Nevezetesebb algoritmusok bemutatása Szintenként haladó algoritmusok Mélységben haladó algoritmusok Gyakori elemhalmazok kompakt képviselete Maximális gyakori elemhalmazok Zárt gyakori elemhalmazok Asszociációs szabályok feltárása Érvényes asszociációs szabályok előállítása A szabályok korlátai Érdekességi mutatók - asszociációs szabályok kiválasztása A gyakori elemhalmazok és asszociációs szabályok különböző típusai Mennyiségi asszociációs szabályok Többszintű asszociációs szabályok Gyakorlati példa Szabálykeresés a Weka programmal Kutatási célra hozzáférhető algoritmusok Irodalom Regressziós technikák Lineáris regresszió Regresszió eredményének értékelése Reguralizált regresszió Nemlineáris regresszió Paramétereiben lineáris regresszió Interpoláció spline-okkal Radiális bázisfüggvények Mesterséges neurális hálózatok Paramétereiben nemlineáris regresszió IV
7 TARTALOMJEGYZÉK 8. Idősorok elemzése Az idősorok és tulajdonságaik Az idősorok számítógépre vitele Egyéb tulajdonságok Idősorok jellemzése egyszerű mutatókkal Az idősorok dekompozíciója Trendelemzés - tervezzünk hosszú távra Szezonális mozgások - télen kevesebb jégkrém fogy A ciklikus komponens meghatározása Összefoglalás Idősorok távolsága Az Euklideszi távolság problémái Dinamikus idővetemítés Indexelési lehetőségek Diszkrét Fourier-transzformáció Diszkrét Wavelet Transzformáció Indexelés DTW-vel Szövegbányászat A szövegbányászat feladata Dokumentumok előfeldolgozása A dimenziószám csökkentése Hatékonyság mérése Osztályozás Osztályozás strukturálatlan kategóriák rendszerébe Hierarchikus osztályozás Dokumentumok csoportosítása Szövegklaszterezés jellemző feladatai és problémái Reprezentáció Kivonatolás Az összegzéskészítő eljárások felosztása A kivonatolás hatékonyságának mérése Mondatkiválasztásnál használt jellemzők A módszerekről röviden Egyéb szövegbányászati feladatok Információkinyerés Témakövetés Fogalomtársítás Szöveges információk vizualizálása Kérdés-megválaszolás V
8 TARTALOMJEGYZÉK Nyelvfeldolgozás és szövegbányászat Szövegbányászat magyarul Szövegbányászati szoftverek ismertetése Ügyfélkapcsolat menedzsment Az ügyfélkapcsolat menedzsment alapjai Az ügyfélkapcsolat menedzsment fogalma A CRM folyamata Alkalmazások Ügyfélszegmentáció Ügyfélérték számítás Ügyfelek lojalitása Keresztértékesítés Kampánymenedzsment Példa a CRM alapú működés bevezetésére egy hazai kereskedelmi bankban VI
9 Előszó A könyvről Az adatbányászat elmúlt évtizedben történt megjelenése lehetővé tette, hogy az üzleti, a mérnöki, és a tudományos életben egyre hatékonyabban támaszkodhassunk a hihetetlen sebességgel felhalmozódó adatainkra. Az adatbányászat ugyanis egy olyan döntéstámogató folyamat, amely érvényes, hasznos, előzőleg nem ismert, tömör információt tár fel nagy adatbázisokból. A rejtett összefüggések feltárása mellett kiemelendő, hogy az adatbányászat eszköztárával bizonyos szakértői döntések gyakran automatizálhatók, amivel nemcsak emberi erőforrás takarítható meg, hanem felgyorsítható az adott üzleti, illetve technológiai folyamat is. Könyvünk az adatbányászat tevékenységének lépéseit részletesen bemutatva kívánja megismertetni az olvasót, azzal hogy milyen jellegű gazdasági, mérnöki, illetve tudományos problémák megoldásában alkalmazható az adatbányászat, az adatbányászatnak, mint tevékenységnek melyek a fő lépései és eszközei, miként lehet eldönteni, hogy egy adott feladat megoldásához milyen adatbányászati eszközt, illetve algoritmust kell alkalmazni, melyek ezeknek az algoritmusoknak a fő paraméterei, hogyan célszerű ezeket megválasztani, illetve a kapott eredmények miként értelmezhetők, milyen speciális megoldásokat követelnek az időbeli változásokat vizsgáló, illetve szövegek elemzését megcélzó feladatok, végül az üzleti életben történő speciális alkalmazások, pl. ügyfélszolgálat menedzsment milyen általánosítható kérdéseket vetnek fel, s e kérdésekre milyen válaszok adhatók. 1
10 A célkitűzések jól mutatják, hogy e könyv az adatbányászati alkalmazásokat bevezetni, alkalmazni, illetve fejleszteni szándékozó gyakorló gazdasági szakemberek, mérnökök, informatikusok, és a téma iránt érdeklődő egyetemi hallgatók, illetve kutatók részére íródott. A gyakorlatias megközelítésmódot számtalan példa, esettanulmány, alkalmazási sikertörténet ismertetése biztosítja, melyek összeállítása során a magyar informatikai piac üzleti intelligenciával foglalkozó szegmensének sajátosságait is figyelembe vettük. Ezek az információk különösen azok számára hasznosak, akik adattárházat és annak kiaknázására alkalmas rendszert kívánnak kiépíteni. Reményeink szerint az érdeklődő olvasók már a könyv olvasása közben képesek lesznek annak eldöntésére, hogy az őket körbevevő adatok elemzésével miként juthatnak hasznos információkhoz, illetve e tudásfeltárási folyamathoz milyen eszközökre lesz szükségük, és képesek lesznek a könyvben ismertetett eszközökkel megkezdeni ezen munkát. Ezen kezdő lépéseket közismert eszközökön (Microsoft EXCEL, Microsoft ACCESS és MySQL adatbáziskezelő) alapuló példák támogatják. Természetesen egy professzionális felhasználó sokkal többre vágyik mint egymástól elszigetelt demonstrációs céllal készült apró programok sorozata. Munkánk ilyen szempontból is úttörő jellegű, ugyanis ez az első olyan magyar nyelven megjelenő kiadvány, amely a rendkívül hatékony, mindenki számára ingyenesen elérhető, nyitott forráskódú WEKA adatbányászati programcsomagra is támaszkodva ismerteti a tudásfeltárási folyamat lépéseit, lehetőséget teremtve ezáltal az elsajátított ismeretek közvetlen gyakorlati alkalmazására akár Linux, akár Windows környezetben. Ugyanakkor a könyvben szerepelnek a professzionális üzleti felhasználásban elterjedt szoftverek is (SPSS Clementine), illetve ismertetésre kerül az iparág független adatbányászati módszertani szabvány a CRISP. Azokat az olvasókat, akik a módszerek tudományos szintű megismerésére és fejlesztésére törekednek, könnyen értelmezhető algoritmus leírásokkal, számtalan irodalmi hivatkozás feltüntetésével és MATLAB R programokkal kívánjuk segíteni. A könyv jól strukturált felépítésével is megpróbálja kielégíteni az eltérő igényeket. Az első fejezet minden érdeklődő számára hasznos általános bevezető, illetve módszertani ismereteket tartalmaz. A második fejezet az adattárházak létrehozásának és alkalmazásának kérdéseivel foglalkozik. Az ezt követő fejezetek azok számára hasznosak, akik az adatbányászati technikák részleteire kíváncsiak. A kötet egy, a különböző üzleti alkalmazások jellegzetességeit tárgyaló résszel zárul. Több mint 150 ábra és csaknem 50 táblázat segíti a leírtak jobb megértését. A demonstrációs programok és a kapcsolódó oktatási anyagok a könyv honlapjáról tölthetők le: Ezek a segédletek teszik alkalmassá a kötetet, hogy az a felsőoktatásban jegyzetként, illetve ajánlott irodalomként szolgálhasson. E honlapról a könyvre szorosan építő oktatási tematikák is letölthetők, ugyanis a könyv szerkesztője a Veszprémi Egyetem Műszaki Informatika, Gazdasági Informatikus, Műszaki Menedzser, Mechatronika, és Gépészés Vegyészmérnök B.Sc. és M.Sc. szakjain tárgyfelelős oktató. 2
11 A szerzők A könyv az Adattárházak és kiaknázásuk egyetemi- és az Adatmodellezés doktori kurzusok négy évre visszamenő oktatási tapasztalata alapján született. Az összegyűjtött irodalom, illetve oktatási anyag tankönyvvé alakításának oroszlánrészét e kurzusok legtehetségesebb hallgatói végezték: Holenda Balázs: Adattárházak és kiaknázásuk Mátyus Péter: Adatok feltáró jellegű elemzése és megjelenítése Tobak Tamás: Osztályozási feladatok Pach Ferenc Péter: Gyakori elemhalmazok és asszociációs szabályok feltárása Kenesei Tamás és Madár János: Regressziós technikák Bankó Zoltán: Idősorok elemzése Túróczi Béla: Ügyfélkapcsolat menedzsment. A szakmai megalapozottság érdekében tapasztalt oktató és kutató kollegák bevonását is megkövetelte az adatbányászat rendkívül széles eszköztárának ismertetése: dr. Fogarassyné Vathy Ágnes: Csoportosítási algoritmusok, Veszprémi Egyetem, Matematikai és Számítástechnikai Tanszék dr. Gyenesei Attila: Gyakori elemhalmazok és asszociációs szabályok feltárása, Department of Knowledge and Data Analysis, Unilever Research Vlaardingen, Hollandia dr. Tikk Domonkos: Szövegbányászat, Budapesti Műszaki és Gazdaságtudományi Egyetem (BME), Távközlési és Médiainformatikai Tanszék. A gyakorlatias megközelítésmód hitelessége a könyv írásában és lektorálásában közreműködő gyakorló adatbányász specialista szakembereknek köszönhető: Körmendi György és dr. Cseh Zoltán: SPSS Hungary Kft., az adatbányászat módszertanának ismertetése. Halász István, Robotka Zsolt és Rovnyai János: DSS Consulting Kft, esettanulmányok készítése. Fekete Zoltán: Az Oracle Hungary senior üzleti intelligencia és adattárházszakértője, az Adattárházak és kiaknázásuk, illetve az Ügyfélkapcsolat menedzsment (operatív és analitikus CRM) fejezetek lektorálása 3
12 Köszönetnyilvánítás A könyv megírásának gondolata és a szükséges szakmai, illetve anyagi háttér biztosítása annak az IKTA 00142/2002 számú kutatás-fejlesztési projektnek köszönhető, melynek célja egy Interneten keresztül igénybe vehető adatbányászati szolgáltatás, az Intelligens Adatelemző Központ létrehozása volt: A szolgáltatás keretein belül három természettudományi minta-projekt támogatása is megtalálható, melyek a következő tudományterületek egy-egy részét ölelik fel: régészet, szeizmológia, orvostudomány. dr. Vassányi Istvánnak, a projekt vezetőjének köszönhető, hogy ezen projekt eredményeinek általánosításaként megszületett adatbányászati tervezési minták közzététele jelen formában lehetségessé vált. Az Ő szakmai támogatásáért és a munka egy részének koordinálásáért külön hálás a szerkesztő. A szerkesztő adatbányászattal kapcsolatos munkáját elsősorban a Veszprémi Egyetem Vegyészmérnöki Intézetének Koordinációs Kutatóközpontja támogatja, melynek a Működő technológiák optimálása kutatási főiránya azt vizsgálja, hogy az üzemeltetés során gyűjtött adatok felhasználásával miként lehet a termelési folyamatok hatékonyságát növelni: Az Országos Tudományos Kutatási Alapprogramok már 2001 óta támogatják a szerkesztő adatbányászattal kapcsolatos munkáját a Korszerű adatelemzési technikák és modell alapú algoritmusok a kísérlettervezésben és kiértékelésben, OTKA T és az Adatbányászat vegyipari gyártócellák fejlesztésében, diagnosztikájában és szabályozásában, OTKA T projektek finanszírozásával. E kutatásokban csaknem az egész Folyamatmérnöki Tanszék (FMT) részt vesz. Külön köszönetet érdemelnek dr. Árva Péter és dr. Németh Sándor kollégáim, valamint Balaskó Balázs, Feil Balázs, Pach Ferenc Péter és Madár János doktorandusz hallgatók, akik e munkában is aktív szerepet vállaltak. A felhalmozódott tudományos ismeretek gazdasági életben való alkalmazását az FMT spin-off cége, a SimCont Bt. teszi lehetővé. A Clementine adatbányászati eszközt és a CRISP módszertani szabványt az SPSS Magyarországi Képviselete bocsátotta rendelkezésünkre, 4
13 1. fejezet Bevezetés A globális, információs és tudás jelzőkkel illetett társadalom egyaránt jellemezhető a szellemi tőke értékének felismerésével, meghökkentő tudományos eredményekkel, ugyanakkor az oktatás válságával, és a tudás megszerzéséhez, átadásához, illetve felhasználásához kapcsolható társadalmi méretű konfliktusokkal. Ebben a közegben fut be óriási karriert az infokommunikációs ágazat, melynek eszközei és alkalmazásai megváltoztatták/megváltoztatják a tájékozódás, a tanulás, a kutatás, a munkavégzés, a szórakozás módját, sebességét és formáit. Ezek az új eszközök egyszerre adnak lehetőséget a tudások integrációjára és a tudások elszigetelésére is. Jelentős szerepet játszanak abban is, hogy a tudástőke mint egy szervezet, illetve folyamat értékének meghatározó eleme előtérbe került. A könyv a tudástőke előállításához és kezeléséhez kapcsolódó témakör egy kis szeletével kíván foglalkozni. Azzal a problémával, hogy a vállalatoknál, a termelő és szolgáltató egységeknél, a tudományos kutatásban, illetve a mindennapi életünkben egyre nagyobb mennyiségben keletkező, immár áttekinthetetlenné váló adathalmazokból miként nyerhető ki értékes, hasznos tudás Miért kell menedzselni a tudást, illetve az adatokat? A hatalmas információ-, illetve adatáradat leginkább annak köszönhető, hogy az elmúlt évtizedek informatikai forradalmának hatására minden emberi tevékenység egyre jobban automatizált. Számítógépek rögzítik vásárlásainkat, internetezési szokásainkat, egészségi állapotukat, követik minden mozdulatunkat. Ez a megnövekedett automatizáltság, elektronikus módon történő dokumentáltság nemcsak a hétköznapi életünkre, hanem egy modern vállalat, szervezet működésére, termelő rendszereire, illetve a kutatás-fejlesztés folyamataira is érvényes. 5
14 1.1. MIÉRT KELL MENEDZSELNI A TUDÁST, ILLETVE AZ ADATOKAT? Szinte senkiben sem kérdőjeleződik meg, hogy érdemes-e megőrizni a folyamatosan gyűlő adatokat, annyira magától értetődő, hogy az egyre szélesebbre duzzadó adatfolyam értékes információkat rejthet. Azt hihetnénk, ahol sok adat van, ott jóval könnyebb ezeknek az adatbázisoknak a kiaknázása. Ez azonban nincs feltétlenül így: adatok gyűlnek mindenhol és mindenről, ettől önmagában mégsem válik egyszerűbbé a felhasználásuk, sőt, mára már elmerülni látszunk az adatok tengerében. Nehéz megbecsülni, hogy mekkora is ez a tenger. A legfrissebb felmérést a kaliforniai Berkeley Egyetem végezte. Szerintük a 2002-es évben keletkezett, nyomtatott, film és elektronikus adathordozókra kerülő adatok mennyisége öt exabájt volt, melyeknek 92%-a került merevlemezen, 7%-a filmen, 0.01%-a papíron, és 0.002%-a optikai eszközön (pl. CD,DVD) tárolásra. Mekkora is ez az öt exabyte? Ha az Amerikai Egyesült Államok Kongresszusi Könyvtárának mind a 19 millió kötetét digitalizálnánk, akkor körübelül tíz terabájtnyi adatot kapnánk. Öt exabájt tehát félmillió új, kongreszszusi könyvtárnyi adatmennyiséget jelent. Ha a föld 6.3 billió lakosára levetítjük ezt az adatmennyiséget, akkor megállapíthatjuk, hogy átlagosan minden kortársunk évente kb. 800 megabájt információt generál, azaz kb. egy CD lemeznyit. Érdekes ezt a számot összevetni Shakespeare teljes életművével, mely akár 5 megabájt tárhelyen is elfér. A különösen kritikus jelenség az, hogy az adatok egyre nagyobb mennyiségben keletkeznek, a keletkezés sebessége ugyanis az elmúlt három évben megduplázódott. Az exponenciális növekedésnek köszönhetően egyre inkább adattemetők jönnek létre. Azaz, bár rögzítjük és tároljuk a keletkező adatokat, arra már sem idővel, sem eszközzel nem rendelkezünk, hogy az ezek mögött az adatok mögött megbúvó, esetleg hasznos tudást kinyerjük. John Naisbitt, a híres futurista megfogalmazása szerint az információs társadalom egyik legnagyobb ellentmondása, hogy megfulladunk az adatoktól, miközben tudásra éhezünk. Valójában ez a megállapítás nem valós ellentmondás, ugyanis a tudás nem azonos az adattal. Rendkívül nehezen definiálható, hogy pontosan mi is a tudás. A legkézenfekvőbb, ha az adathoz és az információhoz viszonyítjuk. Az információ tényeket, javaslatokat, szimbólumokat foglal magában, és az integritás elvesztése nélkül átadható, ha a szintaktikai szabályok ismertek. A tudás (kompetencia) feldolgozott információ, felhalmozott gyakorlati képesség, ami tanulással szerezhető meg, és arra vonatkozik, hogy hogyan kell valamit csinálni. Tehát a jó döntéshez, az üzleti sikerhez és a tudományos felismeréshez is a megfelelő információk jól kiválasztott halmazára van szükségünk. Ahogy egyre több adat gyűlik össze, egyre nagyobb esélyünk van a megfelelő információk megszerzésére. Amíg nem voltak kiterjedt adatbázisok, addig leginkább csak a tapasztalatainkra és az ösztöneinkre támaszkodhattunk. Egy felmérés szerint az üzleti életben a menedzserek 88%-ának döntései legalább háromnegyedénél ma is inkább a megérzéseire hallgat a tényadatok helyett. 6
15 1. FEJEZET: BEVEZETÉS E jelenség természetesen köztudott. Sőt, már azt is feltárták, hogy a tudás sikeres menedzselését három kulcstényező határozza meg: Kultúra, normák a sikerhez 50%-ban járulnak hozzá. A tudás alapú szervezetekben azok a menők, akik képesek a saját és mások tudásának gyors és hatékony fejlesztésére. A tudásmegosztás csak olyan környezetben lehet eredményes, ahol nem a tudás birtoklására, hanem a csapatban való hasznosításra helyezik a hangsúlyt. Eljárások és folyamatok a sikerhez 30%-ban járulnak hozzá. Ezek például a tudásmegosztást közvetlen módon segítő mérési, nyilvántartási és kommunikációs eljárások. Technológia és infrastruktúrák a sikerhez 20%-ban járulnak hozzá. Ezek például információtechnológiai rendszerek és egyéb tanulást és kommunikációt támogató technológiák. A vállalatnak rendelkeznie kell egy integrált számítógépes hálózattal, amely minden alkalmazott számára fizikai és időbeli korlátok nélkül hozzáférhető. Például az Andersen Consulting 50 ezer munkatársa a világ különböző pontjain dolgozik, s a céges tudásbázisból keresik elő azokat a korábbi megoldásokat, amelyek hasonlítanak az aktuális problémára. Így gyorsan allokálhatóak a feladathoz legjobban értő szabad kapacitású emberek, eszközök, adatok és dokumentációk. Természetesen e rendszernek naprakésznek és megbízhatónak kell lennie, így a tudás feltöltésére és keresésre szigorú szabályok vonatkoznak, miután jelenti a cég tudását. Fontos megjegyezni, hogy az előbb említett példa nem is esik annyira távol a hazai gyakorlattól. A KPMG munkatársai 2000 nyarán és őszén 18 jelentős magyar vállalatot kerestek fel egy nemzetközi felmérés során alkalmazott kérdőívvel, hogy felmérjék, hogy a magyar vállalkozások hol tartanak a tudásmenedzsment fejlesztésében és alkalmazásában, mennyire foglalkoznak tudatosan a felhalmozott tudás kezelésével, valamint hogyan fest a magyar helyzet egy korábbi nemzetközi felmérés tükrében. A felmérés legfontosabb tanulsága, hogy a tudásmenedzsment fogalma elfogadottá vált a hazai üzleti életben is. A 423 európai és észak-amerikai vállalat 64%-ának van tudásmenedzsment stratégiája, és 68%-uknál már elindult vagy éppen most indul tudásmenedzsment program. A hazai helyzet még nem ennyire pozitív, de már Magyarországon is a vállalatok 39%-a nyilatkozott úgy, hogy rendelkezik tudásmenedzsment stratégiával, és 57%-ban elindultak vagy készülőben vannak tudásmenedzsment programok. Láthattuk tehát, hogy a tudásmenedzsment egyik alapkövetelménye a megfelelő információtechnológiai eszköztár megléte. Ennek három tipikus eleme terjedt el: Tudáskezelő Raven csomag: Tartalomkövető és -elemző eszközöket, személyes és közösségi információk és tevékenységek kezelésére használható ismeretanyag 7
16 1.1. MIÉRT KELL MENEDZSELNI A TUDÁST, ILLETVE AZ ADATOKAT? portált tartalmaz. Alkalmazásával egy adott témához kapcsolódó információk és alkalmazások kereshetők, például rendszerezhetők egy adott alkalmazottra vonatkozó feladatok, munkacsoportok és projektek. Adattárház Data Warehouse: Elemzési, lekérdezési céllal létrehozott, nagyméretű adatbázis, amely az elemzésre szánt információt az eredeti keletkezési, illetve tárolási helytől elkülönített helyen és módon tárolja. A vállalat területén keletkezett adatokat lekérdezésre optimalizálva konszolidálja, de kívülről származó, az elemezendő problémára vonatkozó információkat is tartalmazhat. Adatbányászat Data mining: Olyan elemző eszközök és technológiák, amelyek lehetővé teszik a felhasználó számára fontos, új információk meghatározását az adatbázisok, illetve adattárházak adataiból. Ezen elemek kapcsolata kézenfekvő. A szükséges vezetői döntések meghozatala adatokon alapuló információt igényel. Maguk az adatok nem használhatók a tényleges döntések meghozatalában, az adatok kontextusa és alkalmazási módja alakítja át őket információvá. A generált információdarabok közössége adja a tudást, mely már felhasználható. Ideális esetben a döntések eredménye visszahat az üzleti információs rendszerre is, zárva egy kört, amit teljességében az 1.1. ábra ismertet. Ez a visszacsatolás teszi lehetővé a tanuló szervezet létrejöttét, amely kialakításához optimális struktúra mind az adattárház, mind pedig az adatbányászat szintjén megvalósul. Az adattárház integrált, releváns adatokat szolgáltat az adatbányászati alkalmazás felé, míg annak eredményei visszakerülnek az adattárházba, szervesen beépülve a vállalati tudásbázisba. Ez a folyamat, ill. a 1.1. ábra ábra jól mutatja, hogy az adatbányászati szoftvereknek szorosan kell a vállalati információs rendszerhez kapcsolódniuk. Hazánkban e technikák alkalmazása már nem újdonság. A korábbiakban említett KPMG felmérés kimutatta, hogy a megkérdezett hazai nagyvállalatok 44%-a alkalmaz adattárház és adatbányászati eszközöket, mely arány nem mondható kicsinek a nemzetközileg mért 63%-hoz viszonyítva. Ne felejtsük el azonban, hogy a technológia, az eszközök puszta megléte önmagában nem jelenti azt, hogy megfelelően ki is tudjuk használni azokat. A megkérdezettek közül többen is említették, hogy rendelkeznek ugyan Intranettel (88%), de még nem igazán használják ki a benne rejlő lehetőségeket. E jelenség különösen gyakori az olyan összetett rendszerek alkalmazásának tekintetében mint az adattárházak és az adatbányászat. Könyvünk célja, hogy e két tudásmenedzsment eszköztárral ismertesse meg az Olvasót, segítve ezen eszközök hatékony bevezetését és alkalmazását, növelve annak az esélyét, hogy a környezetünkben keletkező adatokból a lehető legtöbb hasznos tudás feltárásra kerüljön. 8
17 1. FEJEZET: BEVEZETÉS Döntések szükséges alapul Információ nyújt támogat Adat 1.1. ábra. Adatoktól az üzleti döntésekig 1.2. Adatbányászat, mint a tudásmenedzsment eszköze Az adatok információvá történő átalakításának hagyományos módja az adatok manuális elemzése, interpretálása. Például az egészségügyben rendkívül gyakori, hogy az adott tématerület szakértői időszakosan elemzik az elmúlt időszakban összegyűlt adatok által mutatott trendeket. E szakértők jelentésben foglalják össze tapasztalataikat, melyek az elkövetkezendő idők döntéshozatalaiban is hasznosulhatnak. Attól függetlenül, hogy az egészségügyet, a marketinget vagy esetleg a tudományos kutatást vesszük példaként, az adatok elemzésére alkalmazott megközelítésmód mind-mind hasonló: néhány, az adatok elérhetőségét és elrendezésének módját ismerő elemző vállalja a közvetítő szerepet az adatok és az azok által hordozott információt felhasználók között. Ezekben az esetekben az emberi tényező hatására az adat alapú tudásfeltárás folyamata lassú, drága és szubjektív. Ráadásul, ahogy az adatok mennyisége növekszik, úgy válik egyre kivitelezhetetlenebbé ez a fajta megközelítésmód. A rejtett összefüggések feltárása mellett nagyon fontos, hogy adatbányászati módszerekkel gyakran emberi, szakértői döntések automatizálhatók. Ezzel nemcsak emberi erőforrást takaríthatunk meg, hanem felgyorsíthatjuk válaszadásaink reakcióidejét, ami az elektronikus üzletvitel során különösen nagy jelentőséggel bír. Ebben az adat-információ-tudás átalakítási folyamatban történtek forradalmi változások az elmúlt években, új módszerek és eljárások jelentek meg, és ezek az újszerű elemző tevékenységek kapták az adatbányászat (angolul: data mining) nevet. 9
18 1.2. ADATBÁNYÁSZAT, MINT A TUDÁSMENEDZSMENT ESZKÖZE Az adatbányászat definíciója Elérkezett az idő, hogy az adatbányászat fogalmát egy kicsit formálisabb módon is definiáljuk: Az adatbányászat egy olyan döntéstámogatást szolgáló folyamat, mely érvényes, hasznos, és előzőleg nem ismert, tömör információt tár fel nagy adathalmazból. Ahhoz, hogy pontosan megértsük, mit is takar ez a definíció, hasznos, ha értelmezzük a definícióban szereplő kulcsszavakat: 10 Folyamat: Az adatbányászat nem egy szimpla, dobozban kapható eszköz, ami automatikusan generálja a felhasználható tudást a korábban nem látott adatainkból, hanem egy rendkívül összetett folyamat. Ennek a fejezetnek, illetve az egész könyvnek az a célja, hogy megismertesse az Olvasót e folyamat lépéseivel. Érvényes: Az adatokból kinyert információnak pontosnak és statisztikailag szignifikánsnak kell lennie. Az érvényesség nemcsak pontosságot, hanem teljességet is kell hogy jelentsen. Például, ha valamilyen szempontot figyelembe véve kell kiválogatni egy adatbázisból a megfelelő ügyfeleket, kritikus, hogy az összes megfelelő kritériumot teljesítő ügyfelet azonosítsuk. Hasznos: Nem elegendő, hogy az adatbányászat folyamata pontos ismereteket eredményezzen, a feltárt tudásnak az adott elemzés szempontjából hasznosnak is kell lennie. Sajnos a hasznosság mérése nem mindig lehetséges, azaz nem minden esetben lehet monetáris eszközökkel kifejezni a feltárt információ hasznát. Előzőleg nem ismert: Az adat alapú tudásfeltárásnak tulajdonképpen kétféle célja lehet: megerősítés és felfedezés. Megerősítés alatt azt értjük, amikor a tudásfeltárás célja az adatelemző egy adott hipotézisének a megerősítése. Ezzel szemben a felfedezés (tudásfeltárás) során a rendszer autonóm módon generál hasznos mintákat az adatokból. Az adatbányászat igazán ez utóbbi, felfedező jellegű adatelemzést takarja. A tudásfeltárás célja alapján a felfedezés jellegű adatbányászati feladatokat további két csoportra bonthatjuk: predikciós és leíró jellegű feladatokra. A predikciós feladatoknál egyes jelenségek jövőbeni viselkedését, illetve nem ismert tulajdonságait kell megjósolni, míg a leíró jellegű feladatoknál a jelenséget, illetve annak alakulását, és a jelenséggel kapcsolatosan feltárt összefüggéseket kell a felhasználó számára a lehető legjobban értelmezhető módon tálalni. E két feladat részben ellentmond egymásnak. Ugyanis a predikciós feladatokban a pontosság érdekében gyakorta az összetett, áttekinthetetlen méretű modelleket preferáljuk, míg a leíró jellegű adatelemzés esetében lévén a modell értelmezhetősége a fontos inkább az egyszerű, könnyen áttekinthető modellek
19 1. FEJEZET: BEVEZETÉS élveznek előnyt. Az adatbányászat célja tehát új információ generálása. Abban az esetben, ha a folyamat triviális eredményt szolgáltat, a döntéshozók csalódottak lesznek. Tömör: Az adatbányászat eredményének könnyen értelmezhetőnek kell lennie. Ha nem az, akkor az eredmény csupán egy egyszerű statisztikai modell, mely alkalmazható például az ügyfelek minősítésére, viselkedésük előrejelzésére, de nem ad semmilyen információt arra vonatkozóan, hogy mi állhat a vizsgált probléma hátterében. Az értelmezhetőség legalább annyira szubjektív fogalom mint a hasznosság, csak néhány esetben fejezhető ki a modell komplexitásának mérésével, például egy szabály alapú modell esetében a szabályok számával Az adatbányászat mint tanulás Az adatbányászat legalapvetőbb problémája tehát az, hogy hogyan lehet egy áttekinthetetlen adathalmazban megbúvó potenciálisan hasznos információkat feltárni, és ezeket eredeti adatok megjelenési formájánál kompaktabb, absztraktabb, informatívabb, és könnyebben kezelhető módon reprezentálni. Az adatbányászat tehát trendeket és mintázatokat keres az adatbázisokban. Ez a tevékenység nem áll messze az emberi tanulástól, mely egy ma már elfogadott nézet szerint 98%-ban nem más, mint alakfelismerés. A tanulásnak négy szintjét szokás megkülönböztetni: Tények: A tény egy adott igazság egyszerű megállapítása. Például, ma esett az eső. Koncepció: A koncepció objektumok, szimbólumok vagy események csoportja, melyek azonos jelleggel bírnak. Például, májusban gyakrabban esik az eső. Eljárások: Az eljárás egy lépésről lépésre történő, valamely cél eléréséért végzett akciósorozat. Például, kinézünk reggel az ablakon, és ha borús az idő, akkor magunkkal visszük az esernyőnket. Alapigazságok (principiák): Az alapigazságok feltárása jelenti a tanulás legmagasabb szintjét. Principiák általános igazságok, melyek más igazságok alapjai. Például a nagy magasságokban a légnyomás változását Navier-Stokes egyenletekkel írhatjuk le. A tudás, amelyet az adatbányászat előállít, valamilyen modell vagy a rendelkezésre álló adatok általánosításaként áll rendelkezésre. Annak ellenére, hogy ma már rettentő sok adatbányászati algoritmus létezik, ezen algoritmusok közös vonása, hogy indukcióalapú tanuláson alapulnak. Az indukció-alapú tanulás egy koncepcióalkotási folyamat, 11
20 1.2. ADATBÁNYÁSZAT, MINT A TUDÁSMENEDZSMENT ESZKÖZE mely során specifikus példák (adatok) alapján valamely koncepció, adat, általános érvényű ismeret keletkezik. A számítógépek tehát koncepciók tanulására alkalmasak. E koncepciók általában az adatbányászati algoritmusok kimenetei, melyek általában döntési fákban, szabálybázisokban, hálózatokban vagy matematikai egyenletekben formalizálódnak. A koncepcióknak három nézőpontjuk lehetséges. E három nézőpont megértése nagyban megkönnyíti az adatbányászati algoritmusok megértését, ezért a következőkben ezeket ismertetjük. A koncepciók klasszikus nézete az, hogy a koncepciónak valamely tulajdonságot kell leírnia. Ezek a tulajdonságok határozzák meg azt, hogy az adott egyed a koncepcióra példa-e vagy sem. E klasszikus koncepció vagy igen, vagy nem jellegű (úgymond éles), és nem hagy lehetőséget a bizonytalansággal teli interpretációra. E megközelítésmódra példa a következő szabály: Ha a bank ügyfelének a havi keresete magasabb, mint Ft, és rendelkezik egy 20 MFt-ot érő ingatlannal, akkor ez az ügyfél hitelképes. E megközelítés azt mondja tehát, hogy ahhoz, hogy valaki jó adósnak számítson, két feltételnek együttesen kell megfelelnie. A koncepció valószínűségi nézete egy kicsit megengedőbb. Azt mondja, hogy a koncepciók tulajdonságokkal vannak definiálva, melyekkel a koncepció tagjainak valószínűleg rendelkezniük kell. Például a jó hiteltörlesztők többségének saját ingatlana van. A klasszikus nézettel szemben ez a fajta ismeret nem használható fel közvetlenül arra, hogy megválaszoljuk azt a kérdést, hogy egy adott személy hitelképes-e vagy sem. Azonban ez a fajta ismeret szintén segíthet minket a döntési folyamatban. A példa alapú nézet az alapján dönti el, hogy egy adott objektum megfelel egy adott koncepciónak vagy sem, hogy az adott koncepcióhoz tartozó objektumhoz, mintapéldához mennyire hasonló. Amikor egy gyermek tanulási folyamatát követjük nyomon, láthatjuk, hogy menynyire indukciós alapon tanulnak. A mesekönyvekből, az utcán tett sétáik során példákat látnak állatokra, autókra, és közben a szüleiktől megfelelő címkéket, elnevezéseket hallhatnak az adott jelenségekre. A tanulás során a gyermekek ösztönösen ráismernek az adott egyedek (pl. állatok, autók) legfontosabb jellemzőire (pl. milyen tulajdonságai is vannak egy autónak), és egy osztályozási modellt építenek magukban a jelenségek elkülönítésére, felismerésére. A tanulásnak ezt a formáját felügyelt tanulásnak hívjuk, ugyanis a tanulás során rendelkezésre áll az az információ, hogy az adott esetek (az adatbázisok nyelvén szólva rekordok) milyen osztályokba tartoznak. A felügyelt tanulás célja kettős: 12
21 1. FEJEZET: BEVEZETÉS Felügyelt tanulást alkalmazunk egy modell előállítására olyan adatokból, melyekben példák és/vagy ellenpéldák vannak arra a koncepcióra nézve, melyet meg szeretnénk tanulni. A tanulást követően e modell felhasználható az olyan esetek osztályba sorolására is melyekről nem tudjuk, hogy honnan erednek, azaz mely koncepcióra példák. A felügyelt tanulással szemben a felügyelet nélküli tanulás az adatok előzetes osztályba való tartozásának ismeretét nélkülözve működik. E tanulási folyamat alapgondolata a következő: általában egy adott problémakörhöz tartozó objektumok egyes csoportjai bizonyos szempontok (ismérvek) szerint hasonlóak egymáshoz, így az adatbázisban szereplő objektumokat azok egymáshoz való hasonlósága alapján csoportokba lehet sorolni. E csoportosítási feladat algoritmikus eszközökkel, azaz a számítógép segítségével is megoldható. Így az adatbányásznak már csak az a feladata, hogy megpróbálja a csoportosítás eredményét, azaz a kapott csoportokat kiértékelni, feltárni azt, hogy milyen jelentéssel és mekkora jelentőséggel bírnak a kialakult csoportok Adatbányászati technikák Az adatbányászat fogalmának definiálásával egyre közelebb kerülünk ahhoz a kérdéshez, hogy egy adott probléma megoldására milyen adatbányászati technika alkalmazása célszerű. Annak ellenére, hogy a mai piacon elérhető adatbányászati programcsomagokban rendkívül sok algoritmus elérhető, ezen algoritmusok visszavezethetők pár alapfeladatra (műveletre), illetve e feladatok megoldására alkalmas megoldásmódra (technikára) (1.2. ábra). A következőkben a legjelentősebb technikákat csak vázlatosan ismertetjük, ugyanis a könyv egyes fejezetei ezeket majd külön-külön, részletesen fogják ismertetni. A csoportosítás (szegmentálás, klaszterezés) olyan, nem felügyelt tanulási technika, mely segítségével egy adathalmaz objektumait úgy oszthatjuk fel csoportokra, hogy a csoportokon belül egymáshoz hasonló objektumok vannak, míg a csoportok számottevően különböznek egymástól. Ennek megfelelően a csoportosítás tipikus felhasználási területe a különböző csoportok különbségeinek és hasonlóságainak jellemzése. Az adatok csoportosítását gyakran azok leíró jellegű elemzésére szokták alkalmazni, ugyanis e technika alkalmazása során a cél az adatokat jellemző tipikus esetek olyan halmazának a feltárása, melyek az adatbázisban lévő eseteket jól jellemzik. E feltárt csoportok gyakorta egymást kizárók, de egyes esetekben akár egymással átfedők, netán hierarchikusak is lehetnek. A csoportosítási feladatra talán a legplasztikusabb példa a piacszegmentálás, amikor a rendelkezésre álló adataink csoportosításával az ügyfeleinket olyan csoportokba soroljuk, melyek egymástól eltérő jellegűek, de a csoportok maguk egymáshoz hasonló ügyfeleket tartalmaznak (azaz homogének). 13
22 1.2. ADATBÁNYÁSZAT, MINT A TUDÁSMENEDZSMENT ESZKÖZE Alkalmazások Döntések Keresztértékesítés Min ség ellen rzés Vev k megtartása Csalások megel zése M veletek Információ Prediktív modellezés Kapcsolatanalízis Adatbázis szegmentáció Eltérések észlelése Technikák Adatok Regresszió Osztályozás Asszociáció Csoportosítás 1.2. ábra. Adatbányászati módszerek megválasztása a feladat függvényében Az osztályozás egy olyan összefüggés tanulását takarja, mely alkalmas arra, hogy ismert változók alapján egyes eseteket (objektumokat, azaz az adatbázis rekordjait) osztályokba sorolja. Az osztályozási feladat ennek megfelelően két részfeladatra osztható: modell generálás és előrejelzés. Általában a modell generálás egy adott adathalmaz osztályozását jelenti adott számú diszjunkt részhalmazba. Az osztályozásra alkalmas modell tehát bemeneti ismérvekből (attribútumokból) számol kimeneti attribútumokat (osztály címéket). A bemeneti attribútumokat szokás független változóként, a kimeneteiket pedig függőként említeni minthogy a kimenet a bemenet értékeitől függ. A felügyelt tanulási stratégia egy adott tanulási halmaz mely ismert osztályokba tartozó példányokból áll segítségével építi fel az osztályozási modellt. Azaz, egy függvénykapcsolatot határoz meg a modell bemenetei és a kimenet között. A generált modell elemzésével általában lehetőség nyílik annak a megállapítására, hogy a rendelkezésre álló ismérvek miként határozzák meg azt, hogy az adott elem melyik részhalmazba tartozik. A szabály alapú osztályozási modellek nagy előnye, hogy az osztályozás eredményei könnyen interpretálhatóak és látványosak, azaz a modell könnyen értelmezhető, áttekinthető. Például egy vállalat ismeri a vásárlóinak bizonyos jellemzőit (nem, kor, jövedelem), és a fogyasztói szokásai alapján ezeket a vásárlókat három osztályba osztja, úgy, mint kis-, közepes- és nagyfogyasztó. Ebben az esetben a szabálygeneráláson alapuló adatbányászat alkalmas annak a megállapítására, hogy milyen ismérvek határozzák meg azt, hogy az adott fogyasztó melyik osztályba tartozik. Megállapíthatja például azt, hogy az a 35 év alatti nő, akinek havi jövedelme meghaladja a Ftot, nagyfogyasztó. Előrejelzés esetén a múlt adataira támaszkodva létrehozott szabályok 14
23 1. FEJEZET: BEVEZETÉS segítségével előrejelzéseket készítünk. Azaz a feltárt összefüggéseket új, korábban nem ismert szituációkra is alkalmazhatjuk. Például amennyiben a feltárt szabályok alapján a példában szereplő vállalat egy direkt marketing eszközt vezet be a potenciális nagyfogyasztók meggyőzésére, kimutathatja, hogy a célközönség a 35 év alatti, Ft feletti havi jövedelemmel rendelkező nők lesznek, hiszen ők azok, akik a legnagyobb valószínűséggel válhatnak nagyfogyasztóvá. A gyakori elemhalmazok és asszociációs szabályok feltárásának a lényege, hogy az adatbázisban lévő objektumok között összefüggéseket találjon. Amennyiben létezik ilyen kapcsolat, akkor az adatbányászat segítségével feltárható, és annak erőssége jellemezhető. E feladatra tipikus alkalmazási példa a fogyasztói-kosár elemzés, mely olyan információt próbál feltárni, hogy ha a vásárló vásárol X és Y terméket, akkor valószínűleg vásárol Z terméket is. Például, aki pelenkát vásárol, az valószínűleg vesz popsitörlőt és bébi élelmiszert is, illetve aki Baccardit vesz, nagy valószínűséggel kólát is tesz a kosarába. Talán mindannyian el tudjuk képzelni, hogy az ilyen jellegű információk mennyire hasznosak lehetnek a kereskedelemben, például az üzletek elrendezésénél, illetve reklámkampányok tervezésénél. Erre kiváló példa, hogy a Bank of America adatbányászati eszközöket használ annak elemzésére, hogy milyen ügyfelek milyen szolgáltatásokat vesznek igénybe, és ezen információkat arra használja, hogy számukra a leginkább megfelelő szolgáltatásokat ajánlja. E módszer bevezetése könynyen megtérül. Jó példa az American Express által ismertetett sikertörténet, miszerint az ügyfeleik adatainak elemzésével a hitelkártya forgalmuk 10-15%-os növelését tudták elérni. További alkalmazási példákról, illetve az e megoldások mögött megbúvó algoritmusokról a 6. fejezetben olvashatunk. A regresszió szintén egy következtetésre alkalmas függvény meghatározását jelenti, de ebben az esetben a függvény célja az ismert ismérvekből más numerikus értékekre történő következtetés, azaz nem valamilyen kategorikus változó (osztálycimke) becslése. Regressziós feladat például egy gazdasági vagy a termelési adatok által definiált idősor jövőbeni értékének meghatározása; például mennyi lesz a BUX tőzsdeindex a jövő héten, vagy mekkora lesz a termelt termék mennyisége, ha az az előző órában 5%-al csökkent, de a nyersanyag- és energiafogyasztás az elmúlt fél órában 10%-al nőtt. Regressziós feladatok természetesen nem mindig kell, hogy kapcsolódjanak időben történő változások elemzéséhez, gyakorta statikus összefüggések feltárása a cél. Például egy betegség előfordulásának valószínűségére milyen hatással van a koleszterinszint, vagy mi az öszszefüggés a heti átlaghőmérséklet és a naptej fogyasztása között? A becslésekre használt klasszikus statisztikai módszer, a regresszióelemzés során a kiválasztott adathalmazra egy előre meghatározott görbét (egyenest, parabolát, hiperbolát, logaritmusfüggvényt, vagy több változó esetén egy hiperfelületet) illesztünk. Ehhez jól kidolgozott matematikai módszerek állnak rendelkezésre. Az adatbányászok igazi feladata a regressziós függvény szerkezetének megadása. 15
24 1.3. ADATBÁNYÁSZAT MÓDSZERTANA Idősorelemzés: Idősorok mindenhol jelen vannak. Sok esetben az időbeli összefüggések olyan bonyolultságot érnek el, olyan sok a meghatározó változó, hogy a hagyományos statisztikai eszköztáron alapuló idősorelemzési eszközök már nem alkalmazhatóak. Természetesen e technikák kidolgozását és fejlesztését is komoly piaci igények indokolták, indokolják. Gondoljunk csak bele, mennyire fontos és összetett feladat lehet egy sok konkurens termékkel versengő vállalat számára az értékesítési adatainak az előrejelzése, ugyanis ebben az esetben az értékesített mennyiség függ a konkurencia termékeitől, az általános gazdasági helyzettől, az időjárástól, stb. Természetesen nemcsak az idősorok előrejelzése, hanem csoportosítása és osztályozása is fontos adatbányászati feladat. Idősorokat osztályoznak például akkor, amikor EKG görbék alapján ismerik fel a különböző betegség típusokat Adatbányászat módszertana Már korábban, az adatbányászat fogalmának definiálásakor említettük azt a tényt, hogy az adatbányászat nem egy egyszerű eszközt, hanem egy összetett, több lépésből álló folyamatot jelent, mely folyamatot integrálni kell abba a tevékenységbe, melynek támogatása az adatbányászat célja. A fejezet célja e folyamat ismertetése, betekintés a gyakorlati megvalósítás kérdéseibe A tudásfeltárás folyamata Az adat alapú információ-feltárás teljes folyamatát az 1.3 ábrán ismertetjük. Látható, hogy e folyamat lépései érintik azokat a kérdésköröket, hogy hogyan érdemes tárolni, illetve miként célszerű elérni az elemezendő adatainkat, hogyan lehet azokat megjeleníteni, és milyen eszközökkel, milyen felhasználói felület segítségével célszerű ehhez az ember-gép kapcsolatot biztosítani. Ennek tükrében az adatbányászathoz rendkívül szoros módon hozzátartozik az éppoly divatos adattárház fogalom, mely eszköz két szempontból támogatja az adatbányászt: minél tisztább, azaz koherensebb adatok álljanak rendelkezésére, és az elemezendő adatokat annak ellenére, hogy eredetileg sokféle különálló forrásból származtak, egységes felületen keresztül, a lehető legegyszerűbb módón lehessen elérni. Nem véletlen tehát, hogy e kérdésnek könyvünkben külön fejezetet szentelünk (2. fejezet). Talán az 1.3 ábra megzavarta a figyelmes Olvasót, ugyanis az adatbányászatot csupán a tudásfeltárási folyamat egy adott lépéseként aposztrofáltja. Ennek oka nem az író önkényessége, illetve figyelmetlensége, hanem az, hogy az angol szakzsargonban is a Knowledge Discovery in Databases (KDD) és a Data Mining fogalmakat gyakorta szinonimaként használják, ellenben amikor a KDD (tudásfeltárási) folyamat egy lépéséről beszélnek, akkor szintén a Data Mining (adatbányászat) elnevezést alkalmazzák. Annak ellenére, hogy a hangsúly általában az előzőekben ismertetett folyamat adatbányászati 16
25 1. FEJEZET: BEVEZETÉS Gazdasági döntéseket támogató potenciál növelése Döntéshozatal Felhasználó Adatmegjelenítés Vizualizációs Technikák Adatbányászat Információ feltárás Adatfeltárás Statisztikai elemzés, Lekérdezés és Jelentés Gazdasági elemz Adatelemz Adatelemz Adattárházak / Adatpiacok Adminisztrátor OLAP, Többdimenziós adatbázisok Adatforrások Papírok, Akták, Fájlok,Adatbázisok Információ szolgáltatók,oltp 1.3. ábra. Az adatoktól a kinyert ismeretek hasznosításáig lépésén van, minden lépés azonos jelentősséggel bír, ugyanis a megfelelő adatok kiválasztása és feldolgozása határozza meg igazán a potenciálisan feltárható ismeretek halmazát és adekvátságát. Ahogy az egy összetett folyamathoz illik, a tényleges modellezés szinte elenyésző időt vesz igénybe a többi, első ránézésre sallangnak tűnő feladat között. E képet finomítandó a következő rész célja a tényleges adatbányászati tevékenység pontosabb bemutatása. Az 1.4. ábra szintén az adatbányászati folyamatot illusztrálja. Az ábra különböző szintjei a projektben résztvevő különböző feladatköreit jelentik. Ahogy látható, a lépések többsége a különböző feladatköröket ellátó emberek együttes munkáját jelentik, melyek különböző szintű adat, információ és döntésekhez tartoznak. Ezen ábra alapján az lehet a benyomása az Olvasónak, hogy az adatbányászat egy lineáris folyamat. Valójában azonban, bár az előző lépés eredményei határozzák meg a következő lépés által szolgáltatott eredményeket, gyakran az eredményül kapott információ nem megfelelő. Ekkor vissza kell lépni a megelőző lépésekhez, hogy a kialakult helyzetet, felgyülemlett ismeretet, tudást figyelembe véve újra, immár más kiindulási adatokkal, feltételezésekkel, paraméterekkel, esetleg más eszközzel folytassuk a tevékenységet. Az iterációs hurkok leginkább ott fordulnak elő, ahol a lépések között a szintek változnak. Például akkor, amikor a probléma szakértője és az adatelemező az adatbányászat és az eredmények értékelésén dolgozik. 17
26 1.3. ADATBÁNYÁSZAT MÓDSZERTANA Szakért k el Adatbányászok Adatgy jt k Üzleti analízis Adat-analízis Adatgy jtés Adat- készítés Adatbányászat Eredmények reprezentálása Üzleti alkalmazás Üzleti visszajelzés Üzleti cél 1.4. ábra. Az adatbányászat tipikus lépései A módszertanok kialakulása Ebben a részben az adatbányászat módszertanát, azaz az előbb ismertetett lépéseket és azok összehangolásának kérdését fogjuk tárgyalni a szokásosnál kicsit tágabb közelítésben. Részletesen foglalkozunk a hagyományos módszertanokkal, de megpróbálunk egy kis kitekintést adni az üzleti adatbányászati munka a közvetlen módszertanon túli kérdéseire is, illetve arra, hogy hogyan változnak, merre haladnak üzleti elvárások, hogyan integrálódnak az adatbányászati algoritmusok. Az egész könyvben gyakran használjuk az üzleti kifejezést. Természetesen a tárgyalt módszertani szempontok nem kizárólag üzleti problémák megoldására, hanem bármilyen más (pl. tudományos) probléma megoldására is alkalmazhatók. Ami miatt kitartunk az üzleti értelmezés, üzleti probléma stb. kifejezések használata mellett, az a némiképp profán hangzásukban keresendő: így talán világosabban elválik az adatbányászati probléma (aminek a módszertanáról beszélünk) és az a(z üzleti) probléma, amelynek a megoldására az adatbányászatot alkalmazzuk. 18
27 1. FEJEZET: BEVEZETÉS Milyen adatbányászati módszertant használ? [KDNuggets 2004-es felmérése 170 szavazat] CRISP-DM (72) 42% SEMMA (17) 10% A cég saját módszertana (11) 6% Saját módszertant (48) 28% Egyéb (10) 6% Semmilyen (12) 7% 1.5. ábra. Adatbányászati módszertanok Az alkalmazott adatbányászat meglehetősen komplex tevékenység. Egyszerre igényel informatikai és matematikai ismereteket, üzleti tudást és modellalkotási képességet. Látnivaló, hogy a sok széttagolt ismeretből kell valamilyen egységet alkotni, olyan eszközt, amelyikkel egységes módon lehet kezelni, megoldani különböző (üzleti) problémákat. Az adatbányászat mint fogalom kialakulása is az üzleti alkalmazáshoz köthető, hiszen egyébként a tudományos világban már rég(ebb) óta használt módszerek felhasználói jól megvoltak a maguk speciális algoritmusaival, amelyeket optimálisan alkalmaztak a maguk egyedi problémáira. A neuronhálós alkalmazások felhasználói kis valószínűséggel kerestek döntési fákat a problémáik megoldására, mert jó eséllyel már eleve kiválasztották a neurális hálókat, mint számukra optimális algoritmus családot. Másfelől a tudományos feladatok általában forrásadat szempontból is specializáltak, illetve általában jóval pontosabbak az előzetes elvárások és prekoncepciók azt illetően, hogy pontosan milyen változók használatával épül fel egy modell. A 90-es évek elején algoritmusok üzleti felhasználásának megindulásával tehát megjelent az adatbányászat mint fogalom, és elkezdődött a speciális adatbányászati célszoftverek kifejlesztése is. Lezajlott néhány projekt, és ekkor vált elodázhatatlanná valamilyen módszertan kifejlesztése is. Végül 1996-ban több iparág képviselői, valamint természetesen a legelső üzleti célú adatbányászati szoftver, a Clementine gyártói alakították ki azt a konzorciumot, amelyik meghatározta az iparágaktól független adatbányászati módszertan a CRISP-DM (Cross Industry Standard Process for Data Mining) leírását ( Emellett egy másik jelentős gyártó a SAS is meghatározta a saját módszertanát a SEMMA-t (Sample, Explore, Modify, Model, Assess) amely hasonlóan sikeresen alkalmazható, bár inkább talán az adatbányászati elemzés középponti részére, a technikai elemekre összpontosít. A KDNuggets 2004-es felmérése szerint a legelterjedtebb módszertan egyértelműen a CRISP-DM, bár figyelemreméltóan sokan használnak saját módszertant is (1.5. ábra). A következőkben összefoglaljuk az adatbányászati projektek ciklusát a CRISP-DM módszertan szemszögéből. Az 1.6. ábra jól szemlélteti ezt a ciklust, mely hat fázisból áll. Az ábrán a nyilak a leggyakoribb összefüggéseket és kapcsolatokat mutatják. Ezek sorrendje azonban nem merev, számos visszacsatolás lehetséges és szükséges az egyes lépések között. Az egyes fázisok kimenete, eredménye határozza meg a szükséges 19
28 1.3. ADATBÁNYÁSZAT MÓDSZERTANA Üzleti cél definiálása és megértése Adatok megismerése Eredmények üzleti célú alkalmazása Adatok Adatkezelés Adatbányászati modellek alkotása Eredmények üzleti célú kiértékelése 1.6. ábra. A CRISP-DM módszertan folyamatábrája következő lépéseket, a következő CRISP-DM fázist. A következő részfejezetek összefoglalják CRIPS-DM módszertan hat fázisát és a hozzájuk tartozó gyakorlati lépéseket és azok eredménytermékét Az üzleti cél definiálása és értelmezése Az adatbányászati projekt kifejezés hallatán elsőre azt gondolhatnánk, hogy ezekben a projektekben a munka túlnyomó része adatelemzésről, modellezésről szól. Kétségtelen, hogy a munka magját, központi részét ténylegesen ezek a folyamatok teszik ki. Ezek egyoldalú túlértékelése és előtérbe helyezése azonban tévutakra vihetik mind az elemzőket, mind az egész projektteamet és ezáltal magának a projektnek a sikerességét is. Jelen fejezet szerzőinek tapasztalatai is megerősítik azt a tényt, hogy egy adatbányászati projekt sikeressége szempontjából kulcsfontosságú és elengedhetetlen a kezdeti üzleti cél nagyon pontos meghatározása, a lehetőségek és korlátok felmérése, tudatosítása, a projekteredmények hosszútávú felhasználási tervének elkészítése. Mindezen feladatok időben is jelentős részt elfoglalnak a teljes projektre szánt idő- és erőforrás keretből. A pontosabb megértés kedvéért nézzünk két példát az üzleti cél megfogalmazására. 1., Telekommunikáció területén: 20 felületesen, azaz helytelenül megfogalmazott cél: Szükségünk van egy lemorzsolódás (churn) elemzésre, hogy lássuk, az ügyfeleink közül kiknek a legnagyobb az esélye, hogy adott időtávon felmondják szerződésüket cégünknél. ugyanez a cél kicsit pontosabban: Jelenleg évente 5%-os az ügyfél-lemorzsolódás.
29 1. FEJEZET: BEVEZETÉS Ezt az arányt szeretnénk javítani oly módon, hogy a legértékesebb és legveszélyeztetettebb ügyfeleinket megcélozzuk különböző kampányokkal. Ehhez tudjuk, mennyi idő és anyagi erőforrás keret áll rendelkezésünkre, és melyek a legfontosabb kommunikációs eszközeink. A kívánt cél eléréséhez szükségünk van egy adatbányászati elemzésre, melynek eredménye különböző veszélyeztetettségű ügyfélcsoportokat fog egy évre előremutatóan meghatározni. Ezeken belül várhatóan lesznek csoportok, ahol a lemorzsolódási veszély 25% körüli, és lesznek, ahol ez az érték leesik 1%-ra. Az elemzési eredményeknek oly módon kell előállniuk, hogy beépíthetőek legyenek a jelenleg használt kampánymenedzsment alkalmazásokba. Banki, hitelezési területen: felületesen, azaz helytelenül megfogalmazott cél: Az elmúlt öt évben, amióta gépjármű hitelezéssel foglalkozunk, összegyűlt kb ügyfelünk. Szegmentáljuk ügyfeleinket, mert ez hasznos lehet a jövőben. ugyanez a cél kicsit pontosabban: Minden évben három évre előre céltartalékot kell képeznünk az aktuális hitelállományunkra. Öt év után már rendelkezésünkre áll annyi szerződés és kockázati esemény, hogy ezek alapján szegmentáljuk ügyfeleinket oly módon, hogy a kapott szegmensek a lehető legerősebben széthúzzanak kockázati szempontból, valamint a szegmensek jövőbeni viselkedése számítható legyen, ezáltal a céltartalék képzésbe felhasználhatók legyenek. A szegmentálás során külön szempontként szerepeljenek a szerződésre, a szerződőre, illetve a hitelezett gépjárműre jellemző adatok, valamint szegmentáljuk az ügyfeleinket fizetési szokásaik és egyéb viselkedésük alapján is. A fenti példák természetesen még mindig nem pontosak, azonban rávilágítanak arra, hogy milyen módon kell az üzleti célokat megfogalmazni. A fázis gyakorlati lépései a következők: Üzleti célok megfogalmazása: Ahogy az eddigiekben is vázoltuk, az elemzők (és minden projekt résztvevő) számára elsődleges cél az üzleti távlatok, hosszútávú célok pontos ismerete, az, hogy mit kívánnak elérni a leendő felhasználók. Gyakran több üzleti cél is versenyben áll egymással, amelyeket a korlátok figyelembe vételével kell egyensúlyba hozni. Az elemző célja ebben a fázisban, hogy feltárja a projekt sikerességét befolyásoló tényezőket, azt, hogy milyen üzleti cél milyen feltételek mellett érhető el. Helyzetfelmérés: Ez a lépés az idő- anyagi- és erőforrások, korlátok, feltételezések és egyéb faktorok amelyek figyelembe vétele nélkül az adatelemzési célok és a projekt terv teljesítése lehetetlen részletes megismerését takarja. Itt kell feltárni a lehetséges nehézségeket, bökkenőket a lehető legpontosabb mértékben. 21
30 1.3. ADATBÁNYÁSZAT MÓDSZERTANA 1.7. ábra. Az üzleti cél definiálása és értelmezése Az adatbányászati célok definiálása: A már (üzleti terminológiákban) megfogalmazott üzleti célok lefordítása adatelemzési célokra (technikai terminológiák). A korábbi példánál maradva üzleti cél: A hosszútávú céltartalék képzés pontosítása a jövőbeni ügyletportfolió modellezésével. Ennek adatbányászati lefordítása: Képezzünk ügyfél szegmenseket, amelyek különböző kockázati szinteknek felelnek meg, valamint határozzunk meg viselkedés profilokat, amelyek segítségével különböző ügyletportfoliók esetén a hosszútávú kockázat előrejelezhető. Pontos projektterv készítése: A meghatározott adatbányászati (és ezáltal üzleti) céloknak megfelelő, részletes projektterv készítése. A projektterv specifikálja az elemzési lépéseket, valamint magába kell hogy foglalja a szükséges technikák és eszközök kiválasztásának folyamatát is A szükséges illetve rendelkezésre álló adatok megismerése Az adatbányászati projektek második fázisa az, ahol az adatok először színre lépnek. E lépés célja annak a feltárása, hogy a megfogalmazott feladatok megoldásában miként lehet az adatokat felhasználni. Ezek az elemzések nagyon gyorsan meglepetést is okozhatnak, amikor is kiderül, hogy az első fázisban megfogalmazott adatbányászati célok és a rájuk épülő üzleti célok eredeti formájukban nem valósíthatók meg. 22
31 1. FEJEZET: BEVEZETÉS 1.8. ábra. Adatok megismerésének lépései Ekkor egy rövidebb-hosszabb iterációs szakasz következik, amikor is az első fázisba vissza-visszalépve közös nevező alakul ki annak vonatkozásában, hogy mit szeretnénk elérni és ehhez milyen adatok állnak a rendelkezésünkre. De nagyon előre szaladtunk. A példából azonban már kiderül, hogy az adatbányászati projekt ezen második fázisának alapvetően kettős célja van: (i) előkeríteni (a megfelelő adattárházból, információs rendszerekből, egyéni táblákból stb.) és megismerni az adatokat, amelyek az első fázisban megfogalmazott célok eléréséhez szükségesek, valamint (ii) a szükséges adatok hiányossága, illetve további, az elemzésekbe korábban be nem számított adatok alapján további ötletek generálása az eredeti célok optimális módosítására. Az adatkörök megismeréséhez természetesen hozzátartozik az adatokhoz való hozzáférhetőség biztosítása (jogosultságok, elérhetési utak biztosítása). A fázis gyakorlati lépései a következők: Kiindulási adatok összegyűjtése: A projekt forrásokban meghatározott adatok összegyűjtése (illetve hozzáférés biztosítása). Ez a lépés tartalmazza az adatbetöltéseket is, amennyiben olyan eszközzel dolgozunk, ahol ez szükséges. Ehhez vélhetően már szükség lesz némi adattranszformációra is. Többszörös adatforrás használata esetén további feladat az adatok integrációja is. Rátekintés az adatokra: Az összegyűjtött adatok alapjellemzőinek (típusok, érték tartományok) vizsgálata és riportolása. 23
32 1.3. ADATBÁNYÁSZAT MÓDSZERTANA Alapstatisztikai jellemzők feltárása: Lekérdező (query), vizualizációs, leíró technikák segítségével az adatok alapstatisztikai értelmezése. Ez magában foglalja a legfontosabb paraméterek (mint pl. az előrejelzés célparaméterének) eloszlását, keresztkapcsolatok vizsgálatát, egyszerű aggregálások kiértékelését, tipikus vagy fontos alcsoportok alapstatisztikai leírását. Ezek az elemzések már elősegítik az adatbányászati elemzések végső céljainak elérését, valamint hozzájárulnak az adatminőségi vizsgálatok lefolytatásához, és a későbbi elemzésekhez szükséges adattranszformációs lépések definiálásához. Adatminőségi vizsgálatok elkészítése: Az adatok minőségének feltöltöttség, lefedettség, adathelyesség vizsgálata. Ellenőrizzük, vajon az adatok lefedik-e a vizsgálati alanyok teljes körét (megfelelően reprezentatív-e a mintánk), a különböző paraméterek mennyire feltöltöttek, a feltöltöttség aránya megfelelő-e az adatelemzések elvégzéséhez. Valamint azt vizsgáljuk meg, hogy az adatokban szereplő értékek mennyi hibás értéket tartalmaznak, és a hibákat milyen módon korrigálhatjuk. Fontos megjegyezni, hogy e lépés során arra is ügyelni kell, hogy milyen külső, azaz nem a vállalatnál, a vizsgált folyamatnál keletkező, adatok beszerzése szükséges az elemzésekhez. Például demográfiai adatok, tőzsdei adatok, árfolyam adatok mindmind szükségesek lehetnek, hogy elemezzük a vásárlóunk magatartását. Abban az esetben, ha az adat kiválasztási feladat sikeres elvégzéséhez nem rendelkezünk elegendő háttérismerettel, előfordulhat, hogy a későbbiekben végrehajtandó, szűken értelmezett adatbányászati tevékenységben fogjuk feltárni azokat az ismérveket, melyek gyűjtése és további elemzése szükséges Adatkezelés, adattranszformációk végrehajtása Ahhoz, hogy reális elemzés szülessen, szükséges az adatok tisztítása, a hiányzó értékekkel történő pótlása, illetve az eltérő típusú, eltérő helyről származó adatok integrálása. Abban az esetben, ha már egy jól funkcionáló adattárházban lévő adatok elemzése a feladat, akkor ez a lépés rendkívül egyszerű. Ha nem, akkor viszont egy összetett, időigényes feladat, mely a meglévő vállalati információs rendszerre támaszkodva kérdezi le a szükséges adatokat, generál jelentéseket. Elsőre meglepőnek tűnhet, de tapasztalati tény, hogy az adatbányászati projektek ezen fázisa teszi ki a teljes projektidő 60-70%-át. Megfelelően előkészített adatok nélkül nincs adatbányászat. Az esetek túlnyomó többségében érdemes létrehozni egy külön, kifejezetten adatbányászati elemzések támogatására szolgáló ún. adatbányászati DataMart-ot, adatpiacot. Ezen DataMart megalkotása akár külön projekt is lehet. Létrejöttével azonban minden további adatelemzés lényegesen felgyorsul, hiszen az egyes elemzések adatigényei között lényeges átfedések találhatók. De mi is ennek a DataMart-nak a lényege? A vállalatok 24
33 1. FEJEZET: BEVEZETÉS többségénél az elemzéshez szükséges adatok több rendszerből állnak elő. (pl. adattárház, számlázási rendszer, tranzakciós rendszer stb.). Másrészt ezen rendszerek felépítése adatbányászat szempontjából nem optimális. Az adattárházakban több száz adattábla található, ezek mindegyike csak egy-egy speciális jellegű adatkört tartalmaz. Az adatok tárolása adattár igény és elérhetési sebesség szerint optimalizáltak, és számos segédvagy kódtáblát tartalmaznak. Egy adatbányászati elemzés során ezen táblák szinte mindegyikéből szükségünk van adatokra, de általában csak táblánként néhány paraméterre. Nem nehéz elképzelni, hogy már önmagában ez a tény milyen bonyolulttá tenné az adatok elérését és elemzését. A adatbányászati DataMart néhány táblában tartalmazza az elemzéshez szükséges adatköröket, nem feltétlenül a legmegfelelőbb tárhelyen, de akár több száz paramétert egy-egy táblában minimális kódtáblával, és az elemző eszközök számára a leggyorsabban elérhető komplex formában. Ez a lépés még önmagában tartozhatna a projekt második fázisához is. Mi azonban azért említjük itt, mert az alapadatokon kívül az adatbányászati DataMart-ok tartalmaznak számos transzformált adatot is, folytonos értékkészletű paraméterek kategorizált párját, alapparaméterekből különböző függvényekkel származtatott új paramétereket, aggregálás útján számított paramétereket, és utólag tartalmazniuk kell az adatbányászati elemzések eredményparamétereit is, például szegmens azonosítókat, score-okat stb. Az a kérdés, hogy mely paraméterekből milyen módon hozzunk létre új paramétereket, már az adatbányászati elemzés szerves része. A fázis gyakorlati lépései a következők: Adatkiválasztás: A modellezéshez használt alapadatok kiválasztása. Szempont az adatbányászati cél, adatminőség, adattípus és érték-korlátok szerinti relevancia. Az adatkiválasztás mind paraméterekre (attributues), mind pedig rekordokra (cases) vonatkozik. Az elemezendő adatok kiválasztása nem teljesen triviális feladat, ugyanis nem mindig ismert, hogy egy adott probléma szempontjából milyen változók játszanak fontos szerepet. E jelenséget jól szemlélteti az alábbi ábra, mely rámutat arra, hogy ha egy egészségügyi adatokat tartalmazó adatbázis alapján a gyermekeket el szeretnénk különíteni a felnőttektől (természetesen az életkor ismerete nélkül), akkor erre a legalkalmasabb változó nem a testsúly és a testmagasság, hanem a nemi hormonok mennyisége. Adattisztítás: Az adatminőségnek a kiválasztott adatelemzési technika szerint elvárt szintre való emelése. Ez magában foglalja megfelelő adatminőségű adat részcsoportok kiválasztását, hiányzó adatok adott logikájú feltöltését, vagy olyan fejlett technikák alkalmazását, ahol a hiányzó értékek becslése a modellezésben történik. Alapvető statisztikákkal és ábrákkal előzetes képet alkothatunk róluk, 25
34 1.3. ADATBÁNYÁSZAT MÓDSZERTANA 1.9. ábra. Adatkezelés lépései ábra. Példa a megfelelő változók kiválasztásának jelentőségére 26
35 1. FEJEZET: BEVEZETÉS meghatározhatunk jelentősen elkülönülő adathalmazokat. Az üzleti szakértők folyamatos bevonásával biztosítható, hogy a különböző adathibákra, illetve a speciális adattárolási és kódolási konvenciókra már ebben a korai fázisban, a konkrét elemzések elkezdése előtt sor kerül. Az adatok egyszerűségük és látszólagos egyértelműségük ellenére is képesek sok hibát tartalmazni, és avatatlan kézben komoly kárt okozni. Egy ügyféltörzs például, amely hibásan írt postai címeket tartalmaz, minden egyes levél, számla kiküldésekor veszteséget okoz a vállalkozásnak. A közvetlen anyagi káron túl jelentős erkölcsi kár is éri a levélküldőt: hogyan bízzon az ügyfél abban a bankban, amelyben még a címét sem tudják helyesen leírni? Éppen ezért a leggyakoribb bár a klasszikus értelmezés szerint nem is igazán adatbányász feladat a törzsadatokat tartalmazó adatbázisok tisztítása. Példánkban elsősorban a rossz mezőbe írt adatok (pl. a házszámot az utcanév után írták, pedig volt rá külön mező) és az elírt utca- és közterületnevek javítását, tisztítását végzik a korszerű algoritmusok. Új paraméterek bevezetése: Származtatott paraméterek illetve rekordok bevezetése. Létező paraméterek értékeinek transzformációja. A transzformáció célja gyakran az adatok redukciója és kivetítése. A feladat szempontjából a legfontosabb változók feltárása (redukció), illetve esetenként a változók kombinációinak használata (projekció) olyan módszerek melyek az elemezendő változók számának csökkentésére hivatottak. Ennek a különösen fontos lépésnek a jelentősége Miller bűvös hetesével igazolható. George A. Miller, aki a Princeton Egyetem ma már nyugdíjas professzora, felismerte, hogy agyunk egyszerre 7 ± 2 fogalmat tud egyszerre kezelni. Azaz egy szabálybázisban nem szerencsés, ha több mint hét változó szerepel, ugyanis ez esetben a változók nagy száma a kapott modell érelemezhetőségét korlátozza. Továbbá motiváció, hogy a nyelvi szabályokon túl megértésünk leginkább képi alapokon hatékony. Ugyanakkor sajnos csak három dimenzióban tudunk otthonosan mozogni, azaz egyszerre csak három változó egymásra hatását tudjuk képi formában ábrázolni. E probléma kezelésére nemcsak a megfelelő mennyiségű változó kiválasztása lehet a megoldás, hanem az is, ha az eredeti változók közti összefüggések alapján, azok kombinációjaként (függvényeként) valamilyen új változókat vezetünk be. Ez történhet úgy, hogy egy alkalmasan illeszkedő hipersíkra vetítjük ki a többdimenziós adatainkat, és az e síkra kivetített adatokat ábrázoljuk két dimenzióban. E technikát főkomponens elemezésnek hívják (ld fejezet). Gyakran a változók közti kapcsolat nem lineáris, azaz nem lehetséges egy síkra vetíteni az adatokat. Természetesen az elmúlt években az ilyen esetekre is dolgoztak ki algoritmusokat az adatbányászattal illetve az alakfelismeréssel foglalkozók. Adatintegráció: Többszörös adatforrás adataiból építkezve új rekordok illetve paraméter értékek bevezetése. E lépés hasznos eszköze az úgynevezett linkanalízis, 27
36 1.3. ADATBÁNYÁSZAT MÓDSZERTANA ami több adatbázis rekordjainak egyeztetését, összerendelését jelenti. Ez általában cégek és/vagy informatikai rendszerek összevonásakor jelentkező feladat, de a hány ügyfelünk van? kérdés precíz megválaszolása is ezzel a módszerrel történik. Egy bank vagy biztosító több ponton is érintkezhet ugyanazzal az emberrel, hiszen lehet valakinek egyszerre életbiztosítása és gépkocsi biztosítása is, amelyeket különböző irodákban, eltérő információs rendszerekben, másmás ügyintéző rögzített, gyakran más-más helyesírással. Ilyenkor az adatbázisok egyszerű összeöntésével nem lehet megmondani, hogy pontosan hány ügyfele van a cégnek, és az ügyfél meglepve tapasztalja, hogy öt karácsonyi üdvözlőlapot kapott a biztosítójától, aki szemlátomást nem áll a helyzet magaslatán. Adatformátumok módosítása: Adattranszformációk, melyeknek során az értékkészlet és az adatok jelentése nem változik, csak a modellezéshez szükséges formátumba kerül (pl. egy ügyfélazonosító paramétert, amely egész számban van kifejezve, kezelhetünk numerikus értékként vagy egyedi azonosítóként, mint nem rendezett kategorikus adattípus). E részfolyamat eredménye az is lehet, hogy a feladat visszakerül a probléma specialistájához, jelezve hogy az adatok hiánya, jellege nem teszi lehetővé a korábban megfogalmazott feladat megoldását. Néhány esetben az is előfordul, hogy e lépés hatására maga a tevékenység, a folyamat fog megváltozni azért, hogy az jobban dokumentált, elemezhető legyen. E jelenség jól mutatja, hogy egy adatbányászati projektnek gyakran közvetett haszna is van, azaz az ügymenet és a folyamat elemzése ötleteket adhat annak átszervezésére, hatékonyságának növelésére, minőségbiztosítására Adatbányászati modellek alkotása Az adatbányászati projekt lelke, mondhatnánk. Az adatabányászat feladata tulajdonképpen a korábbi lépések során feldolgozott és transzformált adatokból az információk kibányászása. A legegyszerűbb, de egyben legbonyolultabb munkafolyamat. Egy jól előkészített adatkörön gyakorlatilag csak használni kell az adatbányászati termékek eszköztárát, tesztelni, mely algoritmusok és milyen beállítások mellett szolgáltatják a legjobb eredményeket. Technikailag tehát tényleg nem bonyolult eljárásokról van szó, és a mai adatbányászati termékek (pl. SPSS Clementine, amely egy az egyben épít a CRISP-DM módszertanra) beépített algoritmusai legtöbbször alapbeállítás mellett is mind matematikai, mind üzleti szempontból nagyon jó eredményekkel szolgálnak. A nehézség akkor kezdődik, ha az első próbálkozásokra nem kapunk megfelelő modelleket. Ezen esetekben leginkább a hosszú évek tapasztalata fog segíteni. 28
37 1. FEJEZET: BEVEZETÉS ábra. Modellalkotás lépései A fázis gyakorlati lépései a következők: A megfelelő modellező technika kiválasztása: A modellezési fázis első lépése a megfelelő modellalkotási technika kiválasztása. Ez nem egyenlő a Business Understanding fázisban kiválasztott adatbányászati eszközzel, ugyanis arra épül, szigorúbban véve arra korlátozódik, hiszen ebben a fázisban a korábban kiválasztott eszköz algoritmus tárából választunk úgy mint például C5.0 döntési fa algoritmus vagy back propagation neurális háló. Az esetek többségében érdemes több algoritmussal is dolgoznunk, hiszen alkalmazási területeik átfednek, és különböző esetekben más és más szolgáltathat jobb eredményt. E lépésben hasznos az adatok feltáró jellegű elemzése, a modell felállításához használt hipotézisek felállítása. Olyan kategória változók elemzésére, mint például férfi-nő, egyedülálló-házas, alap- közép- vagy felsőfokú végzettségű az ügyfél, teljesen más jellegű algoritmusok szükségesek, mint amilyenek folytonos numerikus értékek elemzéséhez, például a különböző tőzsdeindexek időbeli alakulását jellemző idősorok közti összefüggések feltárásához kellenek. Modell tesztelési módszer meghatározása: Mielőtt hozzálátnánk a modellek alkotásához, el kell döntenünk, hogy a modellek eredményét milyen módon mérjük, teszteljük. Például egy ún. supervised (felügyelt) klasszifikációs algoritmus (pl. döntési fa) esetében általános módszer a találati arány mérése. Ehhez és más 29
38 1.3. ADATBÁNYÁSZAT MÓDSZERTANA technikákhoz is a rendelkezésre álló adatokból létre kell hoznunk egy ún. tanuló mintát, ezeket használva hozzuk létre a modelleket és egy teszt mintát, amivel a modellek tényleges pontosságát mérjük. Ezen halmazok méretének nem feltétlenül kell megegyezniük (ld fejezet). Az adatok, illetve az eredmények megjelenítése rendkívül fontos technikája a modellek értékelésének, mely vizuális megjelenítés gyakorta informatívabb a különböző statisztikai mérőszámoknál. Modellalkotás: A kiválasztott modellező algoritmus alkalmazása. Ez a lépés magának a mintázatnak keresése, mely az előző lépésben meghatározott formában (döntési fa, szabálybázis, csoport) fellelhető az adatok között. E lépés teljesítményére leginkább az van hatással, hogy az adatokat elemző személy az előző lépésekben helyesen választotta-e ki az elemezendő adatok részhalmazát, illetve megfelelő adatbányászati eszközt választott-e az adatbányászati feladatához. Modellek kiértékelése: Ez a kiértékelő lépés a feltárt ismeretek megjelenítését, azaz vizualizációját is magában foglalja. Ez különösen fontos a csoportosítási, illetve az asszociációs adatbányászati feladatok eredményeinek feltárásában, ugyanis az emberek számára a feltárt tudáshalmaz leginkább nyelvi szabályok és beszédes, 2-3 dimenziós ábrák formájában adható át leginkább. Az adatbányászati elemző modell értelmezését három tényező befolyásolja: a szakirányú (szakértői) tudás, az előre meghatározott adatbányászati sikerkritériumok és a tesztelési eredmények. Az elemző a modellek és az algoritmusok jóságát elsősorban technikai szempontból ítéli meg, majd a későbbiekben egyeztet a felhasználói terület szakértőivel és üzleti elemzőkkel. Ezen két utóbbi lépés más a következő Evaluation fázisba vezet át. Az adatbányászati elemző tehát technológiai szempontok alapján de az üzleti célt szem előtt tartva rangsorolja a kapott modelleket. Gyakorta már ebben a lépésben fény derül arra, hogy a meglévő adatok alapján az alkalmazott adatbányászati technikák nem alkalmasak a kérdéses tudás feltárására, illetve megbízható modell előállítására. Ebben az esetben szintén vissza kell térni az előző lépésekhez Az eredmények üzleti szempontú kiértékelése Az, hogy matematikai szempontból nagyon jó modellek állnak rendelkezésünkre, még nem jelenti helyből azt, hogy azok üzleti szempontból is hatékonyan alkalmazhatók. Például a modell nagyon bonyolult szabályrendszereket tartalmaz, amelyekkel lehetetlen üzletileg bármit is kezdeni. Vagy a modellekben fontosnak adódott paraméterek üzletileg nem kezelhetők, nincs a szabályok megfogásához, kiaknázásához megfelelő kommunikációs eszköz. Az is előfordulhat, hogy a kapott modellek ellentmondanak az előzetes feltételezéseknek, és ezáltal felborul az üzleti terv. A fentiek előfordulása esetén nincs baj, csak vissza kell lépni néhány fázist. A szituációtól függően vagy az 30
39 1. FEJEZET: BEVEZETÉS ábra. Üzleti szempontú kiértékelése lépései üzleti célokat kell újrafogalmazni, vagy további adattranszformációkra van szükség, de esetenként elég, ha csak továbbgyúrjuk a modelljeinket. A fázis gyakorlati lépései a következők: A modellek üzleti szempontú értékelése: Az előző fázis modell kiértékelése a modellek pontosságával és lefedettségével foglalkozott. Ebben a fázisban a kérdés, hogy a modellek milyen mértékben felelnek meg az előzetes üzleti elvárásoknak, és esetleges hiányosságát is ilyen szempontból írja le. Amennyiben a dedikált források megengedik, a modellek éles környezetben is tesztelhetők és eredményességük lemérhető. A teljes elemzési folyamat felülvizsgálata: Ezen ponton már rendelkezésünkre állnak modellek, amelyek mind technológiailag, mind üzletileg megfelelnek a korábban kitűzött céloknak. Fontos azonban megvizsgálni, hogy a teljes elemzési folyamat során mindent az előzetes tervek szerint végeztünk-e. Például a modellekben azokat az adatokat használtuk-e fel, amelyekre hosszútávon is támaszkodhatunk, a kiértékelésből nem hagytunk ki egyetlen érintett felet sem stb. A következő lépések meghatározása: Az előző két pont eredményének függvényében el kell dönteni, mi legyen a következő lépés. A projektcsapat eldönti, hogy befejezi-e a projektet, és az eredményeket továbbadja felhasználásra, vagy a felhalmozott információkra építve újabb kérdéseket és feladatokat definiál. Ezen esetben fel kell mérni a megmaradt erőforrásokat, ennek eredménye befolyásolhatja döntésünket. 31
40 1.3. ADATBÁNYÁSZAT MÓDSZERTANA Az adatbányászati algoritmusok fejlesztői rendkívüli módon törekednek arra, hogy az algoritmusok ne csak pontos becslésekre alkalmas modelleket generáljanak, hanem a modellek áttekinthetőek, könnyen értelmezhetőek legyenek. Mivel mi emberek a legkönnyebben képekben illetve szöveges úton tudjuk feldolgozni az információkat, az algoritmusok által szolgáltatott eredmények általában nyelvi szabályok vagy könnyen áttekinthető grafikonok, ábrák, például döntési fa formájában adódnak. Rendkívül fontos, hogy az eredményül kapott ábrák, szabályok a modellezés technikai hátterének ismerete nélkül is értelmezhetőek, tetszetősek legyenek, és azt a nyelvezetet használja, amely szakmával kapcsolatos probléma elemzése a cél, ugyanis a végfelhasználó ezen jelentések áttekinthetősége alapján ítélkezik a projekt eredményességéről. Természetesen ez a lépés is iteratív, ugyanis az adatbányász specialista és a probléma szakértőjének a közös munkáját igényli annak érdekében, hogy az algoritmus eredményei a végfelhasználó számára értelmezhető formára fordítódjanak, illetve a végfelhasználó tud visszajelzést adni az eredmény hitelességvel kapcsolatosan. Ez az iteráció különösen akkor fontos, amikor az eredmények bár technikailag és statisztikailag érvényesek és pontosak, de az adott szakma, felhasználó számára nem bírnak információ értékkel (pl. triviális összefüggések igazolódnak), vagy nem a vizsgált problémára vonatkoznak (pl. a vásárlóink szokásainak feltárása helyett a vállalat által tudatosan alkalmazott üzleti stratégia által generált összefüggéseket tártunk fel) Az adatbányászati eredmények üzleti alkalmazása Miután minden résztvevő tisztázta a generált eredmények jelentését, a feltárt információ alkalmazása következik. A feltárt információ alkalmazása általában valamilyen döntéshez köthető, mely döntések természetesen nem kizárólag a feltárt információ alkalmazására szorítkoznak, így az adatbányászat eredményének gyakorlati haszna ritkán mérhető közvetlenül. Például, ha a feladat egy adatbázisból a potenciális ügyfelek kiválasztása egy marketing kampány céljára, akkor ezzel párhuzamosan döntést kell hozni arról is, hogy milyen eszközökkel közelítsünk a kiválasztott ügyfelekhez. Az adatbányászati projektek ezen fázisa adja az egész projekt értelmét. Az adatbányászati modellek felhasználásának több mélysége létezik. Kezdve egy egyszerű célcsoport leválogatástól a rendszeresen frissített modellekig, amelyeket saját fejlesztésű alkalmazások vagy meglévő kampánymenedzsment eszközök közvetlenül használnak. Ma már kifforrott változatban is megjelent az alkalmazást megkönnyítő, automatizáló termékek új családja. Ilyen például az SPSS PredictiveMarketing kampánymenedzsment eszköze, amely kampányok optimalizációjára szolgál, és ehhez közvetlenül használ fel SPSS Clementine adatbányászati eszközben létrehozott modelleket. 32
41 1. FEJEZET: BEVEZETÉS ábra. Az alkalmazás lépései A fázis gyakorlati lépései a következők: Az üzleti alkalmazás megtervezése: Ebben a lépésben a kiértékelések eredménye alapján megtervezzük, hogy a modelleket milyen módon építjük be üzleti folyamatainkba. Ez természetesen már körvonalazódott az üzleti cél definiálásának fázisában. Most szükséges a pontos terv elkészítése. Alkalmazás fenntartás és monitoring: Az alkalmazás fenntartásának biztosítása és monitoringja abban az esetben fontos, ha maga az alkalmazás a cég mindennapi üzleti folyamataiba épül be. A fenntartás és modell frissítés stratégiájának megtervezése segít elkerülni a már érvényességét vesztett modellek hosszabb távú alkalmazását. A tervezésben fontos szerepet játszanak az elemzési modelleket magukban foglaló alkalmazások sajátosságai. Projekt tanulmány elkészítése: Az adatbányászati projekt végén a projekt csapat elkészíti a végső tanulmányt, amely tartalmazza a projekt lépéseinek és eredményeinek összefoglalását, valamint a jövőben hasznosítható projekt (technikai) tapasztalatokat. A projekt felülvizsgálata: Mint minden más projektben, a hagyományos projekt menedzsment lépéseinek megfelelően összefoglaljuk a pozitívumokat és a felmerült problémákat. Mi ment jól a projekt során, és melyek voltak azok a lépé- 33
42 1.3. ADATBÁNYÁSZAT MÓDSZERTANA sek amelyek felülvizsgálata és továbbfejlesztése szükséges. Ebben a lépésben az alkalmazási oldalról történik visszacsatolás az üzleti intelligencia rendszer felé. Például egy marketing kampány esetében összehasonlításra kerül, hogy az ügyfelek miként reagáltak a valóságban, illetve az adatbányászati modell szerint. Ezen összehasonlítás új modellek készítésére sarkalhat, a hibásan becsült esetek elemzése új, fontos meghatározó tényezőket tárhat fel, mely tényezők akár új üzleti célként is megfogalmazódhatnak. Ez a lépés a projekt összes szereplőjét érinti. A szakértő értékeli a feltárt ismereteket, az adatbányász specialista a modell megfelelőségét vizsgálja meg, és olyan adatokat generál, melyek az adatbázis adminisztrátor által menedzselt adattárházba visszakerülnek. Abban az esetben, ha az elvárt eredmények nem teljesülnek, vissza kell térni az előző lépésekhez. Előfordulhat az is, hogy az elvárások nem voltak reálisak, a modell volt nem megfelelő, vagy maga az elemzett folyamat változott meg az adatbányászati modell megalkotását követően. Bár a fenti, részletes módszertani ismertetés talán csalóka, az adatbányászati elemzések csupán egy része hagyományos elemzés, amelynek végterméke egy vagy több modell és egy kupac projektdokumentáció. A modell ezután beépítésre kerülhet. Általában valamilyen létező informatikai rendszerbe integrálják, például ilyen lehet egy CRM adatpiac. Leggyakoribb esetben egy adattábla tartalmazza az összes, a modellhez szükséges változót, majd a modell futtatása után ezekhez hozzáadódik a modell által generált változó (szegmens besorolás, vagy score érték). A legtöbb üzleti megvalósítás esetén a modellt rendszeresen frissíteni kell. Ekkor természetesen az elemzés jelentősen egyszerűsödik, általában elegendő a konkrét modellek újrafuttatása, ez akár nem tipikusan automatizálva is elvégezhető. Egyes rendszerekben igény van a rendszer online reakciójára. Klasszikus példa erre az amazon.com ajánló rendszere, amely az adott vásárláshoz hasonló korábbi vásárlások, illetve a vásárló előélete alapján ad különböző ajánlásokat. Másik példa a bankkártya műveletek figyelése, amikor egy korábban összeállított szabályrendszer alapján figyelik a készpénzfelvételi vagy vásárlási tranzakciókat. A kifinomultabb megoldásokban a szabályok érzékenységi küszöbértéke változhat automatikusan. Egyes megoldásokban akár a modell is finomodhat menet közben, emberi beavatkozás nélkül. A legfejlettebb mai eszközök nemcsak a hagyományos elemzést, hanem ezeket a részben vagy egészben automatizált megoldásokat is támogatják. A fent tárgyalt klasszikus módszertan ilyenkor persze nem követhető Ami a módszertanon túl van az adatbányászat csupán eszköz Ahogy ez a kötet is bizonyítja, az adatbányászat összetett diszciplínává fejlődik, saját szakértői tudással. Ez a dinamizmus időnként kissé elvonhatja a figyelmünket a lényegről: az adatbányászat mégha nagyon összetett folyamat is csupán egy segédeszköz, egy olyan új módszer, amelynek segítségével jobb, (optimálisabb, hatékonyabb, újabb) 34
43 1. FEJEZET: BEVEZETÉS modelleket állíthatunk fel, újabb ismereteket szerezhetünk a vizsgálat tárgyáról. Tudomásul kell venni, hogy a cél nem többet jelent (de kevesebbet sem) mint praktikusan alkalmazható modelleket építeni. Mielőtt szakértőként tizedszázalékokban mérhető eredményű, látványosan kifinomult modelleket építenénk, nem árt újra és újra végiggondolni, hogy az eredeti célt nem érjük-e el egy jóval szűkebb eszköztárt felvonultató, ám esetleg a felhasználó számára is jól értelmezhető vagy jól lefordítható megoldással. A tapasztalat szerint az esetek túlnyomó többségében ez utóbbi a célravezető. Ide kívánkozik egy elméleti megjegyzés, ami jól példázza, hogy a gyakorlati kívánalmak milyen mélyen visszanyúlhatnak akár az algoritmusok megválasztásáig is. Általában a neurális hálókat sok probléma megoldására matematikai értelemben a legjobbnak mondják. Bár adekvát használatuk komoly szakértelmet igényel, a futásidejük is tekintélyes (nem polinomiális) lehet, azt várnánk, hogy szerepük a hardverek teljesítményének folyamatos növekedésével egyre nő. Ez azonban nincs így, aminek fő oka a neuronhálók nehéz interpretálhatósága. Hiába is jönne ki a legjobb eljárásnak egy neurális hálós modell, ha nemigen tudunk ennek üzleti értelmezést adni. Kivétel lenne, ha annyival jobb eredményt kapnánk neurális hálók alkalmazásával, ami ezt a hátrányt zárójelbe tenné, de valós esetekben ilyen nem nagyon fordul elő. Ha mégis felhasználjuk a neurális hálók eredményét, akkor gyakran segítjük az eredmények magyarázatát azzal, hogy a neurális modellen egy további, jól értelmezhető tipikusan döntési fa algoritmust futtatunk, amelynek kimenetét aztán könnyen értelmezzük. Ezekhez köthető még a technocentrikus és az automatizált adatbányászat problémája. A két típus két egymással ellentétes hozzáállást jelöl. A technocentrikus közelítés nemcsak a modellek jóságának második tizedesjegyen túli finomításában merül ki, hanem átsugárzik az eredmények interpretációjára is. Az adatbányászati megoldások felhasználói eléggé el nem ítélhető módon a legritkább esetben kíváncsiak az egyes modellek pontos paraméterezésére, a lokális optimumok keresésének, illetve a klaszter szeparálás, vagy a döntési fa szétvágás mélyebb kérdéseire. Világos modelleket igényelnek, amelyek könnyen fordíthatók például üzleti akciókra ( Kovács János a C5 szegmensbe esik, neki az A típusú életbiztosítást ajánljuk ). Ne habozzuk tehát a projekt vége felé sűrűn forgatni Occam borotváját, és hagyjuk el a modellek lényegtelenebb elemeit. Általános ököl-szabályként elmondható, hogy induljunk akár bemeneti változóból, a jó modell a végén 6-8 lényeges, üzleti tartalommal is bíró, összevont változót tartalmaz. A másik szélsőség az automatizált adatbányászat. Egyes területeken vannak olyan jól sztenderdizált elemzési feladatok, például a telekommunikációban a lemorzsolódás (churn), vagy banki területen a hitelelbíráló (credit scoring) rendszerek, amelyekben az egyedi megvalósítások szoros analógiát mutatnak. Hasonló a bemenő adatok köre, és hasonló a piac is, tehát a modellek is hasonló elemeket fognak tartalmazni. Az egyes szállítók már ágazatspecifikus adatmodelleket és template-eket kínálnak az elemzési folyamat felgyorsításához. Ezekkel elsősorban a hosszú adatelőkészítési folyamat rövidíthető le. Csábító lehetőség, hogy a modellezési fázison is gyor- 35
44 1.4. ADATELEMZŐ ESZKÖZÖK sítsunk, és kétségtelen, hogy használható modellek optimális esetben akár néhány nap alatt is előállíthatók. Ennyi idő azonban kevés ahhoz, hogy a modelleknek plauzibilis üzleti értelmezést adjunk, a modellezésre fordított további idő az értelmezhetőség révén megtérül Adatelemző eszközök Általános áttekintés Az adott adatbányászati eszköz némiképp meghatározza a követhető módszertant is. Eleve kevés az olyan eszköz, amelyik önmagában támogatja az adatbányászati folyamat minden lépését. A nem adatbányászati célszoftverek, az általános célú adatkezelők (pl. az MS Excel), vagy programozási keretrendszerek (pl. MATLAB) használhatóak adatbányászatra, mint még sok minden másra is de természetesen nem a legmegfelelőbb eszközök, és robusztus alkalmazások építésénél könnyen alapvető problémákba ütközhetünk. A legtöbb probléma persze több vagy kevesebb programozási munkával megoldható, de az üzleti felhasználásban ezek az eszközök nemigen kerülhetnek szóba. Ennek ellenére könyvünk számtalan példát épít EXCEL és MATLAB programokra, ugyanis ezen eszközök elterjedtsége és egyszerűsége lehetővé teszi az adatbányászathoz kapcsolódó algoritmusok demonstratív, kézzelfogható és közvetlenül tovább fejleszthető bemutatását. A következő népes csoport a kisebb, jellemzően desktop (vagy standalone) szoftverek, amelyek gyakran komoly eszköztárral rendelkeznek. Ilyenekre sok példa van, (pl. SPSS Classification Trees, Statistica Dataminer, DataScope) ezekkel általában megbízhatóan elvégezhetőek kisebb elemzések, változó mértékben támogatják a módszertani lépéseket, bár az elemzések középponti részét mindegyikük támogatja. Több eszköz (SPSS, Statistica) közülük eredendően igen komoly statisztikai repertoárral rendelkezik, ami általában véve előnyt jelent, bár az adatbányászatban néhány módszertől (pl. a különböző dimenzióredukciós eljárások) eltekintve relatíve ritkán van szükség komplett statisztikai fegyverzetre. Az adatelőkészítési vagy az automatizációs lépéseket ezek az eszközök általában nem támogatják közvetlenül. A másik korlát az egyes termékeknél változó mértékben az adatkezelés skálázhatósága, a nagy mennyiségű adatok kezelése. Korábban említettük, hogy az elemzési munkát időigényes adatelőkészítési, adatpreparációs lépések előzik meg, ezért az igazán nehézsúlyú eszközökben az algoritmusok mellett jelentős szerepet kapnak ezek a funkciók is. Az egyik megoldási lehetőség az lehet, amikor egy elterjedt adatbáziskezelőhöz integrálnak adatbányászati eszközöket. Így jöttek létre az IBM Intelligent Miner, az NCR Teraminer és a SAS Enterprise Miner nevű eszközei, valamint az MS SQL Server és az Oracle is tartalmaznak adatbányászati eszköztárakat. Ezek az eszközök alapvetően támaszkodnak az adatbázis környezetre, az adatelőkészítés és preparáció is SQL-ben és/vagy rendszer- 36
45 1. FEJEZET: BEVEZETÉS specifikus sciptnyelvben történik. Az Intelligent Miner és az Enterprise Miner is egy Java alapú grafikus felhasználói felület, amely alatt tulajdonképpen az adatbázis-nyelv eljárásai futnak. A felületen vizuális folyamatábraként jelennek meg az adatelemzés és modellezés lépései. (Az Oracle a korábbi, hasonló jellegű, Darwin nevű termékének a fejlesztésével leállt.) Ezen eszközök mindegyike képes az adatbányászati módszertan minden lépésének teljes támogatására, bár általában a grafikus felületeken inkább csak a közvetlen elemzési lépéseket végzik néha még azt sem, az adatelőkészítésre, és még inkább az automatizációra már az adatbázis rendszer más elemeit, önálló modulokat vagy a rendszer scriptnyelvét használják. Ez nem feltétlenül jelent hátrányt, mert ezeknél az eszközöknél az adatbányászat szorosan a vállalatok adattárházaihoz, adatpiacaihoz kötötten zajlik. Az SPSS Clementine nevű terméke egy kicsit elkülönül az eddig tárgyalt típusoktól. Ez a legrégebb óta fejlesztett üzleti célú adatbányászati eszköz, első verziója ben jelent meg. Kezdettől fogva alapvető jegye, hogy az adatelőkészítés és elemzés végig egy kifinomult vizuális programozási felületen kezelhető. A másik alapvető tulajdonsága, hogy nem szorul közvetlenül adatbázis háttérre, bár az összes nagy adatbázissal kapcsolható, a legújabb verziókkal a grafikus felületről menedzselve már a három legelterjedtebb adatbázis kezelőben akár közvetlenül futtathatunk SQL scripteket (SQL pushback), és használhatjuk azok saját beépített adatbányászati algoritmusait is (in-database-mining). Az eszköz nyitottságának másik jellegzetessége hogy rendkívül egyszerűen illeszthetőek be külső akár saját fejlesztésű algoritmusok vagy komplex adatkezelési eljárások is, amelyek aztán a grafikus felületen ugyanúgy használhatók, mint a Clementine saját node-jai (1.14. ábra). Természetesen ez az eszköz is több különböző módon támogatja az automatizálási lépéseket. Független elemzések (pl. META Group, 2004) sok különböző szempontot mérlegelve jelenleg az SPSS Clementine-ját és a SAS Enterprise Miner-ét tartják a legfejlettebb eszközöknek, melyet a felhasználók száma is jól reprezentál (1.15. ábra) WEKA Minden egyes példát, amit a könyvben bemutatunk, szeretnénk közvetlenül elérhető szofvereken bemutatni. A kötetben több programot is használunk majd, melyeket az Olvasó a könyv honlapjáról is elérhet. Ezek közül az alkalmazások közül e fejezet hátralévő részében a WEKA adatbányászati program és a Microsoft Excel-be beépülő modulok lehetőségeit fogjuk röviden bemutatni. A WEKA, teljes nevén Waikato Environment for Knowledge Analysis (Waikatoi Tudásfeltáró Eszköztár), egy ingyenes, mindenki számára megszorítások nélkül hozzáférhető, nyílt forráskódú JAVA nyelven írt programcsomag, amit a Waikato Egyetemen fejlesztettek Új-Zélandon, A projekt jelképe az ugyancsak WEKA-nak nevezett madár, aminek nagyon különleges természete van, repülni nem tud, és csak Új Zélandon 37
46 1.4. ADATELEMZŐ ESZKÖZÖK ábra. Az SPSS Clementine node-jai Milyen adatbányász eszközt használt 2005-ben [KDNuggets 2005, 376 szavazó, 860 szavazat] említés SPSS Clementine 135 SPSS 96 Excel 78 CART/MARS/TreeNet/RF 69 SAS 53 SAS Enterprise Miner 49 Saját program/kód 39 Egyéb ingyenes eszköz 34 Insightful Miner/ S-Plus 32 Statsoft Statistica 30 Weka 30 ThinkAnalytics 26 C4.5/C5.0/See5 25 R 25 Microsoft SQL Server 23 Other commercial tools 23 MATLAB 16 Mineset (PurpleInsight) 16 Xelopes 16 Oracle Data Mining 10 Gornik 8 KXEN 7 IBM Iminer 5 Angoss 3 Equbits 3 Fair Isaac 3 GhostMiner 3 Megaputer ábra. Az adatbányászati eszközök elterjedtsége. 38
47 1. FEJEZET: BEVEZETÉS ábra. WEKA Explorer található meg a világon. Mivel a fejlesztés JAVA nyelven történik, a WEKA rendelkezik azokkal az előnyökkel és hátrányokkal, amelyek egy ilyen programoz hozzátartoznak. Platformtól függetlenül használhatjuk a programot akár Linuxon, akár Windows környezetben, ha rendelkezünk a megfelelő verziójú Java Runtime Environment-tel. Objektum orientált moduláris felépítése segítheti a további fejlesztést. A köztes virtuális gép használata kissé lassítja a működtetését, de a mai számítási körülmények ezt már jelentéktelenné teszik. A WEKA Explorer segítségével, hasonlóan az Clementine-hoz, végig követhetjük a tudásfeltáró folyamat lépéseit egészen az előfeldolgozástól az eredmények megjelenítésig. Három forrásból tölthetjük be az adatokat: fájlból, URL-en keresztül, adatbázisból JDBC segítségével. A WEKA a következő formátumokkal boldogul: ARFF (saját formátum), CSV (vesszővel vagy TAB-bal határolt adatsor), C45 names (.data és.names), Binary serialised instances (.bsi) típusú fájlok, illetve JDBC-n keresztül relációs adatbázisok adataihoz is hozzáférhet. Részletes információt a WEKA honlapjáról kaphatunk: Az internetes dokumentációt automatikusan generálták a forráskódból, ezért akkor is érdemes ezt a dokumentációt használni, ha csak parancssorban használjuk a WEKA-t, mivel ez egy teljes lista ez elérhető algoritmusokról. Folyamatosan növekszik, és mindig naprakész. 39
48 1.4. ADATELEMZŐ ESZKÖZÖK Excel és alkalmazásai Az Excel Adatok főmenüjéből számtalan, adatok elemzésére és előfeldolgozására alkalmas eszköz érhető el. Ezek közül a legfontosabb a Kimutatás vagy Kimutatásdiagram, amit másnéven Pivot táblának is neveznek. Ezt az interaktív adatelemző eszközt részletesen a 2.4. fejezet fejezet mutatja be. Az Excel általánosan alkalmazott függvényei mellett további, általában Visual Basic programba ágyazott fejlesztéseket is használhatunk az összetettebb feladatok megoldására. E beépülő modulokat (Add-in) az Excel Eszközök menüjében a Bővítménykezelő menüpontból lehet installálni. A könyvben a következő modulokat alkalmazzuk: Adatelemzés (Analysis Toolpak) Add-in: Az Excel programcsomag telepítő CDjéről elérhető Add-in összetett statisztikai elemzések elvégzését teszi lehetővé (pl. többváltozós lineáris regresszió). Solver Add-in: Az Excel programcsomag telepítő CD-jéről elérhető Add-in nemlineáris, korlátos optimalizációs feladatok megoldását teszi lehetővé. MATRIX and LINEAR ALGEBRA Package For Excel segítségével egyszerűen hajthatunk végre a lineáris algebra eszköztárába tartozó mátrix műveleteket. A csomag ingyenesen használható, és letölthető a könyv honlapjáról. Optimiz Tool for Excel segítségével egyszerűen oldhatunk meg összetett nemlineáris optimalizációs, illetve regressziós feladatokat. A csomag ingyenesen használható és letölthető a könyv honlapjáról Alkalmazott adatsorok A könyvben elsősorban olyan egyszerű, könnyen áttekinthető adatsorokat elemezünk, melyeket széles körben használnak a tudományos kutatók és adatelemzők különféle publikációk készítése során. Ezek és más ilyen kutatási célú adatsorok részletes ismertetéssel a könyv honlapjáról tölthetők le, így ebben e részben csak röviden mutatjuk be őket. 40 IRIS adatsor: Az IRIS adatsort R.A. Fisher és Michael Marshall készítették 1988 júliusában. Az adatsor az Iris nevű virágok tulajdonságait gyűjti össze, nevezetesen a csészelevél (sepal) és a sziromlevél (petal) szélességét és hosszúságát tartalmazza centiméterben. A Setosa, Versicolor, Virginica a virág alfajtákat jelenti, mindegyik fajtából rekorddal. Ezek az értékek adják a csoportosítások és az osztályozások alapját. WINE adatsor: A WINE adatsor borok kémiai analízisének eredményeit tartalmazza, melyek Olaszország egy adott területéről, de három különböző gazdától
49 1. FEJEZET: BEVEZETÉS származnak. Az adatokat Forina M., Stefan Aeberhard és mások gyűjtötték 1991 júliusában. 13 összetétel minőségét vizsgálták meg, és három osztályba sorolták az egyes borokat. Az első attribútum tartalmazza az egyes osztályokat (1-3). A rekordok száma osztályonként: 59, 71 és 48. AUTO-MPG adatsor: Az adatsor autók városi üzemanyag fogyasztásának előrejelzésére szolgál (mérföld per gallonban: mpg). 3 diszkrét és 5 folytonos értékű attribútumot tartalmaz. Az attibútumok nevei sorban: mpg, cylinders (hengerek száma), displacement (űrtartalom), horsepower (lóerő), weight (súly), acceleration (gyorsulás), model year (gyártási év), origin (származás), car name (autó neve). Az autók nevét többnyire nem használjunk, inkább a származásukat, ahol 1=USA, 2=Európa, 3=Japán. 41
50 1.4. ADATELEMZŐ ESZKÖZÖK 42
51 2. fejezet Adattárházak és kiaknázásuk A cégek adatvagyonából bányászattal kinyerhető tudás, a rejtett összefüggések feltárása az előre megtervezett, rendszeres jelentések, valamint a döntéstámogatás más hagyományos eszközei által biztosított üzleti előnyök mellett jelentős hasznot hozhat. Az üzleti szempontból értékes összefüggéseket feltáró adatbányászat az adattárház technológia egyik lényeges hatásnövelő, funkcionális eleme: ha ugyanis a felhasználó sok pénzért, nem kevés fáradsággal adattárházat épít, abban sokkal hatékonyabban lehet adatbányászkodni, hiszen számos integrációs, adattisztító és adatminőség-javító munkát már elvégeztek a rendszer létrehozásakor. Az adattárház nem más, mint egy egységesített, megtisztított, a felhasználói szempontok szerint rendszerezett adatbázisrendszer, ami a vállalat szakemberei számára fontossággal bíró aktuális és múltbeli adatokat tárol. A legfejlettebb adatbázisok nemcsak számokat és szövegeket tudnak tárolni, hanem képeket és egyéb dolgokat is. A belső vállalati rendszerekben keletkező és a külvilágból összegyűjtött adatokat meghatározott időszakonként (pl. óránként, naponta, hetente) bemásolják az adattárházba. A döntéshozók így anélkül érhetik el őket, hogy a vállalat operatív rendszereinek teljesítményét befolyásolnák, működésüket megzavarnák. Az adatokat olyan módon standardizálják és rendezik, hogy a vállalat különböző pontjain alkalmasak legyenek elemzések elvégzésére és döntések támogatására. Vizuálisan úgy lehet elképzelni a dolgot, mint egy modern raktárt polcokkal, rekeszekkel, vonalkódokkal és mindenféle technikai berendezésekkel felszerelve, ahol nem almát, körtét vagy éppen porszívót tárolnak, hanem adatokat. Témánk szempontjából az adattárház némi képzavarral nem egyéb, mint egy jól előkészített adatbánya, ahol a bányászok teljes fegyvertárukat bevethetik. Az adattárház megléte azonban nem előfeltétele a tudás, a jövőbelátó képesség megszerzésének: az adatbányászati módszerek által elérhető előnyöket adattárház típusú döntéstámogató struktúra kiépítése nélkül is biztosítani lehet. Számos feladat elvégezhető az operatív adatbázisokra támaszkodva. Például szegmentálni lehet a piacot, vagy felépíthető az ügyfelek lemorzsolódást előrejelző vagy a fizetőképességüket becs- 43
52 2.1. ábra. Adattárház felépítése, komponensei lő pontozási rendszer. Mégis, az éles piaci versenyben, ahol gyakran órákon belül kell reagálni a versenytársak akcióira, a gyors döntésekhez elengedhetetlenül szükséges az átfogó, megbízható, elemzésre előkészített adatok megléte, és ezek legjobb helye egy szakszerűen felépített adattárház. Az adatbányászat és az adattárházak között a kapcsolat lehet oda-vissza irányú, hiszen az adatbányászati tevékenység során feltárt öszszefüggéseket az adattárházba való beépítéssel tehetjük a mindennapi ügyvitel számára hasznosíthatóvá. A vállalat piaci sikerességéhez leghatékonyabban az adatbányászattal kombinált adattárház alapú döntéstámogatási rendszerek járulnak hozzá: az adattárház segítségével könnyebb elkészíteni a rendszeres jelentéseket, az adatbányászat eszközeivel pedig fel lehet tárni a mélyebb, különlegesebb összefüggéseket, olyanokat is, amelyekre a standard jelentési rendszer kidolgozói nem is gondoltak. Napjainkra a tudás egyre inkább hatalom, s ez az üzleti élet nyelvén versenyelőnyt jelent. Az adatok megszerzésének az üzleti hírszerzésnek az eszközei, módszerei ezért létfontosságúak egy vállalatnál a piaci pozíció megtartásában, illetve növelésében. Az üzleti hírszerzés ezúttal az adatok gyűjtését, kezelését, analizálását és megfelelő helyre való eljuttatását értve rajta lehetővé teszi a vállalatoknak, hogy tudássá formálják hatalmas adatbázisaikat, információs tárházaikat, valamint külső adatforrásaikat. A legegyszerűbb definíció szerint az üzleti intelligencia azt fedi, amire az iparág vezető cégei döntéshozatalkor támaszkodnak a siker érdekében, s ezt az eljárást az teszi sikeressé, hogy hagyományosan önálló funkciókat kapcsol egybe: az egyszerű adathozzáférést, a jelentést, a feltárást, az elemzést és az előrejelzést [1]. Az adatokat adatbázisokban letárolva alap esetben még csak úgynevezett nyers adatokkal rendelkezünk. Ezek az adatok a felhasználók számára ilyen formában még nem 44
53 2. FEJEZET: ADATTÁRHÁZAK ÉS KIAKNÁZÁSUK jelentenek üzleti információt, továbbá a több helyen keletkező, szétszórtan tárolt adatok egységes lekérdezési lehetősége is megoldandó feladat. Mi jelenthetné a megoldást? 2.1. Az adattárház fogalma A felvázolt problémák, feladatok megoldását egy adattárház (Data Warehouse, DW) létrehozása jelenthetné, mely egy információs környezet, szemben az adatátvitel-orientált környezettel. Az adattárház tulajdonképpen egy olyan döntéstámogató és információfeldolgozó egység, melyet külön üzemeltetnek a szervezet működéséhez kapcsolódó adatbázistól, és megbízható, feldolgozott, hisztorikus elemzések céljából összegyűjtött adatokat tartalmaz (2.1.ábra). Lehetőséget biztosítanak, hogy a termelő és üzleti folyamatokban keletkező adatokból, az üzleti döntések számára releváns információk legyenek kinyerhetők. Egy adattárház létrehozása olyan folyamatok, eszközök tervezését és implementálását igényli, melyek alkalmasak a döntéshozatalhoz szükséges teljes, pontos, és áttekinthető információk adatokból történő kinyerésére. Fontos, hogy a tervezési és implementálási folyamat minden olyan tevékenységet magába foglal, amit egy szervezetnek el kell végeznie ahhoz, hogy egy adattárházat hozhasson létre és üzemeltethessen [2, 3, 4]. Az adattárház definíciója W.H. Inmon szerint: Az adattárház egy témaorientált, integrált, idővariáns és nemillékony, szervezett gyűjteménye az adatoknak a menedzsmentdöntési folyamatok támogatására [5]. A témaorientáltság jelentése, hogy bizonyos működési területek, témakörök köré szervezzük az adattárházat, tehát például marketing, kereskedelmi, közigazgatási, nyilvántartási, ügyfélkapcsolati, termelési témakörök szerint, a kereskedelmi adatokat például vásárlók, termékek, eladott mennyiség alapján. Az adattárház a döntéshozók számára szükséges adatok modellezéséhez és elemzéséhez kötődik, nem a napi működéshez, illetve adatátvitelhez. Egyszerű és tömör nézetet nyújt a fontos témakörökben, de nem tartalmaz olyan adatokat, melyek nem fontosak a döntéshozatal szempontjából. Az integráltság (adat integráció) alatt azt értjük, hogy több, különböző jellegű adatforrás integrálásával épül fel, tehát egyrészt relációs adatbázisokból, különálló szöveges fájlokból, on-line adatátviteli forrásokból és írott forrásokból szerveződik. Az ilyen, különböző forrású adatokat tisztítási és adatintegrációs eszközök alkalmazásával (ETL - extraction, transformation, load) lehet adattárházba tölteni, mely során az adatok a megfelelő formátumba konvertálódnak, transzformálódnak. A konzisztencia megmaradása végett elnevezési konvenciókat, struk- 45
54 2.1. AZ ADATTÁRHÁZ FOGALMA túrákat kell használnunk, a leíró adatokat összefoglaló néven meta adatoknak nevezzük. Idővariáns: egy adattárház esetén az időhorizont sokkal nagyobb, mint egy operációs adatbázisnál. Amíg egy operációs adatbázis aktuális adatokat tartalmaz (pl. elmúlt nap vagy utolsó 3 hónap), addig az adattárház hisztorikus adatok elemzésére szolgál (pl. az előző 5-10 év). Minden fontosabb (kulcs) struktúra explicit vagy implicit módon tartalmaz egy idő elemet, az idő dimenziónak általános, kiemelt szerepe van. A nemillékony tulajdonsága arra utal, hogy fizikailag külön tárolt, működési környezetből áttranszformált adatokat tartalmaz, hosszú távon. Tehát az üzemvitelből adódó adatfrissítés nem fordul elő. Általánosságban csak két fő adatkezelési mód van: adatok feltöltése és lekérdezése. Ritkán van szükség online adatátvitelre; az adatok mentése gyakran nem olyan elsődleges, mint egy operatív (OLTP) rendszer esetében. Összefoglalva tehát az adattárház a döntéstámogatási folyamat architekturális alapjának megvalósítása, ahol olyan adatokat tárolnak, melyek a vállalat stratégiai döntéshozatalához feltétlenül szükségesek. Az adattárház egy olyan architektúrának tekinthető, mely különböző adatforrásból származó adatokat integrál annak érdekében, hogy különböző analízisek és lekérdezések végrehajthatóak legyenek a döntéstámogatás érdekében. Milyen döntések meghozatalában lehet segítségünkre az adattárház? Meghatározható például a vásárlók egy olyan csoportja, mely a korábbi vásárlási szokásai alapján (vásárlási preferenciája, vásárlással töltött idő, költekezési hajlandóság stb.) nagyobb valószínűséggel lesz vevő egy új termékre; segíthet a termék újrapozicionálásában, termékportfoliók kialakításában összehasonlítva a korábbi időszakok eladási statisztikáit, és vizsgálni lehet segítségével korábbi események hatásait az üzletmenetre, előrejelzések készítésére és további elemzésekre. Az adatpiacok gyakorlatilag kisebb adattárházak, melyek csupán egy-egy téma adatkörét tárolják és teszik lekérdezhetővé, például egy marketing célú adatpiac Hogy kerül az adat az adattárházba? Az adatok három fő forrásból kerülhetnek az adattárházba. A külső adatforrások (external data source) olyan, a vállalathoz közvetlenül nem kötődő adatokat jelenítenek meg, mint az időjárási vagy gazdasági információk. A független adatpiac (independent data mart) egy olyan adattár, mely egy lokális, jól körülhatárolt témájú, meghatározott felhasználói csoport részére konkrét feladatot lát el. 46
55 2. FEJEZET: ADATTÁRHÁZAK ÉS KIAKNÁZÁSUK Az adatpiacon tárolt adatok a központi adattárházba tölthetők annak érdekében, hogy a vállalat különböző részlegei is hozzáférhessenek az adatokhoz. Az adatok harmadik fő forrását az operatív (OLTP) hagyományos relációs és más adatbázisok jelentik [6]. Az adatokat az adattárházba kerülés előtt ETL (extract, transform and load) eszközök dolgozzák fel. Az ETL fő folyamatai: az adatok kinyerése az operatív rendszerekből; az adatok transzformálása (különböző adatformátumok, nyelvek, stb.); az adatok tisztítása, minőségének ellenőrzése, előösszegzése, melyeket aztán az adatok adattárházba való betöltése követ. Az adattárházban lévő adatoknak követniük kell az operatív adatokban bekövetkező változásokat, azonban az adatfrissítés gyakoriságának meghatározása alapos körültekintést igénylő feladat, mivel a túl gyakori adatfrissítés könnyen a tranzakciós rendszerek túlterheltségéhez vezethet, míg a túl ritka adatfrissítés esetén az elemzett adatok válnak elavulttá. Így az adatok csoportosíthatók óránként, naponta, hetente vagy havonta, illetve egyes események bekövetkezése után frissítendő adatokra, s ez alapján időzíthető az adattöltés a tranzakciós rendszerek számára megfelelő időpontra (kis terheltségű időszakok, éjszakai órák, hétvégék). Ez rendkívül fontos lehet, hiszen az adattárházba való adatáttöltés hatalmas mennyiségű adat mozgatásával járhat (akár millió rekord egyidejű lekérdezésével), mely nem veszélyeztetheti a vállalat működését. Az adatgyűjtés után a különböző adattisztító és adatfeldolgozó eljárásokkal juthatunk tisztított és feldolgozott adatokhoz. Ilyen eljárás a kódfeloldás is, például a személyi számnál, míg az 1-essel kezdődő számok férfit jelölnek, addig a 2-essel kezdődő számok hölgy kilétére utalnak. A rejtett üzleti szabályok feloldása is a kódfeloldás témaköréhez tartozik. Ilyen például a számlaszám vagy a vonalkód megfejtése, ismerve azok felépítését. Az adattisztításon hiányzó értékek pótlását (pl. egy odaillő átlagos értékkel), a normalizálást (pl. euró-dollár átváltás), illetve konzisztens reprezentációt értjük. Finomításon a rész adathalmazok generálását, számított mezők létrehozását, információk összegzését (a granuláltság szintjét változtatva pl. heti- vagy havi adatok) értjük. Továbbá a finomításhoz tartozik még az információ aggregálása, összegzése (csoportok generálása, pl. termékcsoportok), a már említett kódfeloldás, a rejtett üzleti szabályok feloldása, hiányzó értékek pótlása, illetve itt is lehetnek még különböző adattisztítási eljárások. Általánosságban, az adattárházba került adat már nem fog változni. Ez alól egy nyilvánvaló kivétel lehet, ha kiderül, hogy hibás adatok kerültek az adattárházba. Egy hétköznapi eset azonban az is, ha a vásárlónak megváltozik a címe vagy éppen a családi állapota. Hogy kezeljük ezeket az eseteket? A legegyszerűbb megoldásnak az tűnik, ha megváltoztatjuk az adattárházban az összes, az említett vásárlóra vonatkozó rekordok között a vásárló címét. Azonban ezzel a megoldással bizonytalan, rossz adatokat kaphatunk a lekérdezések során, mivel a korábbi vásárlásokhoz is az új cím lesz hozzárendelve. Így számos más megoldást próbáltak ki az adattárházak fejlesztői erre a 47
56 2.2. ADATTÁRHÁZ ÉS HETEROGÉN ADATBÁZISOK problémára. Az egyik megoldás szerint a rekordhoz több mezőt is rendelünk, egyik tartalmazza a korábbi címet, másik pedig az újat. Egy másik megoldás szerint új rekordot hozunk létre, az új rekordot a régivel pedig egy kulcs mezővel kapcsoljuk össze Adatstruktúrák Az adattárházak kialakítása során három fő adatstruktúrát különböztethetünk meg, melyek megfelelnek egy átlagos szervezet igényeinek: valós idejű adatok (real-time data); származtatott adatok (derived data); simított adatok (reconciled data). E három adattípus megfelelő alkalmazásával létrehozható egy adattárház figyelembe véve a tranzakciós adatbázis típusát, az adattárházhoz hozzáféréssel rendelkező felhasználók számát és a vállalkozás típusát. A valós idejű adatok a vállalkozás jelenlegi állapotát mutatják be. Általában a tranzakciós rendszerek használják, így állandóan változnak a tranzakció feldolgozása során. A valós idejű adatok nagy részletességűek, továbbá általában írás/olvasás módban érik el őket a tranzakciós műveletek. Az adattárházakban való felhasználásukhoz a valós idejű adatokat gyakran meg kell tisztítani, továbbá olyan formára kell transzformálni, ami a felhasználó számára könnyen érthető. Ennek oka, hogy a valós idejű adatok tartalmaznak olyan adatokat is, melyek csak a tranzakciós rendszerek számára értékesek, továbbá különböző lehet az adatok formátuma is. Eltérőek lehetnek például a mértékegységek, árfolyamok a különböző rendszerek esetében. A származtatott adatokat a valós idejű adatokból származtatják összeadással, átlagolással vagy más műveletekkel, így a szervezet képét mutatja be egy adott időpontban vagy egy időintervallumra vonatkozóan. A származtatott adatokat általában analízisre és döntéshozáshoz használják fel, így a felhasználóknak ritkán van szükségük nagy mennyiségű részletes adatra, hasznosabbak számukra az összesített adatok. Ráadásul ezzel erőforrást is takaríthatnak meg. A simított adatok olyan valós idejű adatok, melyet megtisztítottak, finomítottak, tehát a megfelelő adatminőség biztosított annak érdekében, hogy a felhasználó alkalmazhassa azokat analízisre. A simított adatok tehát speciális származtatott adatoknak tekinthetők, amikkel szemben a legfontosabb követelmény az adatok konzisztenciája Adattárház és heterogén adatbázisok Az adattárházak létrehozása a hagyományos adatbázisok szempontjából is kedvező, hiszen a legtöbb szervezet különböző forrásokból származó adatokból hatalmas adatbá- 48
57 2. FEJEZET: ADATTÁRHÁZAK ÉS KIAKNÁZÁSUK zisokat tart fenn, melyeknek az optimális üzemeltetése nehéz feladat. Egy adattárház a további tipikus komponensekből áll: 1. Maga az adattárház az adatokkal és a hozzá tartozó adatbáziskezelő szoftverrel. 2. Adatgyűtjő (back-end) szoftver, mely a külső forrásokból származó adatokat konszolidálja, összegzi és betölti az adattárházba. 3. Alkalmazás szerver, mely a webes adatszolgáltatásért és más szolgáltatásokért felelős. 4. Kliens oldali (front-end) szoftver, mely lehetővé teszi a felhasználóknak, hogy elérjék és elemezzék az adatokat, gyakran ez tipikusan egy böngésző program a háromrétegű architektúrában. Egy hagyományos heterogén adatbázis integrációnál interface-ek, wrapperek (borítékolók) vagy mediatorok (közvetítők) a heterogén adatbázisok felé vannak illesztve. A közvetítő egy speciális szoftverkomponens, amely olyan virtuális adatbázist támogat, amelyet a felhasználó úgy kérdezhet le, mintha az valódi lenne (azaz, mintha fizikailag létezne, mint egy adattárház). Maga a közvetítő nem tárol semmiféle adatot, hanem más módszert alkalmaz: a felhasználó a lekérdezést lefordítja az adatforrások számára egy vagy több lekérdezés képében, majd az adatforrások válaszait egységbe fogva adja meg a választ a felhasználónak. Tehát itt lekérdezés alapú integrációról van szó. Ezzel szemben az adattárházakat feltöltés-alapú integritás jellemzi. A heterogén adatforrások információi a lekérdezés előtt kerülnek integrálásra, és így tárolódnak. Tehát a különböző információ-forrásokból nyert adatokat egy globális sémába illesztjük, majd az adatot a tárházban tároljuk, amely a felhasználók számára úgy néz ki, mint egy közönséges adatbázis. Ha az adat egyszer már bekerült a tárházba, akkor a felhasználó többek között ugyanolyan lekérdezéseket hajthat végre, mint bármely más adatbázison. Azonban a direkt lekérdezéseknél és az elemzések készítésénél ez nagyobb teljesítmény elérését teszi lehetővé, mint a wrapperek/mediatorok használata. E két rendszer közti fontosabb eltéréseket a 2.1 táblázat tartalmazza. Látható, hogy az adattárház egy döntéstámogató rendszer, melynek elsődleges célja, hogy lehetőséget biztosítson a termelő és üzleti folyamatokban keletkező adatokból a szervezeti, mérnöki és üzleti döntések számára releváns információk kinyerésére Az OLAP kritériumai A 90-es évek elején jelentkezett először nagy méretekben igény az elemző, analitikai alkalmazások létrehozásának irányába és ezzel egy egységes, módszertan és követelményrendszer felállítására. Codd 1993-as cikkében használta először az on-line analitikai feldolgozás (OLAP, on-line analytical processing) kifejezést, és kialakította a hozzá 49
58 2.2. ADATTÁRHÁZ ÉS HETEROGÉN ADATBÁZISOK 2.1. táblázat. Relációs adatbázis és az adatelemzést támogató adattárház főbb eltérései OLTP adatbázis adattárház (DW) Funkció napról-napra történő adatrögzítés döntéstámogatás Adat aktuális, naprakész, részletes, történeti, összesített, relációkba foglalt, izolált integrált, konszolidált Használat ismétlődő ad-hoc Munka egysége rövid, egyszerű tranzakciók komplex lekérdezés Tervezés alkalmazás-orientált témakör-orientált Elérés írás/olvasás sok lekérdezés Elért rekordok száma tízes nagyságrend milliós nagyságrend Méret 100 MB-GB 100 GB-TB Mérték tranzakciós idő lekérdezési idő kapcsolódó követelményrendszert. Az OLAP legfontosabb ismérve, hogy lehetővé teszi az adatok gyors és rugalmas lekérdezését, majd ezt követő analízisét, mindezt többdimenziós nézetekre, struktúrákra alapulva [7, 1]. A Codd által 1993-ban definiált követelményrendszer 12 szabálya, mely meghatározza az OLAP-eszközökkel szembeni általános követelményeket: Többdimenziós nézet: az OLAP termékekben az adatok modellje többdimenziós és többváltozós, így lehetővé válik, hogy a felhasználó igény szerinti műveleteket (adatszeletek kiválasztása (slice and dice), forgatás, lefúrás (drill down), stb.) végrehajtson. 2. Transzparens támogatás a felhasználó számára: a felhasználónak ne kelljen tudni, hogy az adatok fizikailag vagy logikailag milyen módon vannak tárolva. 3. Elérhetőség: az OLAP, mint közvetítő. Codd eredeti elképzelése szerint az OLAP egy - a heterogén adatbázis és az OLAP-front-end része között elhelyezkedő - eszköz kell, hogy legyen. 4. Állandó lekérdezési teljesítmény: a dimenziók számának és az adatbázis méretének növelésével a felhasználó ne tapasztaljon jelentős teljesítménycsökkenést. 5. Kliens-szerver architektúra (manapság gyakran háromrétegű architektúra): az adattárházak esetében előforduló hatalmas méretű adattömeget nagyteljesítményű szerver számítógépeken tárolják tehermentesítve ezzel a PC-ket. 6. Általános dimenziófogalom: a dimenzióknak struktúrájukban azonosnak kell lenni. Napjainkra azonban ez a szabály a legvitatottabb és legkevésbé teljesített szabállyá vált.
59 2. FEJEZET: ADATTÁRHÁZAK ÉS KIAKNÁZÁSUK 7. Dinamikus ritkamátrix-kezelés (sparsity): az OLAP-eszközöknél használt többdimenziós adatmodellek miatt garantálni kell a ritkamátrixok feldolgozásának optimális feltételeit. 8. Több konkurens felhasználó támogatása: könnyen előfordulhat, hogy több felhasználó ugyanazzal az adatmodellel szeretne dolgozni, vagy azonos adatokból különböző modelleket szeretne létrehozni. Az OLAP-eszközöknek biztosítani kell a konkurens elérést, az adatok védelmét és integritását. 9. Korlátozás nélküli dimenzióműveletek: a dimenziók közötti műveletek összes formáját meg lehessen valósítani. 10. Intuitív adatkezelés: a felhasználók számára az adatok manipulálása közvetlenül a megjelenítési felületen megtörténhet. 11. Rugalmas jelentések: az adatok megjelenítésének legkülönbözőbb módjai legyenek támogatva. 12. Korlátlan dimenziók: szó szerint értelmezve az OLAP-eszköz legyen képes tetszőleges számú dimenzió és hierarchiaszint kezelésére. A valóságban természetesen egyetlen számítógép sem tud megfelelni ennek a kritériumnak, mivel nem létezik korlátlan tárhellyel vagy memóriával rendelkező számítógép. Codd javaslata alapján legalább 15, de inkább 20 dimenziót kezeljen a szoftver, noha a tapasztalatok szerint egy konkrét adatkocka esetén ritkán van igény 8 10 dimenziónál többre. Codd kritériumrendszere jól meghatározta az OLAP-eszközökkel szembeni elvárásokat, napjainkra azonban egyes kritériumok megváltoztak, illetve újabb kritériumok kerültek az elvárások közé. Napjainkban a FASMI betűszóval szokták jellemezni ezen elvárások összességét, mely a Fast Analysis of Shared Multidimensional Information kezdőbetűiből származik. A gyorsaság (fast) ebben az esetben úgy értelmezhető, hogy a felhasználó átlagban maximum 5 másodperc alatt választ kap legtöbb lekérdezésére, feltéve, hogy a legegyszerűbb analitikai kérdésre kevesebb mint egy másodperc alatt megérkezik a válasz, míg a komplexebb esetekben is ritkán tart 20 másodpercnél tovább. Ennek alapja, hogy egyes kutatások szerint a felhasználók 30 másodperces várakozás után hajlamosak azt hinni, hogy a folyamattal valami baj történt. Az analitikus (analytical) tulajdonsága az OLAP rendszereknek arra utal, hogy tetszőleges, a felhasználó számára fontos, üzleti logikai vagy statisztikai számítást el kell tudjon végezni. Noha minimális programozásra szüksége lehet a felhasználónak új, ad hoc típusú számításai elvégzéséhez és az eredmények kívánt módon történő megjelenítéséhez, de célszerű ezt minimális szinten tartani. 51
60 2.2. ADATTÁRHÁZ ÉS HETEROGÉN ADATBÁZISOK A megosztott (shared) tulajdonsága azt jelenti, hogy az eszköz teljesít minden, az adatok bizalmas kezeléséhez szükséges biztonsági követelményt, továbbá olyan esetekben, amikor lehetőség van az adatok egyidejű írási elérésére, képes a helyzetet megfelelő módon kezelni. Az OLAP alkalmazások többdimenziós (multidimensional) volta kulcskövetelmény. Ha egyetlen tulajdonságot kellene kiemelni, akkor ez lenne az, így a következő fejezetekben részletesen foglalkozunk vele Az OLTP és az OLAP A hagyományos on-line adatbázis-rendszerek fő feladata az on-line tranzakciók és lekérdezések megvalósítása. Ezeket a rendszereket ún. on-line tranzakció feldolgozó (OLTP, on-line transaction processing) rendszereknek nevezzük. Ide sorolhatók a raktárnyilvántartások, a könyvtári kölcsönzési adatbázisok és a számlanyilvántartó-rendszerek. Napjainkban a (főként közepes és nagyméretű) vállalatok gyakran alkalmaznak valamilyen integrált vállalatirányítási szoftvert mindennapi működésük támogatására. Ilyen rendszer például a piacvezető német SAP és az Oracle (az Oracle megvásárolta a PeopleSoft céget, ami korábban a JDEdwardst szerezte meg), a Baan, és sok más szállító [8]. Az OLTP és az OLAP közötti különbségeket az alábbiakban lehet összefoglalni: 52 Felhasználók és a rendszer orientációja: Az OLTP felhasználóorientált, mivel főként a vállalat adminisztrációt végző alkalmazottai és informatikusai használják tranzakciók és lekérdezések végrehajtására. Ezzel szemben az OLAP-rendszerek piacorientáltak, mivel a vezetők, döntéshozók és az őket segítő elemzők használják az adatok analizálására. Adattartalom: Az OLTP rendszerek az aktuális adatokat tartalmazzák, melyek általában túl részletesek ahhoz, hogy könnyen döntéstámogatásra lehessen használni őket. Az OLAP rendszerek nagy mennyiségű történeti adatot tartalmaznak időben archiválva, lehetővé téve azok összegzését és különböző granuláltsági szinten történő tárolását, így megkönnyítve a döntéstámogatásra való használatot. Adatbázis-tervezés: Az OLTP rendszerek általában hagyományos relációs adatmodellel dolgoznak, és a rendszer alkalmazásorientált. Az OLAP-rendszerek gyakran a csillag- vagy Nézet: Az OLTP rendszerek főként a vállalat, szervezet aktuális adataira fókuszálnak anélkül, hogy figyelembe vennék a korábbi adatokat, vagy más cégek, illetve iparági adatok adatait. Ezzel szemben az OLAP-rendszerek különböző adattárak adatait integrálják, figyelembe véve a korábbi és más szervezetektől származó adatokat is.
61 2. FEJEZET: ADATTÁRHÁZAK ÉS KIAKNÁZÁSUK Hozzáférés: az OLTP rendszereken a felhasználók általában rövid ideig tartó, elemi tranzakciókat végeznek, így kezelni kell a konkurens hozzáférést. Eközben az OLAP-rendszerekhez való hozzáférés általában csak olvasási művelet, azonban ezek meglehetősen komplexek lehetnek Adattárházak alkalmazása Az adattárházak alkalmazási területei többek közt: az üzleti jelentések, elemzések, statisztikák készítése és speciális adatbányászati alkalmazások lehetnek, hogy csak a legfontosabbakat említsük. Az üzleti jelentések a szervezeteken belüli információ megosztás hatékony eszközei, melyeket vezetői információs rendszerek - EIS (Executive Information Systems) támogatásával a vállalat különböző szintjein dolgozó alkalmazottak a felsőbb vezetők számára készítenek. A jelentések segítségével tetszetős, képernyőn megjelenő és nyomtatott formát is lehet adni az adatoknak. A vállalatirányítási rendszerbe integrált adattárház funkciók: a vállalatirányítási rendszerek (ERP - Enterprise Resource Planning) felhasználói egyre gyakrabban szeretnének lekérdezéseket, elemzéseket elvégezni közvetlenül az alaprendszerben gyűlő OLTP adatokon különálló adattárház nélkül is magában az alkalmazás-együttesben. Korábban az OLTP rendszereket nem lehetett terhelni a közvetlenül futtatott komplex lekérdezésekkel, csak szeparált adattárházak és adatpiacok léteztek. Az utóbbi idők gyors hardver és szoftver fejlődése lehetővé tette, hogy mind a hardver, mind a szoftver megfizethető áron tetszőlegesen skálázható legyen. Ilyen vívmányok például a valódi szoftver klaszter architektúrák kialakulása és a grid számítás fogalomköre, a gyors összegzési lehetőségek bevezetése, a particionálás lehetősége. Ilyen az Oracle Daily Business Intelligence az Oracle E-Business Suite vállalatirányítási rendszer része is, ami tulajdonképpen egy, az OLTP rendszer részét képező automatikus mini adattárház. Beépített üzleti tudással rendelkező bővíthető elemzési készlet, pontos és naprakész információt nyújt, egy adatmodell, egy architektúra a vállalatirányítási rendszerrel. A magas szinten összegzett adatokból lefúrhatunk a részletes tranzakciós adatokig is ugyanabban a rendszerben. Az adatprezentációs eszközök webes megjelenítésének elterjedésével nagy szerepet kapnak a portálok, melyek bevezetésével a cég jól strukturált kommunikációs felülethez jut. A portál olyan egységesen használt felület, amelyen keresztül elérhetők a vállalat adatai és alkalmazásai egyaránt, így gyakorlatilag az összes napi feladat elvégzéséhez nélkülözhetetlen. A portál az adattárházak adatainak megjelenítésben is fontos szereppel bír. A portál oldalak műszerfal (dashboard) jellegű megjelenítést tesznek lehetővé; előre elkészített portletek (újra felhasználható portálkomponensek: linkek, alkalmazások, lekérdező, elemző riportkészítő, controlling eszközökből) gyűjtik és prezentálnak adatokat, illetve adnak hozzáférést azok további elemzéséhez. 53
62 2.2. ADATTÁRHÁZ ÉS HETEROGÉN ADATBÁZISOK A különböző felhasználói igények alapján így csoportosíthatjuk a felhasználókat: Non-frequent user : alkalmi felhasználók, időről-időre információra van szükségük. Előre definiált, friss jelentéseket igénylő felhasználó: speciális érdeklődésű, rendszeres időközönként használja. Dinamikus, ad hoc lekérdezéseket igénylő felhasználók az üzleti elemzők. Profi felhasználók azok, akiknek minden adat fontos, komplex elemzéseket végeznek, specializált adatpiacokat igényelnek. Magyarországi alkalmazások A következőkben a teljesség igénye nélkül néhány magyarországi alkalmazást mutatunk be. Az Oracle Hungary Kft. nyerte azt a meghívásos pályázatot, amelyet az OTP Bank Rt. írt ki év júniusában a bank ügyféltranzakciókat feldolgozó és elemző Tranzakciós Adattárházának megvalósítására. A pályázat olyan rendszer kialakítására és bevezetésére szólt, amely nyilvántartja a bankban történő havi 100 millió tranzakciót, valamint a nyilvános külső adatokat, és ezen információkat feldolgozva lehetőséget ad az adathalmaz elemei közti összefüggések feltérképezésére, ügyfélcsoportok képzésére. A pályázaton a vállalat a jól ismert adatbázis terméke mellett egy banki adatmodellen alapuló, analitikus és operatív CRM (ügyfél adatfeldolgozó) elemeket tartalmazó alkalmazáscsomaggal, és az ennek alapjául szolgáló adattárház eszközeivel vett részt, melyek rugalmassága és egyedi felépítése miatt meg tudott felelni a kiírásban szereplő szigorú elvárásoknak. A Budapest Bank CRM-infrastruktúrájának alapját az Oracle adattárház-megoldása adja; ezt 2000 és 2002 között fejlesztették ki - a különböző rendszerekből beérkező adatokból egységes képet alkothatnak vele az ügyfelekről. Korábban csak számlaszinten lehetett kezelni a különféle információkat, de ma már a banknak pontos információik vannak a több számlát fenntartó ügyfelekről is. Jelenleg a bankban a lakossági számlavezetést több rendszer valósítja meg, melyek a banki tranzakciók és az ügyfelek maradéktalan kiszolgálását végzik. A Budapest Bank, hogy CRM tevékenységét erősítse, a már meglévő adattárház megoldását egy Single Customer View megoldással kívánta bővíteni. Az eredménnyel szemben a megrendelő, a projekt kiírásakor igen magas minőségi követelményeket határozott meg, melyek kitértek a szinte tökéletes ügyfél konszolidációra is. A cél eléréséhez az Oracle Warehouse Bulider-nek minden lehetőségét ki kellett használni. A projekt során elkészült egy, a bank adattárház infrastruktúrájához illeszkedő megoldás, amelyben az igényelt, összetett funkcionalitást sikerült teljes egészében az Oracle Warehouse Builder funkcióival megvalósítani. 54
63 2. FEJEZET: ADATTÁRHÁZAK ÉS KIAKNÁZÁSUK Az, hogy az adatttárház ás adatbányászati rendszerek integrálódnak az Oracle 9i platformba, többféle üzleti előny - költségcsökkenés, a vállalati igénynövekedés követése (RAC klaszter technológiával, befektetés-védelem, skálázhatóság, megnövelt adatbiztonság) is származik - mondta Radnai. Az Oracle Hungary hazai referenciája a Westel Mobilnál megvalósított, a térségben egyedülálló, nagyobb mint 1 Terabájt méretű adattárház rendszer. A távközlési cégek közül a Westelnél, a Matávnál és a Vodafone-nál építettek ki adattárházat. A pénzügyi szférában a most is zajló legnagyobb munka az OTP Bank adattárházának kiépítése; emellett a Hungária Biztosítónál és a Budapest Banknál működnek Oracle üzleti intelligencia-rendszerek. A MATÁV Rt. központ-nyilvántartási rendszere teljes körű műszaki nyilvántartást vezet azokra az egységekre, átvitel-technikai eszközökre, amelyek a telefonközpontoktól egészen az előfizetőig terjednek, így például: telefonközpontok nyilvántartása; műszaki egységek nyilvántartása a telefonközponttól kiindulva az előfizetőig; központnyilvántartás; a központ oldali és előfizető oldali érpártöbbszörözők nyilvántartása; rádiófrekvenciás előfizetői hurokkal üzemeltetett egységek (bázisállomás és előfizetői egység) nyilvántartása. A rendszer SYBASE adatbázisra készült Powerdesigner adatmodellező segítségével, a kliens oldali fejlesztőeszköz PowerBuilder volt. Az ad hoc riportkészítési feladatokat a Cognos Impromptu nevű eszköze támogatja. Az önkormányzatok egyre inkább szembesülnek az informatikai rendszereikben felhalmozott több évnyi adatmennyiség kaotikus állapotával. Ezek az adatok általában több helyen (programban) is megtalálhatóak, de általában eltérő formában és sokszor eltérő adattartalommal. Az önkormányzati költségvetés elkészítése is jelentős többletterhet ró a pénzügyi és egyéb területen dolgozók vállára. Az Axis Consulting Önkormányzati VIR és Költségvetés Tervező rendszere ezeken a problémákon hivatott segíteni. A rendszer az Esztergomi Önkormányzatnál került kifejlesztésre és bevezetésre. Az ÖN- Kontroll segítségével a könyvviteli (TTG), pénzügyi (Gordius), illetve a személyügyi nyilvántartó rendszer adatait sikerült egy egységes, a mai kor igényeinek megfelelő, nagy kapacitású, biztonságos központi adatbázisba (Sybase) tölteni. Ezen adatbázis több év adatát tartalmazza, melyek egységesek. A rendszer programjainak segítségével (Cognos) a felhasználók egyszerű egérkattintásos módszerrel tudnak rövid idő alatt a meglévő kimutatásokon és elemzéseken túl, saját ad hoc igényeiknek megfelelőt készíteni. A kimutatások gyorsan elkészülnek, mivel a napi munkát végző informatikai rendszereket nem terhelik. Az adatbázisban tárolt adatok típusából bármilyen lista illetve grafikon elkészíthető. A Richterben felismerték, hogy a kifejezetten a gyógyszeripar számára kifejlesztett SAS-megoldások optimalizálják a tudományos és operatív adatok áramlását, s elősegítik, hogy a gyógyszerek hamarabb piacra kerüljenek, valamint a vállalat nyereségessége növekedjen. A Richternél két, egymástól jól elkülönülő területen alkalmaznak SAS-szoftvert. A Farmakológiai és Gyógyszerbiztonsági Főosztály kutatói preklini- 55
64 2.3. A TÖBBDIMENZIÓS ADATMODELL kai fázisban, állatkísérletek formájában vizsgálják a vizsgálati anyagok molekuláinak hatását. Az adatrögzítés is a vizsgálóhelyen történik, a feldolgozást azonban már a statisztikusok végzik. Az Orvostudományi Főosztály a klinikai vizsgálatok értékeléséhez használja a SAS-t. A pénzintézetekre általában jellemző a heterogén informatikai környezet. Jó néhány számlavezető vagy más tranzakciós rendszer működhet egymás mellett, így az ügyfelek adatai szétszórtan jelennek meg ezekben. A rendszerek, illetve a bennük található adatkörök ráadásul átfedhetik egymást mind ügyfélkörben, mind pedig termékstruktúrában. Ezért a hatékony működés szempontjából elengedhetetlenül szükséges, hogy a bankok egységes, átlátható adatstruktúrát alakítsanak ki. Az MKB a SAS Institute eszközeivel fogott hozzá a feladathoz, mivel ez a szállító meggyőző banki referenciákkal és ebben a szektorban nagy tapasztalatokat szerzett fejlesztőkkel és partnerrel rendelkezik, valamint már használtak SAS-szoftvereket a bankban. Amikor a CIB Bank elindította a lakossági hitelezési rendszert, az ügyfelek hitelképességének a megállapítására egyszerű, ám nem minden tapasztalat nélkül összeállított pontozási technikát alkalmazott. E pontozási rendszer kiválóan működött, csak egyetlen baja volt, nem lehetett vele eléggé differenciálni az ügyfélkört. Amikor felmerült az igény egy rugalmasabb pontozási rendszer iránt, már alkalmaztak SAS-szoftvereket a bankban, ugyanis nem sokkal korábban a CIB a SAS rendszert kezdte használni monitoring és vezetői információs célokra. Először a bank próbát tett egy korábbi folyószámlahiteles portfolión ez a statisztikai modul bevezetése volt, s miután ez megfelelt a várakozásoknak, 2001 júliusában megszületett a döntés a modell elkészítéséről a személyikölcsön-állományra is. A bevezetés eredményeként sikerült emelni a jóváhagyási állományt, s a bank kockázati alapú árazást is be tudott vezetni. Egy, a Környezetvédelmi és Vízügyi Misztériumban (KVVM) lezárult beruházás eredményeként egységes, adattárház-alapú informatikai rendszer tesz eleget a hazai és az uniós környezetvédelmi adatszolgáltatás követelményeinek. Az IPPC létesítménynyilvántartó rendszerből, a vízminőség-alap bejelentő rendszerből (VAL), a most kifejlesztett dokumentumkezelő rendszerből (DMS) és az OKIR rendszerből, amely a környezetszennyezés országos, területi adatait szolgáltatja. Az ezekből nyert, eltérő jellegű és formátumú adatok bekerülnek az Oracle-adattárházba, ahonnan különböző kiszolgáló rendszerek használják fel azokat A többdimenziós adatmodell Az OLAP-technológia alapja az adatok tárolása, mely történhet relációs vagy többdimenziós formában. Ennek a speciális tárolásnak az elsődleges célja a rendkívül gyors lekérdezések végrehajtása. Ha az adattárház maga relációs adatmodell szerint van felépítve, akkor az OLAP-kocka belső tárolása valószínűleg a következőkben bemutatásra 56
65 2. FEJEZET: ADATTÁRHÁZAK ÉS KIAKNÁZÁSUK kerülő csillagsémában kerül megvalósításra. Ha az adattárház többdimenziós formában van felépítve, az adatokat többdimenziós tömbökben tárolják. Mindkét módszernek megvannak a maga előnyei. A relációs adattárolás egyik előnye, hogy hatalmas adatmennyiségeket is tárolhat, és tranzakciós szintű részletes adatokat is tartalmazhat, míg a többdimenziós adattárolás elsődleges előnye a lekérdezések sebességének további növekedése. Az adatokat akár többdimenziós formában, akár relációs formában tároljuk, a grafikus felületeken a felhasználó mindig többdimenziós formában látja az adatait. Ha az adattárház adatait egy relációs modellben tárolják, hagyományos adatbáziskezelő rendszereket használnak arra, hogy a felhasználó számára az adatokat többdimenziós formában mutassák be. Meg kell jegyeznünk, hogy az Oracle 2000-ben az iparágban elsőként integrálta adatbáziskezelőjébe az Express Server addig különálló többdimenziós szerverét OLAP opció néven. Korábban hosszú évekig az Oracle Express Server tartotta az APB-I Benchmark szerinti teljesítmény világcsúcsot a többdimenziós adatbáziskezelők között. Ez az azóta is egyedülállóan fejlett OLAP integrációja azt jelentette, hogy a relációs adatbáziskezelőbe kernel szinten bekerült egy többdimenziós motor. A többdimenziós adatmodell tulajdonképpen egy hierarchikus rendbe szedett kategóriákon (szempontokon, vagy dimenziókon) és ezeken létrehozott többdimenziós adatkockákon alapuló adatszervezési és elemzési módszer, ami a gyors lekérdezések eléréséhez előre összegzett és kiszámított adatokat használ fel, továbbá könnyen a felhasználó igényeinek megfelelően alakítható ki, így lehetővé téve jóval nagyobb menynyiségű adat feldolgozását, mint azt a rendszer erőforrásai egyébként lehetővé tennék. Az adatokat ún. n-dimenziós adatkockákban tárolják, azaz az adatok (értékkészlet) egy n-dimenziós tér zárt részhalmazában helyezkednek el a dimenzióértékek számának végessége miatt. Ennek előnye, hogy alkalmazkodik az OLAP koncepcionális modelljéhez, és közvetlenül alkalmazhatóak rá az OLAP műveletek [9]. Vegyünk példaként egy adatbázist, amely értékesítési adatokat tartalmaz az eladó, a termék és a dátum függvényében. Az értékesítésített darabszámokat a három dimenzió mező egyértelműen meghatározza. A lekérdezésben a kiválasztás során a három mező értékei tetszőlegesen megváltoztathatók, és az ennek megfelelő értékesítési adatok jelennek meg. A meghatározó mezőket, mint a termék, dátum, eladó általában dimenziónak (dimension), míg az értékesítési darabszámokat adatmezőnek (measure) vagy ténynek (fact) nevezzük. Az adatbázis tervezőjének feladata, hogy kialakítsa a struktúrákat, és feltöltse azokat, azaz létrehozza a dimenziókat, ezeken a hierarchiákat, attribútumokat, végül az adatkockákat és összegzéseket, számításokat. A dimenziókhoz gyakran hierarchiákat és azokhoz szinteket (hierarchy) rendelünk, melyek meghatározzák az adatok megjelenítésének részletességét, azok csoportosítását. Így például a nap hónap negyedév év a dátum dimenzió hierarchiáinak lehetséges szintjei, azaz az egyes dimenzióelemekhez egy-egy szintet rendelünk hozzá. Hasonlóan, a termék termékcsoport termék főcsoportja összes termék a termék dimenzió 57
66 2.3. A TÖBBDIMENZIÓS ADATMODELL 2.2. ábra. Adatkocka egy lehetséges hierarchiájának szintjei. Például, a baba és a mama termékek is a szappan termékcsoportba sorolhatók, a szappan és a sampon pedig a higiéniai cikkek termék főcsoportjába tartozik A dimenziók hierarchiaszintjei Egy dimenzió fogalom hierarchiája (concept hierarchy) az alacsonyabb és magasabb dimenziószintek közötti leképezéseket határozza meg. Vegyük például a helység dimenziót. Veszprém, Várpalota, Érd és Gödöllő városként szerepelhetnek a helység dimenzióban. Minden várost hozzárendelhetünk egy megyéhez vagy más közigazgatási egységhez. Így például Várpalota Veszprém megyéhez rendelhető, míg Érd Pest megyéhez. A megyék azonban egy országhoz rendelhetők, az országok kontinensekhez és így tovább, ezzel kialakítva az alacsonyabb szintek (pl. városok) és a magasabb szintek (pl. országok) között megfeleltetéseket. Az adatbázissémában számos hierarchia létezhet implicit formában. Tegyük fel, hogy a hely dimenziót leíró attribútumok a házszám, utca, város, megye, irányítószám és az ország. Ezen attribútumokon alkalmazhatunk teljes rendezést, mely a következő hierarchiarendszert alakítaná ki: utca < város < megye < ország. Az attribútumokon azonban alkalmazhatunk részleges rendezést is, mely egy rácsot (lattice) alkot. Részleges rendezésre példa lehet a nap, hét, hónap, negyedév és év attribútumokból kialakított nap < {hónap < negyedév; hét} < év rendezés. Az így kapott rács struktúra a 2.3. ábrán látható. A legtöbb adattárházban a hierachiaszintek előre meg vannak határozva, mint az előbb bemutatott időpontra vonatkozó hierarchiarendszer, azonban lehetővé kell tegyék, hogy a felhasználók saját igényeiknek megfelelően egészítsék ki és alakítsák át ezeket, így például az év kezdőnapját az oktatási év kezdeteként határozhassák meg. 58
67 2. FEJEZET: ADATTÁRHÁZAK ÉS KIAKNÁZÁSUK 2.3. ábra. Dimenziók hierarchiaszintjei Hierarchiákat úgy is meghatározhatunk, hogy egy dimenzió elemeit csoportosítjuk teljes vagy részleges rendezést alkalmazva. Egy ilyen csoportosítás szerint az ár dimenzió értékeit besoroljuk olcsó, normál árú és drága csoportokba. A hierarchiaszinteket létrehozhatják a felhasználók, az adatbázis-tervezők, és létrehozhatók automatikusan is, az adatok eloszlására alapuló statisztikus módszerekkel Műveletek a többdimenziós adatmodellen Felgöngyölítés (roll up): A felgöngyölítés művelet az adatkockán az adatok öszszevonását, csoportosítását végzi el oly módon, hogy csökkenti a dimenziók számát, vagy összevonja a valamely dimenzió elemcsoportjaihoz tartozó értékeket. Az előbbi esetre lehet példa, hogy a termék dimenzió és az adatokat elemi termék helyett termékcsoportonként jeleníti meg, vagy a kereskedőket régiónként csoportosítjuk. Ha a felgöngyölítést a dimenziócsökkentéssel valósítjuk meg, egy vagy több dimenziót a hierarchia legfelső szintű elemére rögzítünk, és eltávolítunk az adatkocka megjelenítéséből. Erre az esetre példa, ha az adatkocka két dimenziót tartalmaz, tehát az eladások számát a termék és az idő (hónapok) függvényében tartalmazza. Ekkor az idő dimenzió eltávolításával az adott termékekre vonatkozó összes értékesítést kapjuk meg. A felgöngyölítés legtöbbet használt módszere az összegzés. Az összegzésen kívül a fejlett OLAP rendszerekben emellett tetszőleges szabályt vagy matematikai műveletet alkalmazhatunk a felgöngyölítés során. Lefúrás (drill-down): A lefúrás művelet a felgöngyölítés ellentéte. A kevésbé részletes adatoktól a jobban részletezett adatok felé visz. A lefúrás is meg- 59
68 2.3. A TÖBBDIMENZIÓS ADATMODELL 60 valósítható oly módon, hogy egy dimenzió hierarchiarendszerében egy szintet lefelé lépünk vagy pedig dimenzió hozzáadásával. A 2.4. ábrán látható a lefúrás művelet eredménye, mely az idő dimenzió hierarchiaszintjében egy szintet lefelé lépve a negyedév helyett hónapokra lebontva mutatja meg az értékesítési darabszámokat. Mivel a lefúrás művelet új adatokat ad a meglévőkhöz, új dimenzió hozzáadásával is megvalósítható ez a művelet. A hierarchiák természetesen az összegzés mellett más műveleteket is alkalmazhatnak, gyakran csupán csoportosításra szolgálnak, gondoljunk például a pénzügyi tételsorok (line item) dimenzió elemire: a bevételek, költségek, haszon, adó tételek kiszámítására. Szeletelés (slice): A szeletelés műveletet a kocka egy dimenzióján hajtjuk végre. A művelet eredménye a kocka egy része, egy szelete. A 2.4. ábrán látható a szeletelés művelet végeredménye, mellyel a kockából azokat az értékesítési értékeket választottuk ki, melyek eladási időpontja az első negyedévbe esett. Kockázás (dice) A kockázás művelet úgy választ ki egy részkockát, hogy közben több dimenzió értékeire is feltételek adottak, azaz az egyes dimenziók szeletei által meghatározott kocka metszetet választjuk ki. Az 2.4. ábrán látható kockázás művelet a központi kockán a következő feltételekkel hajtódott végre: (termék = P2 vagy P3 ), (időpont = I negyedév vagy II. negyedév ) és (eladó= S1 vagy S2 ). Elforgatás (pivot vagy rotate): Az elforgatás egy megjelenítési művelet, melynek célja, hogy a kocka tengelyeit az adatprezentációban úgy rendezzük át, hogy az adatokat megfelelő elrendezésben lássuk. Ez a jelentések átalakításának egyszerű módszere, ezzel a művelettel egy pillanat alatt egy új jelentéshez juthatunk. A 2.4. ábrán látható egy elforgatási művelet, melyen a termék és időpont tengelyek kétdimenziós szelete van elforgatva. Az elforgatás művelet speciális esete, amikor több dimenziót teszünk egy tengelyre a sor, oszlop és lapozó tengelyek közül. Például a sorokban egyszerre láthatjuk a tény költségeket hónapok (idő dimenzió) és költség kategóriák (a pénzügyi tételek dimenzió elemei) szerint. Ha három kiválasztott hónapról és 4 tételről van szó, ez 3*4 adatsort eredményez. Ha a megjelenítést ennél finomabban akarjuk szabályozni, akkor használjuk az úgynevezett aszimmetrikus jelentéseket, melyeknél a sorokban előforduló 12 kombináció közül csak az általam kiválasztott 5 kombinációt szeretném megjeleníteni (az aszimmetrikus jelentés eszköz például az Oracle Financial Analyzer eszközben áll rendelkezésre). Egyéb OLAP-műveletek: bizonyos OLAP rendszerekben további műveletek találhatóak. Ilyen például a keresztülfúrás (drill-across), mely egyszerre több tény-
69 2. FEJEZET: ADATTÁRHÁZAK ÉS KIAKNÁZÁSUK tábla lekérdezését végzi el. Alapfunkció, hogy lehetőség van mozgóátlag, mozgó összegzés, százalékos növekedés számítására, előző időszakhoz és előző év azonos időszakához hasonlítani az adatokat, és egyéb statisztikai műveletek elvégzésére is Hatékony adatkocka-kezelés Az adattárházak hatalmas mennyiségű adatot tárolnak, a döntéstámogató rendszerek felhasználói pedig másodperceken belül választ várnak a lekérdezéseikre, így az adattárházak számára elengedhetetlenül fontos a adatkockák hatékony tárolása, kezelése. A többdimenziós adatok kezelésének leglényegesebb része a dimenziók aggregálásának hatékony megvalósítása, SQL-műveletként fogalmazva a csoportosítás (group-by). Az így létrejövő adathalmazokat kockaszerű alakzatoknak, kuboidoknak nevezzük. A többdimenziós adatméret mérséklésére is eszközöket nyújt az OLAP (sparsity, azaz kitöltöttség kezelés). Egy adatkocka adatcelláinak száma az egyes dimenziók elemszámainak szorzata. Például egy háromdimenziós gyártási darabszám adatokat tartalmazó adatkocka 100 elemű termék dimenzió, 17 időszak (1 év hónap-negyedév-év időszakainak száma) és 5 elemű gyártás dimenzió (pl. 4 üzem és összvállalat) esetén = 8500 adatcellát tartalmaz. Sok dimenzió és nagy dimenzió elemszámok esetén ez "információ robbanáshoz" vezet, azaz igen nagy méretű lesz az adatkocka és így az adatbázis is. Mivel nem gyártanak minden terméket minden üzemben és minden időszakban, ezért az adatkocka "ritka" (sparse) lesz, azaz az adatcellák jó része nem tartalmaz értéket, így ha az üres cellákat nem tároljuk le, nagy tárterület takaríthatunk meg. Például 3 db 1000 elemszámú dimenzió esetén ez már = 10 9, azaz 1 milliárd adatcella! A ritkaság kezelés egyik módszere szerint csak azokat dimenzióérték n-eseket tároljuk le, melyekhez érték is tartozik. A ritkaság kezelésnek vannak automatikus módszerei: például azon tárolási lapok mentése, ahol van érték valamely, a lapon található adatcellában. Ezen túl a fejlesztő-tervező is definiálhat ilyen eszközöket: például composite és conjoint kezelés az Oracle terminológiában, itt csak azokat a dimenzió n-esek által meghatározott adatcellákat tárolják, melyekhez konkrét érték tartozik. Hány darab kuboid alakítható ki egy adatkockából? Ha a dimenziókhoz nem tartoznak hierarchiák, akkor egy adatkockában n dimenzió esetén a kuboidok száma 2 n. Azonban a gyakorlatban szinte mindig találkozhatunk hierarchiákkal, így egy n-dimenziós L szintből felépülő adatkockában n i=1 (L i + 1) darab kuboid található. A közöttük levő kapcsolatot szemlélteti a kuboidhálózat vagy más néven aggregációs rács. 61
70 2.3. A TÖBBDIMENZIÓS ADATMODELL ábra. Az adatkockán végezhető műveletek
71 2. FEJEZET: ADATTÁRHÁZAK ÉS KIAKNÁZÁSUK 2.5. ábra. Kuboidok hálózata Példaként három dimenziót vizsgálva (Termék, Dátum, Ország) a lehetséges kuboidok száma 2 3 = 8, felsorolva: {(Termék, Dátum, Ország), (Termék, Ország), (Termék, Dátum), (Ország, Dátum), (Termék), (Dátum), (Ország), ()}. Ezek a kuboidok a 2.5. ábrán látható kuboidok hálózatát alakítják ki. Az alap kuboid (base cuboid) mindhárom dimenziót (Termék, Dátum, Ország) tartalmazza, míg a csúcs kuboid (apex cuboid) arra az esetre utal, amikor a csoportosítás eredménye egyetlen cellát eredményez (2.5. ábra). A kuboidok materializációja alatt a fizikailag eltárolt kuboidokat értjük. Megvalósítása során három fő elvet lehet követni: A nem alap kuboidok közül egyet sem hoznak létre, azonban ez használat közben műveletek sokaságát eredményezi, így lassúságot okozhat (no materialization). Az összes kuboidot létrehozzák, ami adott esetben hatalmas tárhelyet igényel, miközben könnyen lehet, hogy számos kuboidra nem is lesz szükség (full materialization). A lehetséges kuboidoknak csak egy bizonyos részhalmazát hozzák létre, mely kompromisszumot jelenthet a tárigény és a válaszidő között. A kiválasztás alapja lehet a lekérdezések típusa, gyakorisága vagy a kuboid tárigénye (partial materialization). Tipikus további tárhelykímélő megoldás az, hogy egy-egy hierarchiában nem minden szintet számítanak ki előre, az átugrott szintekhez tartozó értékeket a lekérdezés futásidejében számítják ki, ezzel csökken a tárigény, de nő a válaszidő. Természetesen ez tovább finomítható, ha nem a hierarchia szinteket, hanem magukat a dimenzió ele- 63
72 2.3. A TÖBBDIMENZIÓS ADATMODELL meket is külön szabályozzuk ebből a szempontból, úgynevezett aggregációs térképek definiálásával. Egyes fejlett megoldásokban az összegzés, modellfuttatás és allokációs műveleteknél teljesen önműködően történik a kitöltöttség kezelése (az Oracle Enterprise Planning and Budgeting terméknél csak az előre kiszámított adatcellák számának százalékos értékét kell megadnia a felhasználónak), vagy egy varázsló tesz javaslatot a beállításokra A csillagséma modell Ebben a fejezetben a relációs adattárolás csillag, hópehely és a galaxis sémáit mutatjuk be. A leggyakrabban alkalmazott modellezési módszer a csillagséma, mely az adattárház adatait egy vagy több nagyméretű centrális táblában vagy ténytáblában (fact table) mely nem tartalmaz redundanciát, és meghatározza a többdimenziós modell dimenzióit és néhány kisebb, az egyes dimenziókhoz kapcsolódó táblákban (dimension table) tárolja. A ténytábla által meghatározott dimenziókhoz tehát egy vagy több dimenzió tábla tartozhat, melyek a csillag sugarait alkotják, míg a középpontban a ténytábla áll; innen a csillagséma elnevezés. A reláció típusa egy ténytábla és egy dimenziós tábla között egy-a-többhöz, így a dimenzió táblák jelentősen kisebb méretűek a ténytábláknál. Bár a ténytábla harmadik normál formában van, a dimenziós táblák második normál formában vannak (denormalizáltként hivatkoznak rá). A csillagséma dimenzióit gyakran lassan változó dimenzióknak is nevezik, mivel a dimenziós táblákban tárolják azon adatokat, melyekben változások ritkán következnek be. A 2.6. ábra egy termék adatbázisából kialakított csillagsémát mutatja be a vásárlások adatait részletezve. A csillagséma közepén látható a ténytábla, mely három dimenziót határoz meg: a termék típusát, az eladót és az eladás időpontját. A ténytábla rekordjai két típusú adatot tartalmaznak: dimenziókulcsokat (dimension keys) és adatokat (facts). A dimenziókulcsok a rendszer által automatikusan generált értékek, melyek egyértelműen meghatározzák a ténytábla egyes rekordjait, másképp fogalmazva meghatározzák a csillagséma által reprezentált többdimenziós struktúra koordinátáit. A ténytábla rekordjaiban egy vagy több adat található. Példánkban egyetlen adatmező található, mely az eladások számát adja meg A hópehelyséma modell A hópehelyséma a csillagséma változata azzal a különbséggel, hogy néhány, közvetlenül a ténytáblához csatlakozó dimenziós tábla további altáblákra van osztva, ezzel lehetővé téve a dimenziós táblák normalizálását, így a szükséges tárhely csökkentését. További előnye, hogy a tárolás hatékonysága javul a redundancia csökkenése miatt, azonban hátránya lehet, hogy a táblák számának növekedésével az adatlekérdezések bonyolultsága nőhet a denormalizált táblák lekérdezéseihez képest, s a megtakarított 64
73 2. FEJEZET: ADATTÁRHÁZAK ÉS KIAKNÁZÁSUK 2.6. ábra. Csillagséma a vásárlások adatainak tárolására tárhely is elenyésző lehet a ténytábla méretéhez képest, így ez a struktúra nem vált a csillagsémához hasonlóan elterjedtté. A csillagsémához hasonlóan a hópehelyséma is a táblák kapcsolódásával kialakított topológiáról kapta nevét A galaxisséma modell A csillagsémának ebben a változatában egynél több ténytábla található, melyek a dimenziós táblákat is megoszthatják egymás között. Példánkban tegyük fel, hogy egy termék vásárlási információi mellett szeretnénk információt tárolni a termékhez adott ajándékokról is. Egyik lehetőség, hogy tervezünk egy galaxissémát, mely tartalmaz egy második ténytáblát is a promóciós termékekről. Egy ilyen struktúra látható a 2.7. ábrán. A 2.7. ábra promóciós ténytáblájának minden rekordjában egy termék kulcs, ajándék kulcs, eladási időpont kulcs és elfogadások száma található. Látható, hogy a redundanciát jelentősen csökkentettük azzal, hogy ahol csak ajándék dimenzió az egyes promóciós ajándéktárgyakat részletesen tartalmazza, és a promóciós ténytábla ajándék kulcsával áll kapcsolatban. A promóciós tábla időpont kulcsa pedig az eladási időpontok dimenziós táblát használja megosztva az eladási ténytáblával. Az időpont kulcs kapcsolata meghatározza a promóció kezdetének időpontját, s ha feltételezzük, hogy egy promóció csak a hónap végéig tart, nincs szükségünk egy második (vagy egy kibővített) idő dimenzióra. Ha a promóciók a naptári hónaptól különböző ideig 65
74 2.4. GYAKORLATI PÉLDA: OLAP-KOCKA LÉTREHOZÁSA MS EXCELBEN 2.7. ábra. Galaxis séma tartanának, szükség lehetne a második idő dimenzióra, mely meghatározná a promóció idejének végét. A promóciós tábla utolsó mezője végül azt határozza meg, hogy a promóció ideje alatt hányan fogadták el a felkínált ajándéktárgyat Gyakorlati példa: OLAP-kocka létrehozása MS Excelben Ebben a fejezetben bemutatunk egy egyszerű példát, melynek segítségével könnyen felépíthetünk MS Excelben egy adatkockát meglévő MS Access adatbázisunk adatainak importálásával Adatelérés ODBC használatával Első lépésben az adatbázisunk adatait kell importálnunk az OLAP-számára, ehhez az ODBC-t (Open DataBase Connectivity) használjuk fel. Az ODBC egy szabványos adatbázis hozzáférési metódus, azaz különböző alkalmazások számára az adatok eléréséhez egységes felületet alakít ki, ezzel lehetővé téve, hogy a programok az adatokat elérjék függetlenül attól, hogy milyen adatbáziskezelő rendszer kezeli azokat. Az ODBC így tulajdonképpen egy közbülső réteget képez az adatbázis és az alkalmazás között, melynek feladata, hogy az alkalmazás kéréseit úgy átalakítsa, hogy az adatbáziskezelő azt 66
75 2. FEJEZET: ADATTÁRHÁZAK ÉS KIAKNÁZÁSUK 2.8. ábra. A lekérdezéshez használt oszlopok kiválasztása megértse. Így például az Excel adatokhoz juthat egy MS Access, MySQL vagy Oracle adatbázisból. Először is ellenőrizzük, hogy a Felügyeleti eszközök között telepítve van-e az ODBC adatforrások. Az ODBC adatforrásokat kiválasztva a Felhasználói DSN fülön a Hozzádadás gombra kattintva válasszuk ki az illesztőprogramot (ebben az esetben a MS Access Driver), adjuk hozzá a saját adatforrásunkat (jelen esetben az Access fájlunkat), és nevezzük azt el. Ezzel a művelettel lehetővé tettük, hogy az Excelbe közvetlenül importálhassuk később az adatbázisunk adatait. Természetesen mód van távoli adatok, adatbázisszerverek adatainak importálására is. A megfelelő illesztőprogramok beszerzése után könnyen kapcsolódhatunk MySQL, Oracle, MS SQL server adatbázisokhoz, melyek adatait aztán felhasználhatjuk legtöbb programunkban. Miután létrehoztuk saját adatforrásunkat, Excelben az Adatok > Külső adatok importálása > Új adatbázis-lekérdezésre kattintva választhatjuk ki az adatforrásunkat. Következő lépésben a lekérdezésekhez szükséges oszlopokat választhatjuk ki, majd szükség esetén különböző szabályok szerint szűrhetjük, illetve rendezhetjük meglévő adatainkat. A lekérdezés varázsló utolsó lépésében eldönthetjük, mi történjen az importált adatainkkal. Közvetlenül átadjuk az Exelnek, a lekérdezést szerkesztjük a Microsoft Queryben vagy OLAP-kockát hozunk létre adatainkból? Példánkban válasszuk ez utóbbit! Az OLAP-kocka létrehozása Ekkor az OLAP-kocka készítő varázsló segítségével már könnyen kialakíthatjuk adatkockánkat. Először is a Forrásmezők közül az adatmezőket válasszuk ki, melyek az adatkockánkban az adatok lesznek. Legalább egy mezőt kell kiválasztani. Kiválaszthatók az összegző műveletek (összeg, darab, minimum és maximum), és nevet adhatunk 67
76 2.4. GYAKORLATI PÉLDA: OLAP-KOCKA LÉTREHOZÁSA MS EXCELBEN 2.9. ábra. A dimenziók kiválasztása az egyes mezőknek, ha a varázsló által felajánlott nevet meg szeretnénk változtatni. A következő lépésben egy-egy mezőből dimenziókat hozunk létre, továbbá a mezőket különböző részletszintekben rendezhetjük, lehetővé téve ezzel, hogy a felhasználók maguk választhassák meg, milyen részletességgel szeretnék látni az adatokat. A Forrásmezők listából húzzuk a kiválasztott mezőket a Dimenziók részre. Ezek hozzák létre a legfelsőbb szintű dimenziókat, melyeken belül új szinteket hozhatunk létre. A kocka típusának meghatározása során három fő típusból választhatunk. Az első típus, az adatok beolvasása kérésre, melynek jellemzője, hogy a kocka csak a kimutatás alkalmával épül fel, és csak azokat az adatokat tölti fel, melyek a kimutatás megjelenítéséhez feltétlenül szükségesek. Így például, ha a kocka több vevő vásárlási adatait tárolja, de először csak az egyik vevő adataira vagyunk kíváncsiak, akkor csak a keresett adatokat olvassa be. Ha azonban más vevők adataira is kíváncsiak vagyunk, a kockának minden váltáskor új adatokat kell beolvasnia, ami hosszabb időbe telhet. A valamennyi adat egyidejű beolvasása választásával az előző típushoz hasonlóan a kocka a kimutatás megnyitásakor épül fel, ekkor azonban az összes adat beolvasása megtörténik, így nem kell várakoznunk, ha a kimutatás tartalmát változtatjuk. A fájlban mentett kocka esetében a kocka valamennyi adatát fájlba mentjük, és a lemezen tároljuk. Abban az esetben előnyös ez a típus, ha a kimutatások tartalmát a felhasználók gyakran változtatják, és nem kell takarékoskodni a lemezterülettel. Segítségével közzétehetőek a kimutatások, ráadásul a bizalmasan kezelendő adatokat kihagyhatjuk belőle. 68
77 2. FEJEZET: ADATTÁRHÁZAK ÉS KIAKNÁZÁSUK ábra. Forrásadatok megjelenítése OLAP-műveletek Az eredményül kapott kimutatást az Excelben a kimutatásokra használható összes művelettel feldolgozhatjuk, szerkeszthetjük. Így például kimutatás-diagramot készíthetünk, melyen az elrendezést könnyen megváltoztathatjuk, ha a Kimutatás mezőlista kiválasztott mezőit az adatsor, a kategória vagy az adatterületre húzzuk át. A tábla dimenzióinak részleteit megjeleníthetjük, elrejthetjük, értékeit csoportba rendezhetjük, vagy a létrehozott csoportokat felbonthatjuk. A kimutatás mezőit emelkedő vagy csökkenő sorrendbe rendezhetjük, a mezőkre kattintva a forrásadatokat tekinthetjük meg (2.10. ábra). Tételek megjelenítése, elrejtése Egy oszlop- vagy egy sormezőben a tételek megjelenítéséhez, elrejtéséhez kattintsunk a mező neve melletti lefelé mutató mezőnyílra, majd jelöljük be a megjelenítendő négyzeteket, és töröljük az elrejtendő négyzetek jelölését (2.11. ábra). Ha a mezők szintekbe vannak rendezve, a plusz mezőre kattintva válnak láthatóvá az alacsonyabb szintű tételek. A két pipa jelölés arra utal, hogy az alacsonyabb szintű tételek valamelyike vagy mindegyike ki van jelölve. Az adatok rendezése Az Excel segítségével a kapott eredményeket emelkedő vagy csökkenő sorrendbe rendezhetjük, a tételeket rendezhetjük egy adott adatérték szerint, majd szükség esetén a tételek eredeti sorrendjét visszaállíthatjuk. A kimutatás tételeinek rendezéséhez kattintsunk arra a mezőre, amely a rendezni kívánt tételeket tartalmazza, majd a Kimutatás eszköztáron válasszuk a Rendezés és toplista parancsot (2.12. ábra). Az Automatikus 69
78 2.4. GYAKORLATI PÉLDA: OLAP-KOCKA LÉTREHOZÁSA MS EXCELBEN ábra. Tételek elrejtése, felfedése ábra. Kimutatás rendezése rendezés csoportban jelöljük be az Emelkedő vagy a Csökkenő választókapcsolót, majd a Felhasznált mező listában válasszuk ki a rendezés alapjául szolgáló adatmezőt. A tételek eredeti sorrendjének visszaállításához válasszuk újra a Kimutatás eszköztáron a Rendezés és toplista parancsot, majd jelöljük be a A forrás sorrendje szerint választókapcsolót. Tételek csoportosítása A kimutatás tételeinek csoportosításához válasszuk ki a sor- vagy oszlopmezők csoportosítandó tételeit, majd a Kimutatás eszköztáron válasszuk a Tagolás és részletek megjelenítése és a Csoportba foglalás parancsot (2.13. ábra). Fontos, hogy csak az azo- 70
79 2. FEJEZET: ADATTÁRHÁZAK ÉS KIAKNÁZÁSUK ábra. Tételek csoportosítása nos szintbe tartozó tételek vonhatók össze, tehát például különböző Évek Negyedeiből nem készíthetők csoportok. Az elkészült csoportokhoz tartozó tételeket megjeleníthetjük vagy elrejthetjük a Részletek mutatása és a Részletek elrejtése paranccsal, vagy akár a teljes csoportot megszüntethetjük a Csoport bontása paranccsal. A kimutatás adatösszegzési módjának megváltoztatása Az adatösszegzés módjának megváltoztatásával az adatokat megjeleníthetjük például az éves eladások százalékos értékeként (2.14. ábra). Ehhez kattintsunk a kimutatás adatmezőjére, majd a Kimutatás eszköztáron válasszuk a Mezőbeállítások parancsot. Az Egyebek gombra kattintva tudjuk megváltoztatni az adatok megjelenítési módját egy legördülő listából kiválasztva: a Sor %-a az egyes sorok adatait a teljes sor százalékaként jeleníti meg, az Összeg %-a az adatokat a kimutatás összes adatának százalékaként jeleníti meg, míg a Százalékos eltérés az adatok százalékos eltérését adja meg a Viszonyítási mező és a Viszonyítási tétel értékeihez viszonyítva Adattárházak tervezése A komplex információs rendszerek tervezése egy nagy és összetett építmény tervezéséhez hasonlítható, melyet a tulajdonos, az építész és a kivitelező mind-mind más nézőpontból szemlélnek. Az adattárházak tervezése során négy fő nézetet különböztetünk meg: adatforrás nézetet (data source view), a top-down nézetet, az adattárház (data warehouse view) nézetet és az üzleti lekérdezés (business query) nézetet. A top-down nézet az adattárházhoz szükséges információk kiválasztását teszi le- 71
80 2.5. ADATTÁRHÁZAK TERVEZÉSE ábra. Az adatösszegzés módjának megváltoztatása hetővé, ezzel elősegítve a meglévő és jelentkező üzleti igények kielégítését. Az adatforrás nézet láthatóvá teszi, hogy az operatív rendszerekben meglévő adatokhoz hogyan lehet hozzáférni. Az adatforrásokat általában hagyományos adatmodellezési technikákkal (pl. ER-modell, CASE) modellezik. Az adattárház nézet a ténytáblákat és a dimenziótáblákat mutatja be az adattárházban tárolt adatokkal együtt, beleértve az előre kiszámított összegeket, és az adat forrására, keletkezésének időpontjára vonatkozó további információkat (meta adatok). Végül, az üzleti lekérdezés nézet a végfelhasználó nézőpontjából kialakuló adattárház-nézet. Egy adattárház kialakítása és működtetése rendkívül összetett feladat, mivel szükség van üzleti, technológiai és informatikai ismeretekre. Az üzleti ismeretek alkalmazásával érthetjük meg, milyen típusú felhasználásra, milyen üzleti problémák megoldására van szükség, milyen lekérdezések, elemzések előállítása szükséges. Üzleti ismeretekre van szükség, hogy a tárolt adatok jelentőségét megértsük, és az elvárt üzleti információkat lekérdezésekké alakítsuk át. A technológiai ismeretek segítségével előkészítik a terepet, s az analizátorok a kvantitatív információkból értékelést készíthetnek, az adattárház történeti adatai segítségével következtetéseket vonhatnak le. A technológiai ismeretekkel megállapítható, hogy a már üzemelő tranzakciós rendszerből hogy nyerhetők ki az adatok, hogy hozhatók létre az extraktorok, melyek adatokat továbbítják a tranzakciós rendszerből az adattárházba, és mely módon alakítható ki az adattárház adatait a tranzakciós adatbázis adatai alapján megfelelő gyakorisággal frissítő megoldás. Üzleti ismeretekkel mintákat és trendeket ismerhetünk fel, illetve adatokat extrapolálhatunk. Végül 72
81 2. FEJEZET: ADATTÁRHÁZAK ÉS KIAKNÁZÁSUK informatikai ismeretek szükségesek, hogy a különböző gyártóktól beszerzett szoftverek, technológiák és a végfelhasználók közötti információáramlást gyorsan és hatékonyan megvalósítsuk. Egy adattárház tervezési folyamata három fő lépésből áll: 1.) Az architektúra megtervezése, 2.) Az implementációs mód kiválasztása, 3.) Kivitelezés (rolling out) Az architektúra megválasztása Az architekúra megválasztása fontos eleme az adattárházak tervezési folyamatának, hiszen itt kerül sor az adattárházak és az adatpiacok elhelyezkedésének és kapcsolatának meghatározására is. Így az adatokat egy központi helyen tárolják, melyet központilag szabályoznak, vagy elhelyezkedhetnek szétszórva, ilyenkor is szabályozhatják azokat egy központi helyről, vagy pedig szintén elosztott módon. A következőkben bemutatásra kerülnek a globális, a független és az összekapcsolt architektúrák, azonban ezek kombinációi is alkalmazhatók egy adattárház létrehozása során. Például előfordulhat, hogy egy adattárház fizikailag elosztott módon helyezkedik el, de központilag irányítják, míg az adatpiacok tervezése során a bottom-up megközelítést alkalmazták. A globális adattárház-architektúra A globális adattárház egy olyan teljesen integrált adattárház, mely a vállalat egészét vagy annak nagy részét látja el a döntéshozáshoz szükséges információkkal. Így a tervezése során az elsődleges szempont a vállalat, mint önálló rendszer egészének igényeit szem előtt tartani. Az architektúra globális volta azonban nem jelenti az adattárház központosítottságát, centralizáltságát. A globális jelző elsősorban az adathozzáférés és használat hatáskörére irányul, nem az adatok fizikai elhelyezkedésére. A globális adattárház ugyanis elhelyezkedhet fizikailag centralizált vagy elosztott módon is a vállalaton belül. Centralizált elhelyezkedés során az adattárház fizikailag egyetlen helyen kerül tárolásra, felügyeletéről pedig az informatikai csoport gondoskodik. Az elosztott globális adattárházak esetében az adatok a vállalaton belül fizikailag szétszórva helyezkednek el, azonban felügyeletükről itt is az informatikai csoport gondoskodik, szervezeti szinten ugyanazokat a felügyeleti és adminisztratív eszközöket alkalmazva, ilyenkor az adatokat a teljes vállalat használhatja. Az adattárházak felügyelete azonban nem feltétlenül jelenti azok irányítását is. Elosztott adattárházak esetében például az irányítást végezhetik a vállalat különböző részlegei is, azaz ők döntenek arról, hogy mely adatok kerülnek be az adattárházba, mikor szükséges az adatok frissítése, és mely egységek férhetnek hozzá az adatokhoz. Mindezek megvalósításához azonban szükség van az informatikai csoport támogatására is. A ábrán látható két globális adattárház implementáció. 73
82 2.5. ADATTÁRHÁZAK TERVEZÉSE ábra. Globális adattárház architektúra Az ábra felső részében látható adattárházban az adatok fizikailag három helyen vannak szétosztva, az ábra alsó részén egyetlen, centralizált helyen találhatók. Az adattárház adatait általában tranzakciós adatbázisokból és külső adatforrásokból nyerik meghatározott időközönként, általában olyankor, amikor alacsonyabb a rendszerek terheltsége. Az adattárházba kerülés során szükség lehet még az adatok szűrésére, hogy a nem kívánt adatokat eltávolítsák, és transzformációra, például adattisztításra vagy előaggregálásra, hogy az adatok megfeleljenek a minőségbeli és felhasználhatósági követelményeknek. Az önálló adatpiac architektúra Az önálló adatpiac-architektúra (independent data mart architecture) olyan különálló adatpiacok összességét foglalja magában, melyeket különböző vállalati egységek, osztályok felügyelnek és irányítanak a saját igényeik kielégítése érdekében. Előfordulhat, hogy a különböző adatpiacok között egyáltalán nem áll fenn kapcsolat, főként olyan esetekben, ha az adatok belsőleg keletkeznek. Ha az adatokat tranzakciós adatbázisokból töltik be, az informatikai csoport támogatására is szükség lehet, szerepük még jelentősebb lehet, ha az adatok vállalaton kívüli adatforrásokból származnak. A ábra felső részén látható az önálló adatpiac-architektúra, mely egy tranzakciós adatbázisból vagy külső adatforrásból kapja az adatait, azonban az adatok származhatnak egy már létező adattárházból is. Az önálló adatpiac-architektúra általában könynyen megvalósítható akár a szervezeti egységek önálló erőforrásainak felhasználásával is, így ez a megközelítés nem ró jelentős terhet az informatikai csoport számára, továbbá gyors implementációt tesz lehetővé. Hátránya azonban az alacsony szintű integráltság és az adatok globális hozzáférésének hiánya, így könnyen előfordulhat, hogy bizonyos 74
83 2. FEJEZET: ADATTÁRHÁZAK ÉS KIAKNÁZÁSUK ábra. Független és összekapcsolt adatpiac architektúra adatokhoz csak a szervezeti egység munkatársai férhetnek hozzá, ez megnehezíti az adatpiacok kiterjesztését és integrálását. Az összekapcsolt adatpiac architektúra Az összekapcsolt adatpiac architektúra (interconnected data mart architecture) egy elosztott adattáron alapul, azonban a szervezeti egységek által létrehozott adatpiacok integrálhatók vagy összekapcsolhatók annak érdekében, hogy a vállalat részére egy átfogóbb adatnézetet kapjunk. Magas szintű integráltság esetén eljuthatunk egy globális adattárház-architektúráig is, így a különböző szervezeti egységek dolgozói hozzáférést nyerhetnek, és használhatják a többi adatpiac adatait is. Az architektúra a ábra alsó részén látható. Az adatok forrása ebben az esetben is lehet egy globális adattárház a tranzakciós és a külső adatbázisok mellett. Az összekapcsolt adatpiac-architektúrát általában a szervezeti egységek felügyelik és irányítják. Így ők döntenek róla, hogy milyen adatforrást töltenek az adatpiacba, mikor szükséges azt frissíteni, ki férhet hozzá és hol helyezkedik el. Előfordulhat, hogy az implementációhoz szükséges erőforrásokat is maguk biztosítják, így jelentősen tehermentesítve az informatikai csoport munkáját, melynek legfontosabb feladata az adatpiacok közötti kapcsolat létrehozása és karbatartása. 75
84 2.5. ADATTÁRHÁZAK TERVEZÉSE Implementációs modellek Vállalati adatmodellezés A vállalati adatmodell (EDM, enterprise data model) fogalom tulajdonképpen a vállalathoz kötődő adatok konzisztens definíciója a magas szintű üzleti nézettől egészen a logikai adattervig, továbbá magában foglalja az egyes eszközök fizikai adattervezését is (2.17. ábra). Az adatmodellezést megelőzően az igények felmérésére kerül sor. Ennek során a stratégiából bontják ki a célokat, igényeket, továbbá prioritásokat rendelnek az egyes célokhoz, funkciókhoz. Az adatmodellezés folyamata a következő részfolyamatokra bontható: Az információs tervezés során az üzleti fogalmakat rögzítik, melyek száma általában 10-től 30-ig terjed. Ilyen fogalmak lehetnek például a vásárló, a termék, a szervezet vagy az ütemterv. Ennek a tervezési fázisnak az elsődleges célja az adattárház feladatkörének egyértelmű meghatározása, melyet aztán a modellezés későbbi lépéseiben felhasználhatnak. Az üzleti elemzés fázisában az elsődleges fogalmak tartalmát pontosan meghatározzák, illetve a tartalmat csoportosítják különböző üzleti szabályok szerint. A fázis elsődleges célja, hogy a modellezésben nem járatos, üzlettel foglalkozó emberek bevonásával összegyűjtsék és meghatározzák az adattárházzal szembeni vállalati elvárásokat. A logikai adatmodellezés során kialakul a gyakran több száz entitásból álló logikai adatmodell, mely harmadik normálformában van, és tartalmazza már az összes entitást, relációt és attribútumot. A fizikai adattervezés fázisában meghatározzák az olyan fizikai korlátokat, mint a teljesítmény, tárhely és az adat fizikai elhelyezkedése. A fázis célja a fizikai implementáció megtervezése. A vállalati adatmodellezés elsődleges előnyei az egységes fejlesztési környezet kialakítása, az adatok megosztásának lehetősége a szervezeti egységek között és a konzisztens adatdefiníciók kialakítása. A gyakorlati tapasztalatok azonban kevés sikerről számolnak be, ami a következő okokra vezethetők vissza. A vállalati adatmodell a teljes vállalkozást lefedi, így a létrehozására irányuló projekt gyakran akkorává válik, hogy csak nagyon hosszú távon nyújt használható eredményeket. A vállalati adatmodell projektjébe bevont embereknek jó rálátásuk kell hogy legyen a saját részterületükhöz kapcsolódó különböző üzleti folyamatokra, így megtalálásuk és bevonásuk a projektbe komoly erőfeszítéseket jelenthet. A nagy adattárház projektek tervezése és végrehajtása 76
85 2. FEJEZET: ADATTÁRHÁZAK ÉS KIAKNÁZÁSUK ábra. Vállalati adatmodellezés során ezért célszerű az egyes mérföldkövekhez, inkrementumokhoz külön eredménytermékeket rendelni, hogy a megrendelők, projekt szponzorok lépésenként kapjanak konkrét üzleti eredményeket az adattárháztól. Az adattárház módszertanok és a projektvezetési módszertanok alkalmazásával csökkenthetjük az adattárház implementációjának kockázatát. A jelentősebb adattárház szállítók rendelkeznek ilyen módszertanokkal. Az Oracle Corporation például rendelkezik egy projekt vezetési módszertannal (PJM) és az Oracle Data Warehouse Methoddal. Az adatgranuláltsági modell Adattárházak esetében adatgranuláltságon az adatok összegzésének szintjeit értjük. Az adatok tehát minél részletesebb formában vannak jelen, annál kevésbé tartjuk granuláltnak, és fordítva, minél kevésbé részletesek, annál inkább granuláltak. Az adatgranuláltság rendkívül fontos az adattárház-tervezési folyamatban, mivel lehetővé teszi fontos kompromisszumok meghozását. Ilyen például az adatmennyiség (így a tárolás költsége) és a teljesítmény közötti kompromisszum, hiszen nagyobb adatmennyiség kezelése nagyobb teljesítményű hardvert igényel. Egy másik fontos kompromisszum az adatok részletezettsége és a teljesítmény, adattárolás költsége közötti összefüggés kezelése. A granuláltsági szint megfelelő megválasztása ugyanis jelentősen befolyásolja az adattárházban tárolt adatok mennyiségét, így meghatározza a különböző típusú végrehajtható lekérdezéseket is. Hogy részletesebben megvizsgáljuk az adatgranuláltsági modellt, vegyük a ábrán látható két modellt, melyek egy bank átutalási tranzakcióit tárolják. Az ábra bal oldalán látható az alacsony granuláltságú modell, mely ha feltételezzük, hogy egy em- 77
86 2.5. ADATTÁRHÁZAK TERVEZÉSE ábra. Adatgranuláltsági modell bernek havonta átlagban 50 banki tranzakciója van, és egy tranzakció tárolásának igénye 150 bájt, akkor havonta közel 7,5 kilobyte-ra van szükség egy egyén tranzakcióinak tárolásához. Az ábra jobb oldalán látható a kevésbé részletes modell (tehát alacsonyabb granuláltságú), havonta összegezve egyetlen rekordban tárolja az egyén banki tranzakcióit. Az összegzett rekord mérete valószínűleg nagyobb lesz 150 bájtnál, azonban így is jelentős hely megtakarítást érhettünk el. Mint már említettük, a granuláltsági szint erősen meghatározza a végrehajtható lekérdezések típusát. Az előbbi példát vizsgálva alacsony granuláltság esetén választ adhatunk arra a kérdésre, hogy egy adott egyén mikor végzett banki tranzakciókat egy hónap alatt, és lehetőség van az átutalási visszaéléseket vizsgáló adatbányászati elemzések elvégzésére; magasabb szintű granuláltság esetén ezekre a kérdésekre nem adható válasz, mivel az adatokat havonta összegezték, viszont havi elemzéseket készíthetünk a rendszerben. Olyan vállalatok esetében, ahol nagy mennyiségű adatot tárolnak, különböző granuláltsági szinteket használnak az előbbiekben említett kompromisszumok kialakítására, ezzel kialakítva a multigranuláltsági modellt (multigranularity model). Az adattárház adatait például részletes nyers adatokra és összegzett adatokra oszthatjuk fel. Az előbbi esetben az adatokat a lehető legalacsonyabb granuláltsági szinten tárolják bármilyen összevonás vagy összegzés nélkül. Ezen a szinten az adatok mennyisége különösen nagy lehet, így azt gyakran egy különálló médiumon, általában szalagon vagy optikai le- 78
87 2. FEJEZET: ADATTÁRHÁZAK ÉS KIAKNÁZÁSUK mezen tárolják, és csak szükség esetén töltik be a lemezre a gyorsabb és könnyebb elérés érdekében. Az összegzett adatokat a tranzakciós adatok olyan szintű összevonásával nyerik, hogy ezzel a legtöbb gyakori lekérdezés megválaszolható legyen. Logikai adatpartíciós modell Az adattárházak tervezése során fizikai és logikai adatpartíciókat különböztethetünk meg. A fizikai partíciók a fizikai implementáció követelményeinek megfelelően kerülnek kialakításra. A logikai particionálás alapja a releváns témakörök (subject area) meghatározása, mely lehet például a vásárló, termék, számla vagy egy földrajzi egység, s ezek alapján történik meg az adatok felosztása. Tranzakciós adatbázisok esetében a particionálás alapja az alkalmazás vagy a funkcionalitás, mivel ezek a rendszerek tranzakció-orientáltak, s az ezekhez kapcsolódó funkciókat látják el. Céljuk általában a funkció minél gyorsabb végrehajtása, mivel olyan kérdésekre keres választ, mint például Kovács úr bankkártyája elfogadható? Az adattárházak esetében ezek a lekérdezések sokkal általánosabbak, stratégiai jellegűek, így például: Melyik termék fogy a legkevésbé?. Ez az alapvető oka annak, hogy az adattárházakat témakörök szerint csoportosítják, létrehozva ezzel a logikai adatpartíció alapvető egységét. A témakörök meghatározásához felhasználható az 5W1H-val rövidített ökölszabály: a when, where, who, what, why and how, azaz mikor, hol, ki, mit, miért és hogyan, mely kérdőszavakra adott válaszok segítségével meghatározhatjuk a témaköröket. Így például a ki -re adott válasz lehet a vásárló, az alkalmazott, a vezető és a piaci vetélytárs. Az ilyen felosztás célja az adatok rugalmas elérése, menedzselése, az adattárház skálázhatósága és hordozhatósága. A témakörök meghatározása után a közöttük levő kapcsolatok meghatározása következik, mely később az adattárház dimenzióinak meghatározásában is segíthet Implementációs módszer kiválasztása Az implementációs mód kiválasztását elsősorban a meglevő információs rendszer infrastruktúrája, az elérhető erőforrások, a kiválasztott architektúra, a szervezeten belül az adatok globális elérhetősége határozza meg. Adattárházak tervezésére használható a top-down megközelítés, a bottom-up megközelítés vagy a kettő kombinációja. A top-down megközelítés A top-down megközelítés egy általános tervezési lépéssel kezd, amely nagyon hasznos lehet olyan esetekben, ha a technológia már jól kialakult és ismert. Ez a tervezési lépés az implementációs projekt első lépésében jelentős munkát igényel az érintett osztály, munkacsoport tagjainak a bevonásával. Azon döntéseket, melyek az adatok forrására, 79
88 2.5. ADATTÁRHÁZAK TERVEZÉSE ábra. Top-down tervezés kezelésének titkosságára, adatstruktúrákra és a teljes adatmodellre vonatkoznak, már a tényleges implementáció megkezdése előtt meg kell hozni. Ez a megközelítés a ábrán látható. Ebben az esetben az adatpiacok létrehozására csak a későbbiekben, a globális adattárház létrehozása után kerül sor. A top-down megközelítés konzisztens adatdefiníciókat eredményez, azonban jelentős tervezési költségekkel jár a projekt kezdetén, ráadásul az implementáció elhúzódását okozhatja, amit a vezetők általában vonakodva fogadnak el. Ez a megközelítés olyan esetekben működhet jól, ha a vállalat informatikai rendszere centralizált, a különböző osztályoknak, szervezeti egységeknek nincs külön erőforrásuk egy önálló adatpiac létrehozásához, és rendkívül fontos a szervezet-szintű, erős projekt szponzor működése. A bottom-up megközelítés A bottom-up megközelítés kísérletezéssel, egy prototípus kifejlesztésével kezdődik. Ez olyan esetekben előnyös, ha a technológia, struktúrák még fejlesztés alatt állnak, mivel ez lehetővé teszi a továbbfejlesztést és a technológia előnyeinek kihasználását jelentős technológiai elkötelezettségek nélkül. Ez a megközelítés napjainkban széles körben elterjedtté vált, mivel az adatpiacok létrehozásából származó eredmények azonnal hasznosíthatóak és felhasználhatóak egy általánosabb adattárház-struktúra kialakításához. A ábrán látható a bottom-up megközelítés, melyben az adatpiacot a globális adattárház kialakítása előtt vagy azzal egyidőben hozzák létre közvetlenül a tranzakciós adatbázisból vagy az utóbbi esetben a globális adattárházból. Ennek a megközelítésnek a kockázata, hogy egy esetleges továbbfejlesztéshez a tapasztalatokon túl maga az adatpiac csak részben használható fel. Számos vállalat a bottom-up megközelítést választja, aminek elsődleges oka a gyors visszacsatolás. A gyors eredményeket az teszi lehetővé, hogy az adatpiacok tervezése egyszerűbb folyamat a globális adattárházak tervezésénél, továbbá általában kevesebb erőforrásigénnyel jár az implementáció kezdeti szakaszában. A megközelítés előnyei mellett figyelembe kell venni a hátrányait is. Az adatpiacok létrehozása során könnyen léphet fel inkonzisztencia és redundancia, azonban ezek előfordulása körültekintő tervezéssel minimálisra csökkenthető. Több adatpiac létrehozása jelentős terhet róhat a tranzakciós adatbázisra a gyakori adatkinyerő műveletek miatt. 80
89 2. FEJEZET: ADATTÁRHÁZAK ÉS KIAKNÁZÁSUK ábra. Bottom-up tervezés A kombinált megközelítés A kombinált megközelítés során igyekeznek kihasználni a top-down megközelítés stratégiai tervezettségének előnyeit, illetve a bottom-up tervezés gyors implementációját és alkalmazkodóképességét. A két megközelítés kiegyensúlyozott alkalmazása nehéz feladat lehet, de egy megfelelő projektvezető és projekt szponzor segítségével megoldható. E megközelítés egyik kulcsfontosságú része annak meghatározása, hogy a tervezés mekkora szerepet játszik a bottom-up megközelítéssel kialakított adatpiacok létrehozása során. Ha az adatpiacokat már kialakították, azt kell meghatározni, hogy kezeljék a több adatpiac számára együttesen szükséges adatokat: egy globális adattárház kialakításával vagy egy olyan adattár létrehozásával, melyhez az adatpiacok hozzáférnek. Bizonyos esetekben megfelelő lehet az is, ha adatpiacokban az adatok duplikálódnak, ez legtöbbször egy kompromisszumot jelent a tárhely, a hozzáférés nehézkessége és az adatok konzisztenciája között Adattárház létrehozásának folyamata Az adattárházak létrehozásának folyamata hasonló bármely fejlesztési projekthez, mindamellett leglényegesebb eleme a folyamat iteratív volta. Noha minden projektben találkozhatunk valamilyen szintű iterációval, ebben az esetben sokkal nagyobb jelentőségű, mivel az adattárház bizonyos részei elkészülhetnek, míg a többi még fejlesztés alatt áll, így a felhasználók nagyon gyorsan hasznosíthatják a kapott eredményeket. Az ábra bal oldalán látható projekt menedzselés a teljes folyamatot végigkíséri, elsődleges feladata nem magának az adattárház-tervezésnek az irányítása, hanem az azt megvalósító projektnek a felügyelete és irányítása. A projekt definiálása során a projektre vonatkozó általános érvényű célokat, az adattárházra vonatkozó követelményeket határoznak meg. A jól megfogalmazott célok választ kell adjanak olyan kérdésekre, hogy Mit akar a felhasználó vizsgálni? és Miért akarja a felhasználó azt vizsgálni?. 81
90 2.5. ADATTÁRHÁZAK TERVEZÉSE ábra. Adattárház fejlesztésének folyamata A követelmények összegyűjtése során az adattárházzal kapcsolatos elvárásokat gyűjtik össze, melyekkel a fő probléma, hogy az idő során változhatnak. Az itt összegyűjtött információknak a következő kérdésekre kell választ adni: Miért van szüksége a felhasználónak az adatokra?, Az adatok mikor kerüljenek betöltésre? és Hol mennek végbe a releváns folyamatok?. Az adattárház modellezése során a már korábban meghatározott követelmények alapján határozzák meg az adattárház-modellt, így ezek a lépések a valóságban gyakran össze is mosódnak. Fő lépései az ER-modell létrehozása, a dimenzionális modell létrehozása és a metaadatok meghatározása. A modell validálásának célja kettős: egyrészt meg kell vizsgálni, hogy a modell megfelel-e a felhasználói követelményeknek, másrészt a felhasználóval meg kell értetni a modellt, különben nem lesz képes megfelelően kihasználni az adattárház nyújtotta előnyöket. Az adattárház tervezésének lépésében meghatározzák az adatforrásokat, így például a relációs táblákat vagy flat fájlokat, interface-eket, majd kidolgozzák az adattisztítási és adattranszformációs módszereket, majd ennek a lépésnek a validálása után megkezdődhet a tényleges implementálás, ami a folyamat iterativitása miatt visszavezet a tervezés elejére. Egy OLAP kockát az Oracle adattárház környezetben az Oracle Warehouse Builder ETL-eszközzel avagy az Analytic Workspace Manager többdimenziós adminisztratív eszközzel hozhatunk létre. Amint elkészültek a leképezési modellek, az OWBvel legenerálható az adattárház létrehozásához és kezdeti feltöltéséhez szükséges SQL- 82
91 2. FEJEZET: ADATTÁRHÁZAK ÉS KIAKNÁZÁSUK és PL/SQL-programkód, mind a relációs, mind az OLAP alapú célstruktúrákhoz. Ezzel idő takarítható meg, és kevesebb SQL-programozási szakismeret szükséges hozzá. Emellett az OWB lehetővé teszi a felhasználó számára, hogy az ETL bármely lépése során megvizsgálja, és szükség esetén módosítsa a generált programkódot. Ez rugalmas megoldást tesz lehetővé, ha valamilyen egyedi műveletre lenne szükség. Az OWB kódgenerátora ráadásul az adatforráshoz optimalizált programkódot képes generálni. 83
92 2.5. ADATTÁRHÁZAK TERVEZÉSE 84
93 3. fejezet Adatok feltáró jellegű elemzése és megjelenítése Mielőtt hozzáfognánk az adataink elemzéséhez, egy nagyon hétköznapi, de annál fontosabb utat kell végigjárnunk az adataink minőségével kapcsolatban. Egyáltalán nem mindegy, hogy milyen adathalmazon, milyen értékeken futtatjuk le az adatbányászati módszereket. Hogy a feladat hétköznapiságát hangsúlyozzuk, a következő analógiával szeretnénk élni: Képzeljük el egy fodrász munkáját! Többféle hajjal dolgozhat: rövid hajjal, hosszú hajjal, egyenes, göndör, vékony, vastag, sűrű, ritka és erős hajjal. Mindegyik hajtípusnak megvan a jellegzetessége és a szépsége. Mégis a hosszú hajból lehet a legtöbbet kihozni. Mielőtt a fodrász hozzáfogna az alkotáshoz, megmossa a hajat, hogy ne legyen benne por, piszok vagy bármiféle zavaró dolog. Aztán megfésüli, hogy az egyes hajszálak külön legyenek egymástól, ne legyen benne csomó vagy görcs, amit rossz esetben ki kell vágni. Ha valakinek kevés a haja, és többet szeretne, akkor van rá lehetőség hogy pótolják számára, illetve a fordítottja is előfordulhat, hogy ritkítani kell valakinek a haját, méretre is vághatja a frizurához. Megszárítja és újra megfésüli, hogy úgy álljon a haj, ahogy a frizurát el szeretné készíteni. Vesz néhány tincset és befonja copfba. Ha kimarad néhány hajszál, akkor abból fufrut is készíthet. Minél sűrűbb valakinek a haja, annál több és változatosabb frizurát lehet készíteni neki. Copfokból is többet, több helyen lehet készíteni, és akár több copfból más copfokat, kontyot vagy kontyokat, vagy a konty köré díszítést. Akár a haj egy részét, akár a teljes hajat is fel lehet használni egy kontyhoz, hogy minél kellemesebb megjelenése legyen az illetőnek. A hajszínezés is a megjelenés egy formája. Több színnel jobban fel tudják hívni magukra a figyelmet a hölgyek. Persze nem kell túlzásba vinni, mint a többi formát sem. Mindez a fodrász ügyességén és tehetségén múlik. 85
94 Az adatbányászat a fodrászathoz hasonló. Ha észrevettük a hasonlóságot, akkor érezhetjük, hogy mindegyik dőlt kifejezéshez tartozik egy-egy adatbányászati fogalom vagy folyamat. Részletesen erről a Bevezető fejezetben olvashattunk A tudásfeltárási folyamat lépései (1.3.1) részben, de hogy világos legyen mindenki számára a fenti analógia, áttekintjük a kapcsolatokat. Az adatbányászathoz adatra van szükségünk, ami lehet sok vagy kevés rekordból álló (hosszú-rövid), sok vagy kevés attribútummal rendelkező (sűrű-ritka). Minél több az attribútumunk, annál részletesebb ismereteket tudhatunk meg az adathalmaz természetéről (megjelenés). Az adatok előfeldolgozása (mosás és fésülés) az adatelemzés legfontosabb és legjobban időrabló feladata. Ennek a fázisnak a kihagyásával nem kapunk átlátható és értelmezhető eredményeket az elemzések és módszerek segítségével (torzonborz hajviselet), főleg ha az adathibákat és inkonzisztenciákat nem küszöböljük ki (csomó). Ha túl kevés az adatunk, kereshetünk további adatokat, adatbázisokat összesíthetünk, adatokat integrálhatunk (hajpótlás), vagy ha túl sok adatunk van, dolgozhatunk kategorizált értékekkel, modellekkel (ritkítás). Fontos, hogy észrevegyünk bizonyos mintákat, csoportokat a reprezentált adataink között (tincs, copf fonás) és emellett kiugró értékeket vagy anomáliákat (fufru), segítségül hívva a megjelenítés eszközeit, amiben a formák és színek nagy segítségünkre lesznek (színezés). Ezzel elérjük azt az absztrakciós szintet, amikor az adatokat egy pillantással áttekinthetjük így segítve minket a döntéshozásban. (Végül a fodrászkodás után elmondhatjuk barátnőnknek: hogy mennyire gyönyörű hajad van!) Tehát a fejezetünk célja a hajmosás és az utána lévő fázisok, azaz az adatok feldolgozásának és megjelenítésének áttekintő bemutatása. Reményeink szerint eljutottunk oda, hogy rendelkezünk egy adattárházzal, egy adatbázissal, vagy az adatok valamilyen hierarchiába szervezett struktúrájával, ami tartalmazza a vizsgálandó adathalmazokat, és készek vagyunk arra, hogy felfedezzük a bennük elrejtett tudást a problémák megoldásához és döntéseink kivitelezéséhez. Vizsgáljuk meg, hogy tényleg készek vagyunk-e rá! Mi az, ami a rendelkezésünkre áll? Vannake problémák az adatokkal? Az adatbányászat folyamata során az adatok nem mindig készen és megfelelő állapotban állnak a rendelkezésünkre, mivel a valós élet adataival mindig is voltak és lesznek problémák. Ha ezeket az adatokat tekintenénk a bányászat bemenő adatainak, és elvégeznénk az elemzéseket, garantáltan félrevezető vagy alkalmazhatatlan eredményeket, váratlan eseteket kapnánk, és a rossz eredmények rossz döntésekre ösztönöznének bennünket. A legtöbb esetben az adatok problémáját nem veszik észre az adatvizsgálat kezdetéig. Ez azt jelenti, hogy a vállalati, kutató eszközöknek előzetes adatfeldolgozó képességgel kell rendelkezniük, amit az aktuális adat analizáló folyamat előtt vagy a folyamat végrehajtása alatt alkalmazni kell. Tehát a hatékony adatelemzés érdekében elő kell készíteni az adatokat, ami akár az adatbányászati folyamat idejének az 50-90%- át is kiteheti. Nem elég az, hogy az adatokat összegyűjtjük egy helyre, rendezett és megfelelően előkészített formára kell hozni. Ehhez hozzátartozik az adatok strukturált 86
95 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE szervezése is, amit az adattárház szervezésénél és építésénél komolyan figyelembe kellett vennünk. Tehát a feltáró folyamat az adatok összegyűjtésével és feldolgozásával kezdődik. Az Adatok előfeldolgozása részben megismerjük az adatokat és a kapcsolódó problémákat. Összefoglaljuk, hogy milyen típusú adatokkal foglalkozhatunk, milyen lehetséges adathibákkal találkozhatunk, ezekre megoldásokat keresünk, és rámutatunk azokra a problémákra, amik az adatok integrálása során felmerülhetnek. Az Adatok felkészítése részben transzformációs módszerekkel ismerkedünk majd meg. Az adatok vizuális megjelenítését az Adatok megjelenítése, a vizuális és feltáró elemzést a Feltáró jellegű adatelemzés tárgyalja. Több dimenziós adatokkal is foglalkozunk, amiket megjeleníthetünk. Végül dimenzió csökkentő módszereket ismertetünk, amik segítségével nagy mennyiségű paraméterekből megtalálhatjuk a számunkra lényegeseket Adatok előfeldolgozása Miért van szükség az adatok előzetes feldolgozására? Nézzünk egy konstruált példát erre. Képzeljük el egy alkatrész minőségvizsgálatának folyamatát. Az alkatrésznek van néhány kritikus paramétere, aminek egy eléggé kis tartományba kell esnie ahhoz, hogy megfelelő lehessen a felhasználásra. Az elkészült alkatrészeket egy minőségellenőrző cellában vizsgálják meg, és az eredményektől függően jelzik az alkatrészt megfelelő és nem megfelelő minősítésekkel. Csak azt az alkatrészt lehet a további folyamatokban felhasználni, amelyik megfelelt az ellenőrzésen. Az ellenőrzés alatt sok paramétert vizsgálnak meg, például méret, átmérő, súly, sűrűség, összetétel és komoly, formai követelmények, amik adott esetben a legfontosabb szempontot képviselik. A feldolgozó programban az egyes vizsgálati fázisokat kézzel lehet elindítani olyan sorrendben, ahogyan a felhasználó elvégzi, és az eredményeket egy összesítő lapra vezeti fel, amit végül számítógépre visznek. Az adatokat megkapja az ellenőr, és a paraméterek vizsgálatával kiszűri, hogy melyik alkatrész nem megfelelő. Problémák ott keletkezhetnek, amikor nem végeznek el minden egyes mérést, például amikor új dolgozó érkezik a gyárhoz, aki még nem biztos a dolgában, így néhány adat hiányozni fog, amik fontosak lehetnek az ellenőrzéskor. Az operátor kézírása sem biztos, hogy könnyen olvasható, így ha egy második személy viszi fel az adatokat a számítógépre, az adatok megváltozhatnak. Ha valamelyik mérőműszer meghibásodik, akkor azt ki kell cserélni, de ha költséges egy-egy mérés, és a csere is drága, akkor eléggé kellemetlen helyzetbe kerülhetünk, és ekkor is fel kell használni a mért adatokat. Az ilyen meghibásodások kiugró, eltérő vagy hiányos adatokat eredményezhetnek. Továbbá, ha az új dolgozó nem ismeri az eddigi konvenciókat, és nem írja fel a mérés típusait, akkor a feldolgozó ismét gondokba kerülhet. Tapasztalatokra alapozva kiválaszthatja a lényeges mérés típusokat, de egy új alkatrész esetén ez is nehézkes lehet. Ekkor 87
96 3.1. ADATOK ELŐFELDOLGOZÁSA nagy szükség van az adatok előfeldolgozására. Számtalan cikk foglalkozik az adatok előfeldolgozásával köztük [10]. A következőkben összefoglalunk néhány lehetséges problémát, amikkel szembe kerülhetünk. Hiányos adatokkal van dolgunk. Inkonzisztensek az adatok (belső ellentmondások), azaz egyszerű pontatlanságok dátumban, értékben, rossz elnevezéseket használnak, más értékekkel adják meg ugyanazt, nem írják oda, hogy összesített értékről van szó. Inkompatibilisek (összeférhetetlenek), nincs kapcsolat két egymásból következő adat között, például születési dátum és kor. Redundánsak. Nem mindig ad új információt, ha több ugyanolyan adatunk van. Zajosak. Kiugró értékekkel rendelkező adathalmazok, eszközhiba, átviteli csatorna problémák. A vázolt problémák kiküszöbölésére használhatunk adatsimítást, ami a kiugró értékeket és a hiányosakat módosítja; általánosítást, amivel numerikus vagy kategorikus értékeket más, általánosabb kategóriákba sorolhatunk; normalizálást, amivel az értékeket más, közös tartományba transzformálhatunk; típusmódosítást, kerekítéseket. A több dimenziós adatokból kiválogathatjuk a lényegeseket, vagy újakat hozhatunk létre, amikből csak a leglényegesebbek maradnak meg. Csökkenthetjük az adathalmaz számosságát is. Az alapadatainkat, de a módszerek eredményeit is megjeleníthetjük. Mindezeket az eszközöket és módszereket a következő részekben sorra vesszük, és áttekintjük, de mindenek előtt ismerkedjünk meg az adataink alapvető típusaival Adattípusok Az adat valamely vizsgált objektum mért vagy megfigyelt tulajdonságát megadó érték. A legtöbb esetben az adatainkat egy adatbázis kezelő rendszer kezeli. Ez egy olyan komplex szoftver, amivel különféle típusú információk tárolására szolgáló adatbázisokat építhetünk és érhetünk el. További feladata, hogy biztosítsa az adatbázis szerkezetének menedzselését, az adatok tárolását és osztott elérését, megtartva a konzisztenciát, ügyelve az adatok biztonságára. Az adatainkat legtöbbször relációs adatbázisokban tároljuk el, amikben táblák és a közöttük lévő kapcsolatok alkotják az adatok halmazát. Adatbányászati szempontból ezek az adathalmazok alkotják az elemzések tárgyát, akár teljes egészében, mint egy adattárház, akár csak egy tábla, ami csak a szükséges információkat tartalmazza az elemzéshez. A reprezentált adatok legáltalánosabb típusai a következők: numerikus (kvantitatív, metrikus) és szimbolikus (kvalitatív, kategórikus, nominális). 88
97 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE A numerikus adatok valamely paraméterek mérési eredményei, amiket számmal lehet reprezentálni. Lehetnek folytonosak és diszkrét értékek. Ezen belül további felosztások lehetségesek, számoknál például egész, fixpontos, lebegőpontos, bináris, oktális, hexadecimális, pénznem, számláló illetve logikai és dátum. Ezeket a típusokat a számábrázolás különbözteti meg egymástól. A szimbolikus vagy kategorikus adatok egy mérésnek a karakterisztikáját, tulajdonságát reprezentálják. Az adatok ilyen osztálya általában kvalitatív, amelyek egymáshoz képesti viszonyuk szerint lehetnek nominális vagy nevesítő adatok, melyek vagy megegyeznek egymással vagy nem, az egyenlőséget (azonosságot, a=a) és a különbözőséget vizsgálhatjuk meg (a!=b). ordinális, azaz rendező (sorba rendezhető) adatok, melyek tulajdonsága, hogy nagyság szerint sorba rendezhetőek, így jól használhatók minősítő osztályozásra. A legáltalánosabb szimbolikus ábrázolás a szöveges vagy karakteres adat. Persze a szöveges ábrázolást is felfoghatjuk szám ábrázolásának, mivel minden karakternek megvan a kódrendszerek által biztosított megfelelő numerikus párja. Többnyire a szöveges ábrázolásnak összetettebb információtartalma van, mint például egy utca és házszám, egy termékkód, ami sorszámot és terméktípust is tartalmazhat, vagy fizetési mód, ami jelölheti a forrás bankot vagy csak a készpénzt jelöli meg adatként. A jó adatbázis tervezésnél az ilyen többes információ tartalmú mezőket igyekeznek minimalizálni és szétbontani több attribútumra a megkülönböztethetőség előnyéért. Szövegnél beállíthatjuk a karakterek számát, specifikus adattípusokat választhatunk ki, amik segítségével nagyobb mennyiségű szöveges információt is eltárolhatunk. Az adatok közötti összehasonlításnak két alapvető skálája van. A különbség skálán értelmezett adatoknak önkényes 0 pontja van, így csak a különbségüknek van értelme, arányuknak nincs. Erre példa a Celsius fokban mért hőmérséklet vagy az energia. Az arányos skálán értelmezett adatoknak van valódi 0 pontjuk, és arányukat is értelmezhetjük. A legtöbb numerikus jellemző ilyen, például a fizetés, az úthossz, és a térfogat. A 4.3 részben részletesen is tárgyaljuk az adatok összehasonlítását és megkülönböztetését mind folytonos, mind diszkrét értékek esetén. Ajánljuk még Bodon Ferenc könyvét is [11]. Komolyabb adatbáziskezelő rendszerekben lehetőségünk van különböző összetett objektumok tárolására is. Ezeknek az adatbányászati feldolgozása specifikus feladat. 89
98 3.1. ADATOK ELŐFELDOLGOZÁSA Olyan módszerekre van szükség, amelyek az adott adattípust képesek kezelni és a bányászat feladatát végrehajtani. Gondolhatunk itt a képfeldolgozó algoritmusokra, objektum példányokat kezelő programokra, téradat és térkép adatbázisok használatára, multimédia adatbázisokra vagy magára az Internetre, mint interaktív dokumentumok összekapcsolt rendszerére. A webhez hasonlóan célunk lehet több különböző file tartalmának bányászata is, amit a számítógépünk file rendszere rendez egy adatbázisba. Nagyon változatos és széleskörű információ áradattal állunk szemben, amiből most csak a számunkra elrejtett információra vagyunk kíváncsiak. A következő részben főként a relációs adatbázisok tartalmára, azaz a táblák lehetséges típusaira koncentrálunk, és megvizsgáljuk, hogy milyen szempontokat kell figyelembe venni az adatintegrálás és adattisztítás folyamatai alatt Adattisztítás A mindennapi életben előfordulhat, hogy nem tartunk precíz rendet magunk körül, és egy idő után azt vesszük észre, hogy egyáltalán nem mondhatóak rendezettnek a körülöttünk lévő dolgok, és csak ha már nem találunk valami nagyon fontos cetlit, vagy elvesztettünk egy érmét, akkor szánjuk rá magunkat egy nagy rendrakásra. Keresünk valamit, ami mélyen a többi információ alatt van valahol. Az adatok világában ez sokkal könnyebb feladat, mert csak kiadunk egy egyszerű (demonstratív) lekérdezést, például: SELECT nagyonfontosdolog FROM Dolgaim WHERE Idobelyeg = ma()-1; és azonnal megkapjuk azt az információt, hogy mit kellett volna csinálni a szeméttel szemétszállítás előtt, tegnap. De mi van akkor, ha valamit elfelejtettem, és nem töltöttem ki az Idobelyeg-et? Akkor az információ mikor volt érvényes, mikor került bele az adatbázisba? Vagy a számítógépem meghibásodott, és egy héttel későbbi időpontot írt be automatikusan? Honnan fogom tudni, hogy ez egy kiugró adat? Csak néhány konstruált példával szerettem volna illusztrálni, hogy lehetnek problémák az adatainkkal, nemcsak otthoni környezetben, hanem gyártási, vállalati, kutatási, logisztikai környezetekben is. Ezért van az az általános alapelv a programozók körében, hogy minden ki - és bemenő adatot meg kell vizsgálni, és a problémás eseteket kezelni kell. Ezt tükrözi a GIGO (garbage in, garbage out) szemlélet, miszerint ha szemetet kapunk adatként (amit nem vizsgálunk meg), akkor mi is szemetet kapunk az elemzések eredményeként. Nem csak az emberi operátor részéről számíthatunk hibalehetőségre, hanem a meghibásodott szenzorok köréből, összesítések erős kerekítési beállításaiból, számítások, módszerek pontatlanságából, stb. Remélhetőleg így már érezhetjük az adattisztítás szükségességét. De mit jelent az adatok tisztítása? Milyen esetekben mondhatjuk piszkosnak az adatokat? Ezekre a kérdésekre próbálunk válaszokat találni. Az adattisztítás az adat előfeldolgozás szerves része. Az előfeldolgozás egy jól de- 90
99 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE finiált művelet, ami adott adatból vagy ugyanannyi, vagy kevesebb adatot ad vissza. Az adattisztítás lényege, hogy detektálja és eltávolítja az adatokban fellépő hibákat és inkonzisztenciát, annak érdekében, hogy növelje az adatok minőségét. Az adathibákat egyaránt generálhatják szoftverek, hardverek és emberi operátorok. Néhány példa ezzel kapcsolatban: egy meghibásodott szenzor, adatátviteli hiba, pontatlan adatkitöltés. Az adatgyűjtés során ezek az okok és hibaforrások többnyire nem ismertek. Így használható megoldásokat kell készíteni a hibás adatok korrekt felismerésére és kijavítására. Adattisztítással kapcsolatban a [12] [13] [14] [10] cikkek nyújtanak érdekes információkat. A következőkben áttekintjük azokat a fő probléma forrásokat, amelyeknek a megoldására az adattisztítást alkalmazzák: inkonzisztencia, inkompatibilitás, redundancia, zaj Inkonzisztencia Az olyan adathalmazok, amelyek komoly belső ellentmondásokat tartalmaznak, megsértik az adattárolás és feldolgozás logikáját és lényegét, inkonzisztensek. Leggyakoribb eset az, amikor több forrásból származó adathalmazokat szeretnénk egyesíteni, és eközben különböző adattárolási és reprezentációs formákkal kerülünk szembe. Ezt az egyesítési folyamatot nevezzük adatbázisok integrációjának, ami az adattárház műveletek egyik alap eszköze. Az integrálás alatt felmerülő problémákra felkészülhetünk az adatbázisokhoz tartozó metaadattárak áttekintésével (ha elérhető), amik definíciós információkat adnak az adatok neveiről, tulajdonságairól, szerkezetéről, kapcsolatairól. Tekintsük át az ide tartozó problémákat: Integritás megszorítások hiánya A mai modern adatbáziskezelő rendszerek lehetőséget nyújtanak arra, hogy a bennük tárolt információra megszorításokat készítsünk, amiknek segítségével megszabhatjuk, hogy milyen információt tárolhassunk egy attribútum cellában. Megadhatunk alsó, felső határokat a számábrázoláshoz vagy a karakterek hosszához. Megszabhatunk egyéb korlátokat is, hogy ne lehessen a cím mezőbe várost is beírni, amikor létezik hozzá külön mező, elkerülve a beágyazott értékeket. Adatbázisok integrációja során első látásra nem tűnik fel, hogy nem egyeznek ezek a megszorítások, így külön figyelmet kell szentelnünk az egyesítésükre. Például egy minőséget jellemző attribútum esetén az egyik forrásban 1-től 10-ig lehetségesek az értékek, míg a másik forrásban 0-tól 9-ig. Egy másik probléma lehet a nem megfelelő dátum tartomány megadása. Bár a mai rendszerek ezekre ügyelnek, oda kell figyelni a rosszul megadott dátum értékek kiszűrésére, mint például , vagy Dátumot azonban nem csak dátum formátumban lehet tárolni, hanem szövegesen is. Ügyelni kell a formátumok és formai megkötések helyes használatára, például a dátumok ábrázolása egységes legyen, a szövegábrázolás kisbetűs vagy nagybetűs lehet, rövidítéseket csak bizonyos esetekben lehessen hasz- 91
100 3.1. ADATOK ELŐFELDOLGOZÁSA (a) (b) 3.1. ábra. Teszt tábla mezőinek tulajdonságai Accessben: a) Azonosító mező, b) Dátum mező (a) (b) 3.2. ábra. A beviteli mező hatása az értékek beírásakor: a) Azonosító b) Dátum esetén nálni. Az elgépelések ellen nem minden esetben tudunk védekezni megszorításokkal. Célszerű globális adatokkal dolgozni, amit a felhasználó legördülő menü segítségével érhet el, így a hibázás valószínűségét csökkenthetjük, de nem szabad megfeledkezni a rosszindulatú beavatkozókról sem, főleg a weben keresztül begyűjtött adatok esetén. Nézzünk egy rövid példát a megszorítások alkalmazására Access-ben. A 3.1 és a 3.2 ábrákon egy Access tábla beállításait láthatjuk. A Beviteli maszk megadásával azt érjük el, hogy a beírás során ennek a maszknak megfelelően kapunk egy formátumot és így értelemszerűen tölthetjük ki a mezőt. Ezt az ábra is mutatja az Azonosító és a Dátum mezők esetén. Az Azonosító mezőre vonatkozó formátum segítségével megszabhatjuk, hogyan jelenjenek meg az adatok. A Formátum két részből áll. Az elsővel a kitöltött értékes mezőket formázhatjuk, a második résszel az üreseket. Az első karakterrel (>) minden betűt nagybetűssé alakítunk, a többi pedig az adott formátumot készíti el. Ezekről a lehetőségekről részletesen az Access súgójában olvashatunk. Az alkalmazásoknál a bekért adatokat ellenőrizni kell akár kliens, akár szerver oldalon. Erre egy jó módszer a reguláris kifejezések használata. A legtöbb nyelv támogatja a reguláris kifejezéseket valamilyen beépített függvénnyel, amikkel tesztelhetjük a bekért 92
101 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE adatokat. Nézzünk egy példát az érvényesítéséhez szükséges reguláris kifejezésre: A kifejezés első része karakterig) a felhasználónevet dolgozza fel, ami tartalmazhat aláhúzásjeleket és pontokat, de két pontot egymás után nem fogad el. A további rész pedig a domain-t ellenőrzi le. Reguláris kifejezéseket szépszámmal találhatunk az alábbi linken: Egy másik veszélyforrás az SQL injection. Egyszerű alkalmazásokat gyakran kezdenek úgy fejleszteni, hogy nem veszik figyelembe, hogy a beviteli mezőkbe SQL parancsokat is be lehet gépelni, amik nem megfelelő programozás esetén lefuthatnak. Hozzáértő kezekben az SQL injection használatával bármit el lehet érni a gazdaszámítógépen. Ennek kivédéséhez érdemes korlátozni és ellenőrizni a beolvasott mezők hoszszúságát, kiszűrni a sztring határolókat, vezérlő karaktereket, illetve olyan tervezési mintákat használni, amelyeknek beépített sajátossága az ilyen támadások kivédése. Ezzel kapcsolatban egy nagyon érdekes publikációt készített Chris Anley (Advanced SQL Injection in SQL Server Applications), amely mellett számos más rendszerek sebezhetőségével és rendszervédelemmel kapcsolatos cikk található az NGS (Next Generation Security) honlapján: Elnevezési és strukturális konfliktusok Az adatmodell és a séma készítés során felmerülő problémák az elnevezési konfliktusok és az adatstruktúrák különbözősége, amit ha nem kezelnek ezen a szinten, a későbbiekben félreértésekhez vezethet. Egyik eset, amikor ugyanazt az elnevezést használják más, különböző objektumokra (homonímia), másik esetben pedig más elnevezéseket találnak ki ugyanarra az objektumra (szinonímia). Erre egy példa, amikor két forrásban a vásárlók adatait tárolják: egyik Vásárló, másik Vásárlók táblanevet használva. Ilyen esetekre tanácsolják az adatbázis adminisztrátoroknak, hogy a táblanevekhez többes számú főneveket és gyűjtőneveket használjanak nagy kezdőbetűvel, oszlopnevekhez pedig egyes számú főneveket csupa kisbetűvel. Összetettebb esetben lehetnek tartalmi összeütközések is, amikor például az Alkalmazottak tábla tartalmazza azokat a dolgozókat, akik a gyárban vannak, és a Személyzet pedig csak azokat a dolgozókat, akik az irodán vállaltak alkalmi munkát. Először arra gondolhatnánk, hogy a két tábla dolgozóit egy kalap alá vehetjük, holott lehet, hogy teljesen más adatokat tartunk nyilván egy alkalmi dolgozóról, mint egy állandó munkásról. 93
102 3.1. ADATOK ELŐFELDOLGOZÁSA Különböző érték reprezentációk Egy adott adattípust többféleképpen lehet megközelíteni, értelmezni, emiatt különbözőségek merülhetnek fel a reprezentált adatok között. Másképpen (más típussal) adja az egyik forrás ugyanazt az értéket egy adott attribútumra mint a másik forrás. Például pénzbeli értéket ábrázolhatunk forintban, dollárban vagy euróban is, tehát ügyelnünk kell arra, hogy az adatok azonos mértékegységben legyenek megadva. Aggregátumok keveredése Nagyon fontos, hogy a metaadattár tartalmazzon információkat azokról az adatokról, amelyek valamilyen összesítés eredményeképpen jöttek létre. Így meg tudjuk különböztetni az egy éves vagy az egy havi összesített értéket, és nem kell az egyéni intuícióra alapozni ezeknek az értékeknek a megkülönböztetését. Tehát a metaadattár lényeges és fontos információkat tartalmaz az adatokról, amik lényegesen megkönnyítik a további fejlesztéseket, ezért nem szabad lebecsülni és háttérbe szorítani az adatokról szóló adatok karbantartását és menedzselését. Kétségtelen, hogy nagyon sok energiába kerül, de az is bizonyos, hogy a későbbiekben ez megtérül. A 3.1 táblázatban láthatunk néhány hétköznapi példát az eddig tárgyalt esetekre. Hiányzó értékek A hiányzó vagy pontatlan attribútum értékek a példák arra, hogy az adatok minőségét mennyire nagymértékben lehet csökkenteni, ha nem áll rendelkezésünkre megfelelő mennyiségű információ, hogy pontos adatelemzést végezhessünk el az adatokon. Teljesen mindegy, hogy mennyire pontos és összetett algoritmust is használunk, ezek a pontatlanságok az eredmény pontatlanságával járnak egy cipőben. Gondoljunk például egy tanuló algoritmusra, ahol szükség van tanító adatokra és teszt adatokra. Attól függetlenül, hogy a mintákat a hiányos adatsorból vettük ki, lefut az algoritmus az adott iterációval, az eredmény pontatlan és irreális lehet. Több módszer is van a hiányzó adatok kezelésére, vegyük ezeket szemügyre: 94 Figyelmen kívül hagyjuk az elemzés szempontjából. Általánosságban, ha egy rekord attribútum-értékeinek 20%-a hiányzik, nem veszik figyelembe a bányászat során. Ez a reprezentált releváns információktól függ, például csak olyan esetben hiányzik az attribútum érték, amit úgysem veszünk be az adatelemzésbe, vagy nem lényeges információról van szó, például a dolgozók szeme színe hiányzik, és a teljesítményükre vagyunk kíváncsiak. Manuálisan adjuk meg. Ha fontos információról van szó, akkor kénytelenek vagyunk utánajárni a hiányzó információnak, de ha nagyon sok érték van üresen, nagyon időrabló ez a megoldás.
103 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE város=""; irszám=""; utca="budapest 1142 Borbála u. 13." Integritás megszorítások hiánya dátum=" " vagy dátum=" " város="buadpest" minőség="1" (jó); minőség="0" (hibás) minőség="1" (hibás); minőség="2" (jó) Elnevezési és strukturális konfliktusok minőség="1"; megfelelt="0" vásárló="elem Elek"; felhasználó="elem Elek" ország="eu"; ország="123" érték=" Ft"; érték="4 166 EUR" fizetett_szabadság="10 nap"; fizetett_szabadság="101 nap" A város és irányítószám üresen, nem megfelelő megszorítások, beágyazott értékek Korlátozások ellenőrzésének hiánya Migrálási különbségek a különböző adatbázisokban Homonímia Szinonímia Különböző érték reprezentációk Aggregátumok keveredése 3.1. táblázat. Inkonzisztencia példák egyik évi, másik a foglalkoztatottság alatti fizetett napok számát adja Globális konstanst használunk. Ez lehet egy megadott fix érték vagy az adatbázis rendszerek által biztosított NULL érték (ezekkel az értékekkel végzett műveletek eredménye többnyire ugyancsak a NULL vagy az UNKNOWN érték), aminek használatától nagyon is óvnak minket a hozzáértők. Több jelentéssel is bírhat egy hiányzó érték. Dr. E. F. Codd két fő fajtáját különböztette meg a hiányzó értékeknek (ennél több is lehet): ismeretlen (szemszín) vagy értelmezhetetlen (dolgozó űrtartalma). Az adminisztrátorra van bízva, hogy milyen értéket használ az ismeretlen értékek reprezentálására amiknek később értelmezhető értéket adhat vagy az értelmezhetetlenség jellemzésére. Átlagértéket használunk. Numerikus értékek esetén ez könnyen kivitelezhető. Átlag érték helyett használhatunk mediánt vagy móduszt is. Kategorikus értékeknél célszerű az átlagolást a kategóriák numerikussá konvertált értékein elvégezni. A globális átlaggal való helyettesítés mellett használhatunk lokális átlagot vagy más néven mozgó átlagot is, főként a folytonos idősorok esetén. Ekkor a 95
104 3.1. ADATOK ELŐFELDOLGOZÁSA hiányos rekord mellett (előtte vagy utána) lévő n db rekordból kiválaszthatjuk az értékkel rendelkező attribútumokat, és az átlagukkal helyettesíthetjük a hiányos adatot. Ezt minden hiányzó értéknél külön-külön kiszámolva, az adatsor egyfajta simítását is kaphatjuk, ha sok volt a hiányzó adat Példa. WEKA - Hiányzó értékek kezelése Globális medián vagy módusz helyettesítést könnyen elvégezhetünk a WEKA Explorerben. A Preprocess fülnél töltsük be az.arff adatsort. Az attribútumokon végiglépkedve a Selected attribute dobozban részletes információkat találhatunk például, hogy vannak-e hiányzó értékek, és hogy ez a teljes adatsor hány százaléka. A hiányzó értékek kitöltéséhez válasszuk ki a filterek közül a RemoveMissing- Values (unsupervised attribute) szűrőt. Részletes ismertetőt kapunk az adott szűrőről, ha a szűrő nevére kattintunk. Ekkor a szűrő paramétereit tudjuk módosítani. A More gombra kattintva megtudhatjuk, hogy mit jelentenek az egyes paraméterek. Az Apply gombra kattintva az egész adatsorban kicserélődnek a hiányzó értékek (kérdőjelek) a megfelelő attribútum móduszával/mediánjával. Az így létrehozott adatsort a Save... gombbal el is tudjuk menteni Példa. Excel - Lokális átlag Az IRIS adatsor Sepal width attribútumából kitöröltünk néhány adatot. Lokális átlaggal írjuk felül a hiányzó értékeket a 3.3 ábrán látható képlet alapján. A képlet lényege, hogy ha a cella üres, akkor a környezetének átlagát írja bele, különben pedig az adott értéket. 96 Az adott rekord osztályába tartozó átlagértékét használjuk. Ha már van valamilyen alapvető kategória besorolása az adatainknak, akkor a hiányzó értéket a rekord által meghatározott átlagos kategória értékével tölthetjük ki. Így az adott rekordunk megtartja a kategóriájának jellegzetességét. Például értékelni kell a gyerekek viselkedését, és nem mindenkiről van kézzelfogható eredményünk a mostani viselkedésükről, így a hiányzó eredményeket az előző magatartásaik átlaga alapján határozzuk meg.
105 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE 3.3. ábra. Hiányzó adatok kitöltése lokális átlaggal Reprezentálunk minden értéket. Hisztogram segítségével megvizsgáljuk, hogy milyen lehetséges értékek lehetnek, és a hiányzó értékeket sorban, minden egyes lehetséges értékkel helyettesítünk. Például adott egy egész paramétereket tartalmazó attribútum hiányzó értékekkel. A hiszotgram alapján azt kapjuk, hogy 20 és 29 között vesz fel értékeket, illetve van 15 hiányzó érték. Akkor az első hiányzó érték legyen 20, a következő 21 és így tovább. A 29 után újból 20 jöhet. Akkor hatásos, ha az értékek eloszlása közel azonos. Valószínűséggel döntjük el a helyettesítő értéket. A meglévő adatokat felhasználva döntjük el, hogy egy-egy értéket milyen valószínűséggel vehet fel egy mező. Ehhez használhatunk regressziót, Bayes-döntést vagy döntési fát. Például 30%-ban 800 Ft a málna, egyébként újabb vizsgálat: 40%-ban 500 Ft a málna, egyébként újabb vizsgálat: 50%-ban 450 Ft és 400 Ft. A fán végiglépkedve eljutunk a levelekig, amik megadják a helyettesítő értéket. Egyéb tulajdonságokat is figyelembe vehetünk a döntési fa kialakításában, amiket hiánytalanul ismerünk a hiányzó értékeket tartalmazó rekordokból. A döntési fákkal az x. fejezetben foglakozunk bővebben. Ez a módszer használja a legtöbb információt a meglévő adatokból, hogy pontosabb közelítést adjon a helyettesített adatokra Inkompatibilitás Inkompatibilitás alatt olyan rekordokat és eseteket kell érteni, amikor bizonyos adatok teljesen összeférhetetlenek, az általuk reprezentált értékek nem felelnek meg egymásnak, nincs meg az az elvárt kapcsolat és egymásrautaltság, amit elvárnánk esetükben. Erre egy jó példa a születési év és az életkor attribútumok párja. Míg a születési év nemigen változik egy ember életében, addig az életkora mindig több. Vagy gondolhatunk egy olyan mezőre, amiben mindig összegyűjtjük a dolgozónak eddig kifizetett bért, ahol a havi bér és az eddig kifizetett bér áll kapcsolatban. Ha vannak ilyen és ehhez 97
106 3.1. ADATOK ELŐFELDOLGOZÁSA hasonló tárolt elemeink, attribútumaink, oda kell figyelni a közöttük lévő kapcsolat sértetlenségére. Ugyancsak összeférhetetlenség alakul ki, ha az elnevezési konfliktusokra gondolunk, amikor két különböző információt ugyanazzal az oszlopnévvel nevezünk meg Redundancia A beszélt nyelvben az ismétlődések és a nyelvi szimbólumok redundanciája nélkül zajos környezetben nem tudnánk megérteni egymást, mivel egy kis hiba vagy tévedés félrevezetővé tenné a mondanivalónkat. Adatbázisok esetén a redundáns adatokat többnyire már túl soknak érezzük és tartjuk. A logikai adatbázis tervezés és a normálformák használatának egyik fő célja a redundanciák megszüntetése. A halmazelméletben nincsenek megengedve ismétlődő elemek. Ha két elem ugyanazokkal a tulajdonságokkal rendelkezik, akkor az tulajdonképpen ugyanaz az elem. A számítógépen tárolt adatbázisok egyik jellegzetessége, hogy megengedik az ismétlődő elemeket rekord szinten. Alapvetően az ismétlődés is információt jelent, amit kezelni kell. Codd ehhez bevezette az ismétlődés foka műveletet (dod - degree of duplication), aminek a segítségével egy ismétlődéseket tartalmazó táblából ismétlődés nélküli táblát lehet előállítani és viszszafelé is, tehát az ismétlődéses táblát az ismétlődés nélküliből. Az adatbányászati elemzés során elemekkel, objektumokkal, egyedekkel foglalkozunk, amiknek a tulajdonságait tartjuk szem előtt. Az elemző feladata eldönteni, hogy szüksége van-e az ismétlődő elemekre, vagy ezeket ki kell zárnia. Egyszerű eszközök vannak az ilyen ismétlődések kizárására, például az SQL nyelvben használatos DIS- TINCT kulcsszó használata Példa. Excel - Redundancia kiküszöbölése Pivot táblával és irányított szűrővel Egy másik példa a 2.4 részben bevezetett Pivot tábla illetve az Adatok Szűrő Irányított szűrő... alkalmazása. Ha jól megfigyeljük (2.12. ábra), akkor az oszlop vagy a sor mezőbe húzott attribútum értékeit redundancia nélkül sorolja fel a program. A szűrő alkalmazásánál pedig a Csak az egyedi rekordok megjelenítése jelölőnégyzet bekapcsolásával érhetjük el ugyanezt. Nem csak rekord szintű redundanciával találkozhatunk. Két attribútum is lehet olyan kapcsolatban egymással, hogy az egyik meghatározza a másikat. Erre már elég sok példát láthattunk az összesített eredmények kapcsán. Az ilyen függéseket logikával is feltárhatjuk, vagy használhatjuk a korrelációanalízist erre a célra. Az ilyen elemzés előtt érdemes valamilyen rendezést végezni az adatokon, hogy a megfelelő mezők 98
107 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE egymás mellé kerüljenek. Ez az érték határozza meg, hogy a két attribútum milyen kapcsolatban áll egymással. Ha negatívan korrelálnak, akkor amíg az egyik attribútum csökkenő értéket vesz fel, addig a másik növekszik. Minél nagyobb az érték, annál inkább következik egyik attribútum a másikból. Ezzel ismeretlen adatbázisokból meg lehet határozni, hogy melyek azok az attribútumok, amik mondjuk mindkét adatbázisban ID-ként szerepeltek. Így ha van információnk arról, hogy mely mezők lehetnek azonosak, ezek alapján egy egyszerű descartes-szorzatú lekérdezéssel és feltételként a hasonló mezők összerendelésével megkaphatjuk két különböző forrásból származó tábla integrálását Zaj Hogyan lehetnek az adataink zajosak? Egyáltalán mi a zaj? A zaj egyszerűen az adatokra rakódott, véletlenszerű hiba. A hiba természetétől függően lehet kis mértékű, de folyamatos, vagy ritka esetekben nagy, kiugró értékeket generáló, illetve ezek valamilyen kombinációja. Többféle forrásból származhatnak ezek a hibák attól függően, hogy honnan kapjuk az adatainkat, és milyen kódolón, milyen csatornán, milyen dekódolón keresztül. Minden egyes lépésben adódhatnak zajok, hibák a mérési eredményben. Gondoljunk csak a következő alkalmazási példákra: szenzorok használata, lézer, mikrohullámú, analóg kommunikáció. Az ilyen jellegű adattovábbításban nagy szerepe van a redundanciának, kódolási technikáknak, hibajavításnak a zaj csökkentésére. A zaj hatással van az adatsor természetére, alakjára, amit például a szórással jellemezhetünk (standard deviation). Ez az átlagtól vett különbségek négyzetösszegeit tartalmazza, amit leosztunk az adatpontok számával, majd a négyzet miatt gyököt vonunk: N (x i x) 2 i=1 σ = (3.1) N ahol N az adatpontok száma és x az adatpontok átlaga. A szórás négyzetét varianciának nevezik. A statisztikában a várható értéket és a szórást becslik, ennek következtében más megközelítéseket is használnak a szórás meghatározásához. Excelben a SZÓRÁS és a VAR néven érhetők el ezek az értékek. A zajban fellépő kiugró értékek (outlier) távol vannak az értékes adatoktól. Ezt a távolságot általában az interkvartilis távolság függvényében adják meg (ennyivel kisebb illetve nagyobb egy adott értéknél), amit ebben a fejezetben később tárgyalunk. Az extrém kiugró adatokat úgy határozhatjuk meg, hogy a kiugró értékekhez tartozó intervallum határait a kétszeresére bővítjük ki. Elmondható, hogy a normális eloszlású adatok esetében 150 megfigyelésből egy kiugró adat adódik, és megfigyelésből egy extrém kiugró érték. Ezeket az 99
108 3.1. ADATOK ELŐFELDOLGOZÁSA értékeket nem minden esetben célszerű figyelmen kívül hagyni, mivel felhívhatják a figyelmünket valamilyen hibajelenségre. A zaj modellezhető is véletlenszerű természetéből adódóan bizonyos függvényekkel, és becsülhető az értéke. Ezek a Gauss vagy normális eloszlást követik. (ξ valószínűségi változó ξ N(m;σ), ahol m az adatok várható értéke és σ a szórása) Így lehetőség van a zaj kiszűrésére. A Gauss (sűrűség) függvényt a következő egyenlet írja le: f (x) = 1 2πσ e (x m)2 2σ 2 (3.2) A zaj meghatározásához háromféle információ állhat rendelkezésünkre, de nem szükséges a modellezéshez mind a három ismerete. Ezek a következő apriori információk: a megfigyelt és mért adatok, a jelátviteli csatorna karakterisztikája, ami a mért adatok és a mérendő jellemző közötti leképezésre vonatkozó információ, illetve a mérendő jellemző sűrűségfüggvénye, azaz leírható-e valószínűségi változóval. Ezeknek az információknak a birtokában becsléseket tehetünk a mérendő jellemző valódi értékére, ilyen módszerek például Bayes-becslők, maximum likelihood becslések, Gauss-Markov-becslők, legkisebb négyzetes hibájú becslők. Ezek a módszerek eléggé számítás igényesek, és feltételezik az adatokról, hogy időben nem változnak (időinvariánsak). A zajjal terhelt adatok egy másik megközelítése az adatsimítás. Az adatsimítás egy olyan folyamat, amely módosítja az értékeket a szomszédos adatok alapján például mozgó átlaggal, konvolúciós mátrixokkal vagy mediánszűrővel így egy simább reprezentációját kapjuk az adatoknak, főként sorozatok, idősorok és képek esetében. Ezekkel a módszerekkel lehet az éles éleket gyengíteni, elmosni, a képeket elhomályosítani, így a magas frekvenciás értékeket gyengíteni, az alacsonyakat erősíteni. Itt is használatos a Gauss-függvény, vagy bármilyen más alakú (pl. négyszög, háromszög, fűrészfog) a konvolúció és az átlagértékek kiszámításához. A simítást kiterjeszthetjük több dimenzióra is, így az adatértékeket összetettebben is simíthatjuk. Mindemellett ne csak úgy tekintsünk a zajra, mint nem várt vendégre, akit már alig várunk, hogy elmenjen. A zaj az adatok egyfajta torzítása, ami a körülöttünk lévő világ természetéből fakad. Ha például egy terület kukorica termelését vizsgáljuk az évek során, a kapott értékek elégé nagy ingadozással (kiugró értékekkel) rendelkezhetnek, így ha ábrázolni kellene őket, egy földrengés jeleit látnánk a grafikonon, és nem egy 100
109 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE tendenciát. Ilyen esetekben is célszerű egy-egy adatsimítást kipróbálni. Megemlítünk még néhány adatsimító módszert: Kosarazás. Lényege, hogy azonos számú kiválasztott értéket ugyanazzal az értékkel írjunk felül. A kiválasztáshoz tegyük fel, hogy egy kosárba legfeljebb n db adat fér. Sorba rendezzük az adatokat, és az egymás mellett lévő n db értéket egy-egy (diszjunkt) kosárnak feleltetjük meg. A simítást pedig úgy végezhetjük el, hogy vesszük a kosárban lévő értékek átlagát vagy mediánját (mozgó átlag - MA), vagy felső-alsó határát (minimális vagy maximális értékét), és a kosárban lévő adatokat ezek alapján írjuk felül. Minél szélesebb (nagyobb) kosarat használunk, annál erősebb a simítás hatása. Klaszterezés. A hasonló értékeket csoportokba, ún. klaszterekbe fogjuk össze (ld. 4 fejezet). Azok az értékek, amelyek nem kerültek bele egyik klaszterbe sem, szélsőségesnek vagy kiugrónak tekintjük, és az elemzés során nem vesszük figyelembe, kivéve, ha a kiugró értékek elemzése a cél. Kombinált számítógépes és emberi vizsgálat. Ebben az esetben a számítógép egy adott mérték használatával képes detektálni az eltérő mintákat. Viszont ezekben a mintákban lehetnek értékes információt hordozók is, így ki lehet szűrni ezeket, ha a kivételes mintákat egy személy átvizsgálja. Tehát nem az összes adatot kell átnézni manuálisan, elég csak a kivételeseket. Regresszió. Az adatok értékeire egy görbét illesztünk, amit a további feldolgozásban használunk. Alkalmazhatunk többféle lineáris vagy többváltozós regressziót a feladatra (ld. 7. fejezet). Az adatokból nem lehet maradéktalanul eltávolítani a zajt. Ezért használják a becslés kifejezést is, amikor a zaj viselkedését határozzák meg. A simítás is egy eszköz a zaj, a kiugró értékek, a kivételek csökkentésére. Mivel a zaj a mért és továbbított adatok természetéből adódik, számolnunk kell vele az előfeldolgozás során, történjen az tisztítási céllal vagy az elemzésre való felkészítés céljából. Láthattuk, hogy nagyon sok aspektusa van az adatok tisztításának. Amikor egy adatbányászati feladatra készülünk vagy adattárházat készítünk, érdemes ezeket a lépéseket egy munkafolyamatba foglalni, megkönnyítve a tisztítási lépések használatát és gyors feldolgozását mind egyszerű adatbázis esetén, mind különböző adatbázisok integrálása esetén. Ez azonban még nem elegendő. Ahhoz, hogy feltárjuk az elrejtett információt, még további lépéseket kell megtennünk. 101
110 3.2. ADATOK FELKÉSZÍTÉSE 3.2. Adatok felkészítése Miután az adatainkat előkészítettük a tisztító rutinok segítségével, egy eléggé összetett és komoly feltétel rendszeren keresztül feldolgozott adathalmazzal rendelkezünk, ami kellően konzisztens, nem tartalmaz összeférhetetlenségi problémákat, a duplikátumokat és a zajos adatokat is alacsony szintre szorítottuk. Készen állunk arra, hogy figyelmünket az alkalmazott bányászati technikára fordítsuk, és az adatainkat ilyen szempontból is megvizsgáljuk. A tisztított adatainkat fel kell készítenünk, hogy az alkalmazott adatbányászati technika képes legyen a gördülékeny feldolgozására és eredményes használatára. További módosításokat lehet végezni az adatokon általánosítás céljából. Ezeket a módosításokat tekintjük át az alábbi felosztás szerint: Transzformálás, Dimenzió-csökkentés a fontos ismérvek kiválasztásával, Adatredukció Transzformálás A kiindulási adatok transzformálásával olyan adat reprezentációt készítünk, ami az elemző adatbányászati módszerek számára szükséges. Például a neurális hálózatok numerikus értékekkel dolgoznak, a döntési fa generálás során pedig numerikus és szimbolikus értékeket kombinálnak. Az adat transzformáció során oda kell figyelni arra, hogy ne veszítsünk információt az eredeti adatok transzformálásával, ezt az eredeti és a transzformált adatok megjelenítésével könnyen ellenőrizni tudjuk, vagy használhatunk korreláció analízist is. Itt olyan transzformáló módszereket mutatunk be, amelyeknél nincs vagy nagyon kicsi az adatveszteség, és esetleg más tartományokat fednek le a reprezentált értékek. Vizsgáljunk meg néhány ide tartozó módszert az adatok transzformálására: 102 Simítás. Fő alkalmazási területe a zaj csökkentése az adatokban kosarazással, klaszterezéssel, regresszióval. Az előző részben láthattuk az alkalmazási módszereit. Általánosítás. Ezzel a módszerrel magasabb kategória szintre emelhetjük az értékeket a széles tartományt lefedő numerikus vagy kategorikus információk szintjéről. Ez is egy bizonyos csoportosító összesítést, összevonást jelent, például a fuvola, trombita, hegedű értékeket kicserélve a hangszerek átfogó és általánosító kifejezésre, numerikus értékek esetén például az érdemjegyeket képezhetjük le a nem felelt meg, megfelelt, kiválóan megfelelt hármasra, vagy például összesítéseket konstruálhatunk havi, negyedévi, évi szinten a bevételekből. Ezek az összefüggések más néven fogalmi hierarchiaként is ismeretesek. Normalizálás. Nagyon széles körben használt módszer az adatok levetítéséhez egyik tartományról egy másik tartományra. Főleg a neurális hálózatok témaköré-
111 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE ben vagy összehasonlító módszereknél, ahol lényeges, hogy az egyes attribútumok azonos intervallumba essenek, például a távolságmértéket használó algoritmusok esetén a nagyon kis (század, ezred) tartományba eső fontos attribútumok lokalizáló hatása eltörpül a nagy értékekkel rendelkezők mellett (pl. hőmérséklet). Néhány példa a normalizálásra: lineáris (min-max) normalizálás, logaritmikus normalizálás, standardizálás (zéró átlag normalizálás), decimális skálázású normalizálás. A lineáris normalizálás egyenletesen transzformálja az adatokat és megőrzi az adatértékek közötti összefüggéseket. Ugyanezzel a módszerrel lehet hisztogram kiegyenlítést is elvégezni, aminek a lényege, hogy egy kisebb (vagy nagyobb) intervallumba eső adatpontokat más intervallumba transzformál lineárisan. Ismernünk kell az adatsor minimális és maximális értékét, így meg tudjuk mondani, hogy milyen intervallumban lévő értékeket szeretnénk transzformálni. Nem kötelező a min-max értékpárt használni, választhatunk olyan intervallum határokat, amelyek lényegében határozzák meg az adatokat, így a zajok nem fogják meghatározni a normalizálás folyamatát. Ha például 20 és 80 között lévő adatpontokat szeretnénk 1 és 100 közé normalizálni, az eredeti adatpontokra a következő függvényt kell alkalmazni: f (x) = (x 20) + 1 (3.3) ahol az x egy adott értéket jelent a régi intervallumban, f (x) adja az új értéket az új intervallumban. Az átfogott tartomány = 60 érték volt, az ezzel való leosztással 0 és 1 közé kerülünk, amit = 99-cel felszorozva kapjuk az új értéket az új tartományban. Szélsőséges értékeket tartalmazó adatsorok esetén és amikor nem ismert az adatsor karakterisztikája, a zajok fogják meghatározni a minimumot és a maximumot, ezért ekkor érdemesebb a standardizálást elvégezni normalizálás helyett. A logaritmikus normalizálásnál az értékek a 10-es vagy természetes alapú logaritmus függvényében módosulnak egy új tartományra. Ekkor az egyenletünk a következőképpen módosul: f (x) = lg(x 19.99) + 1 (3.4) lg(80 20) Mivel a leosztás lényege a 0 és 1 közé szorítás, ezért erre is kell alkalmazni a logaritmust, illetve figyelni kell az értelmezési tartományára is. A standardizálás akkor hatásos, ha nem tudjuk az értékek korlátait, az alsó és felső értékeit, de ismerjük az átlagot és az értékek szórását. Kiszámítási módja az 103
112 3.2. ADATOK FELKÉSZÍTÉSE f (x) = x x σ (3.5) 104 függvénnyel történhet, ahol x az átlag, σ a szórás értéke. Decimális skálázásnál a legnagyobb abszolút érték logaritmusának következő egészre növelt értéke határozza meg, hogy mennyivel kell a tizedesvesszőt áthelyezni minden értékben, így az értékek egy új tartományban fognak szerepelni: 0 és 1 között. Hisztogram transzformáció. Az adatok relatív gyakoriságát módosíthatjuk a hisztogram transzformációk segítségével, amivel egyfajta normalizálást végezhetünk el. Ismert művelet például a széthúzás, amivel az adatok értékeit egy megadott szélesebb tartományba transzformálhatjuk egy egyszerű függvény segítségével. Lineáris egyenletet használva ugyanazt érhetjük el, mint a normalizálással, viszont más függvényekkel, például négyzetes vagy gyökös, az adatok jellegét változtathatjuk meg. Például, ha az adatsor karakterisztikája négyzetesen változik, a hozzá tartozó inverz függvénnyel adott esetben egy gyökfüggvénynyel lineárissá tehetjük a karakterisztikát, így lineárisan összemérhetővé válhat más adatsorokkal. A normalizálásnál vett példa itt is használható a logaritmikus egyenletnél tett megjegyzést figyelembe véve. A uk/hipr/html/histeq.html honlapon is találunk a hisztogram transzformációval kapcsolatban információkat. Új attribútumok konstrukciója. Amikor olyan adatokra van szükségünk, amik előállnak már létező attribútumok kapcsolatával, összevonásával vagy valamilyen összegzésével, akkor tulajdonképpen redundáns adatokat hozunk létre, amik az elemzés szempontjából szükségesek lehetnek, vagy az azonosítást segíthetik. Erre egy egyszerű példa az alkalmazottak nevének összevonása, ha a családnév és a keresztnév külön van, vagy ha adottak egy test (téglatest, gömb, henger, kúp) koordinátái, abból elkészíthetjük a térfogat attribútumát. Típus módosítás. Gyakran előfordul, hogy adatbázisok között adatokat mozgatunk, akár adatok integrálása, akár importálások céljából. Ekkor szükségünk lehet egy köztes adathordozó struktúrára, amibe szükségszerű a transzformálás. Ilyen lehet a karakteres CSV formátum vagy a most már széles körben elterjedt XML leírónyelv használata, amiben pontosan leírhatjuk az adataink típusát, méretét és tulajdonságait. Így is előfordulhat, hogy a cél adatbázisban bizonyos adattípusok nem állnak rendelkezésünkre, amiket már megszoktunk a régebbi adatbázisunkban. Ekkor kénytelenek vagyunk
113 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE kompromisszumot kötni a cél adatbázissal, és kiválasztani egy alternatív adattípust. Az ilyen konverziók során létrejövő problémák akár adatvesztéssel is járhatnak, így célszerű odafigyelni az alkalmazásukra. Az adat transzformációk azért szükségesek, hogy az adatok struktúrájában, reprezentációjában vagy tartalmukban változtatásokat hajthassunk végre. Ezeket a transzformációkat többnyire az adatbányászati eszköz igényli, de szükség lehet rá az adatok importálásánál vagy az adatbázisok integrálása során is Példa. WEKA transzformáló eszközei Nagyon sokféle lehetőséget kínál a WEKA az adatok transzformálásához. Néhányat röviden bemutatunk ezek közül. A módszereket ún. filterek közül választhatjuk meg, ahol felügyelt (supervised) és nem felügyelt (unsupervised) módszerek állnak rendelkezésre, ezeken belül pedig attribútumra és rekordra (instance) vonatkozó csoportosítást találunk. AddNoise (unsupervised attribute). Bizonyos esetekben szükség lehet arra, hogy manuálisan zavarjuk meg az adatokat. A szűrők beállításai gyakran hasonlóak, így mindig csak az újakat vagy az adott szűrőre vonatkozó paramétereket említjük majd meg. Miután kiválasztottunk egy szűrőt, megjelenik a Filter gomb mellett a neve és néhány paramétere. A szűrő nevére (most AddNoise) kattintva megjelenik az adott szűrő paraméter listája. Az attributeindex határozza meg azoknak az attribútumoknak a számát, amikre zajt szeretnénk tenni. Az attribútumok számozása 1-től kezdődik, ezt a Preprocess ablak Attributes keretében az No. jelzi. Egyenként, de tartományonként is felsorolhatjuk az attribútumokat, például first-3,6,8-10,last. Az első és az utolsó attribútum helyett használhatjuk a sorszám értéküket is. A percent paraméterrel állíthatjuk be, hogy az adatok hány százalékát módosítsa. Beállítható még, hogy hiányzó értékeket használjon-e, illetve az álvéletlen kiválasztás (generálás) honnan induljon, mivel a szűrőt újra lefuttatva ezekkel a beállításokkal ugyanazokat a rekordokat fogja módosítani. A More gombra kattintva egy kicsit részletesebb információt kaphatunk a szűrő működéséről. Az OK-ra kattintva menthetjük el a beállításokat, és az Apply gombbal futtathatjuk le a szűrőt. A Save gombbal elmenthetjük az eredményt. Ha az eredmény nem megfelelő, akkor az Undo gombbal visszavonhatjuk a változtatásokat. Randomize (unsupervised instance). Abban az esetben, amikor az adatok osztályok, csoportok szerint vannak sorba rendezve, érdemes lehet összekeverni a rekordok sorrendjét. Ebben nyújt segítséget a Randomize szűrő. 105
114 3.2. ADATOK FELKÉSZÍTÉSE 106 Standardize (unsupervised attribute). Minden attribútumot 0 várható értékre és egységnyi varianciára transzformál. Discretize és PKIDiscretize (unsupervised attribute). Numerikus attribútumokat adott tartományok szerint feloszthatunk ezzel a szűrővel. A kapott kategórianevek a lefedett tartományokat tartalmazzák például (-inf-4.66); ( ), stb. A bins paraméterrel állíthatjuk be, hogy hány részre osszuk fel a számegyenest a diszkretizálás során. A useequalfrequency paraméterrel azonos szélességű intervallumokat próbál kiválasztani a program. A desiredweightofinstancesperinterval paraméter az előző paraméterrel együtt fejti ki a hatását, és ha negatív, akkor a bins-t figyelembe véve jön létre a felosztás, ha pozitív, akkor úgy próbálja felosztani a számegyenest a program, hogy megközelítőleg desiredweight számú rekord tartozzon mindegyik felosztásba. Ha nem használjuk az useequalfrequency paramétert, akkor a desiredweight a find- NumBins paraméterrel együtt használható, ugyanúgy, ahogy az imént tárgyaltuk. A makebinary beállításával több attribútum jön létre, amelyekben csak 2 féle intervallum található meg, például(-inf-4.66) és (4.66-inf). Az attirbútumok közötti különbség a középső osztópontban van. Az Iris adatsoron például 5 attribútumra 10 bins mérettel 37 attribútum keletkezett a felosztások alapján. Az invertselectionnal elérhető, hogy az attributeindices-ben megadott indexek inverzén, azaz a nem felsorolt indexű attribútumokon végzi el a diszkretizálást. A PKIDiscretize annyiban különbözik a Discretize szűrőtől (bár ugyanazokkal a paraméterekkel rendelkezik), hogy az intervallumok számát önmaga határozza meg az értékes rekordok számának gyöke alapján. Normalize (unsupervised attribute). Minden attribútumot kivéve az osztálycímkéket tartalmazót 0 és 1 közé normalizál. Normalize (unsupervised instance). Minden egyes rekord értékét a hozzá tartozó normálvektor értékeivel írja felül. Paraméterként a normák típusa adható meg. NumericTransform (unsupervised attribute). A kiválasztott attribútumok értékeire a WEKA osztályaiba tartozó transzformáló függvényeket futtathatunk. A függvények eredményei felülírják az eredeti értékeket. Alapértelmezettként a Math osztály függvényeit használhatjuk a methodname paraméterben, például abs, tan, log, stb.
115 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE MergeTwoValues (unsupervised attribute). Az attributeindex által meghatározott nominális (karakteres) attribútumban a firstvalueindex és a secondvalueindex rekordokhoz tartozó értéket összefűzi, és mindkettőnél erre cseréli. AddExpression (unsupervised attribute). Egy új attribútumot hozhatunk létre a meglevőkből valamilyen matematikai kifejezés segítségével. Az attribútumokra egy a karakterrel és az attribútum számával érhetünk el, például a3 a harmadik attribútum értékét jelenti. Beállíthatjuk az új attribútum nevét is. Obfuscate (unsupervised attribute). Az adathalmazunkban lévő öszes szöveges értéket általánosítja és az attribútumokat a1,a2,a3-mal jelöli, a különböző szöveges értékeket pedig v1,v2,v3-mal. Akkor célszerű használni, ha olyan adatsort szeretnénk megosztani, aminek az elnevezései nem publikusak. Copy (unsupervised attribute). A megadott attribútumokról egy másolatot készít a legutolsó attribútum után Fontos ismérvek kiválasztása Gyakran szembesülhetünk azzal, hogy óriási mennyiségű adatot szeretnénk megvizsgálni. Nem csak a rekordok száma ijeszthet meg minket, hanem az attribútumok száma is. Ezt a problémát a dimenzió méretek átkaként is szokták emlegetni (curse of dimensionality). Bár a mai számítási képességek nagymértékben nőttek, érdemes lehet csökkenteni az adathalmazunk dimenzióját az értékes és releváns ismérvek (jellemző attribútumok) kiválasztásával (feature selection). A dimenzió csökkentése ezen kívül számos előnnyel is járhat. Megkönnyíti az adatok megjelenítését és megértését, csökkenti a tárolás költségét, lerövidíti a genetikus tanulási eljárások és felhasználások futási idejét, és megkönnyíti az adatokra támaszkodó becsléseket is. A fontos ismérvek kiválasztásával kapcsolatban lásd a [15] és a [16] cikkeket. A kiválasztás mellett gyakori az attribútumok (jellemzők) redukálása vagy tömörítése (feature extraction) is, amivel új, az adatsorra támaszkodó attribútumokat kaphatunk. Ezekkel a módszerekkel a 3.6 részben foglalkozunk. Ahhoz, hogy eredményesen alkalmazzuk a dimenzió kiválasztás módszereit, az adatokat egy tömör, konzisztens és összemérhető formára kell hozni, például hiányos adatkezelés, normalizálás segítségével. Mindenek előtt felmerülhet a kérdés: hogyan lehet eldönteni, hogy mik azok a dimenziók, attribútumok, amikre valóban szükség lesz a rendelkezésünkre álló paraméterek százaiból? Ehhez a feladathoz nagyon sok dimenzió csökkentő eszköz áll a rendelkezésünkre. Kisebb adathalmazok esetén, ha ismerjük 107
116 3.2. ADATOK FELKÉSZÍTÉSE az attribútumok közötti összefüggéseket, akkor manuálisan is kiválaszthatjuk a lényeges attribútumokat. Nagyobb attribútum halmaz esetén nem biztos, hogy ismerjük az összes attribútum tulajdonságát, így ha tévedünk, a fontos attribútumok kihagyásával vagy a lényegtelenek megtartásával nem a várt eredményt fogja adni a választott adatbányászati módszerünk. Főleg a tanuló és neurális algoritmusok látják ennek kárát. Az attribútumok kiválasztásához használhatunk például rangsoroló módszereket és az így kapott rangsorból kiválaszthatjuk az első néhányat. A rangsorolás meghatározott mértékek szerint történik. Mértékeket használnak az attribútumok hasznosságát illetően is, aminek a használatával csak egy küszöbértéket kell beállítani, hogy a redukált attribútumhalmaz hasznossága, reprezentáció képessége megfelelő legyen. Az információ tartalom, entrópia, gini index használatosak a hasznosság megállapításához, amiket majd az részben tárgyalunk. A kovariancia elemzéssel két vagy több attribútum lineáris kapcsolatát vizsgálhatjuk meg. Ha n attribútumunk van, az elemzés eredménye egy n n-es mátrix lesz, amiben az oszlopok és a sorok az attribútumokra vonatkoznak ugyanolyan sorrendben. A mátrix egyes elemei két attribútum adatpontjainak és átlaguk eltéréseinek szorzatát átlagolja a következő képlet alapján: cov{x,y } = 1 N N i=1 (x i x)(y i ȳ) (3.6) ahol x i és y i az attribútumok i-edik értéke és x,ȳ az átlagok. Az elemzéssel megvizsgálható, hogy két attribútum értékei azonos mértékben változnak-e. Ha a változás egyirányú, tehát mindkét attribútum nő (vagy csökken), akkor a kapott érték pozitív, különben negatív (amikor az egyik nő, másik csökken, gátolja az egyik a másikat). Korreláció elemzéssel is az értékek változásait vethetjük össze abban az esetben, amikor az adatok mértékegységtől függetlenül állnak a rendelkezésünkre, tehát nem feltétlen ugyanabból a tartományból veszik az értékeiket. 1 és 1 közötti értéket kapunk a korrelációs együtthatóra. Ha kiszámoljuk az együtthatót minden lehetséges attribútum párra, akkor itt is egy mátrixot kapunk, ahol két attribútum (X, Y ) korrelációját úgy kapjuk meg, hogy a kovarianciájukat elosztjuk a szórásaik szorzatával: corr(x,y ) = cov(x,y ) σ X σ Y (3.7) 3.5. Példa. Excel - Kovariancia és korreláció analízis Mindkét elemzést elvégezhetjük az Adatelemzés.. eszközzel a Kovarianciaanalízis és a Korrelációanalízis kiválasztásával. Beépített függvényként megtalálhatjuk a KOR- REL, KOVAR függvényeket, amelyek két attribútum vizsgálatára adnak eredményt. 108
117 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE Az attirbútumok kiválasztásához használhatunk heurisztikus módszereket is. Ezek a módszerek az attribútumok egy minimális részhalmazát választják ki az alapján, hogy megvizsgálják, melyik az a legkisebb részhalmaza az attribútumoknak, ami a legjobb reprezentációját adja a teljes adathalmaznak, az értékek valószínűségi eloszlását, az attribútum minőségét vagy osztályozási hiba kritériumot figyelembe véve. Néhány releváns attribútum redundáns információkat hordozhat, és bizonyos információ csak az attribútumok egy halmazából deríthető ki. Formálisan legyen a kezdeti attribútum halmaz X, n db attribútummal (tehát X n dimenziós). m db attribútumot szeretnénk kiválasztani X-ből, amivel az Y halmazt kapjuk, m < n. Az attribútum kiválasztás kritérium függvénye Y halmazra legyen K(Y ). Feltételezzük, hogy minél nagyobb értéket ad K a vizsgált Y részhalmazokra, annál jobb részhalmazt választottunk ki. Ha kritérium függvénynek az attribútum minőségét választjuk, akkor annak tükröznie kell az általa nyújtott hasznos információt. Két fő megközelítése van egy attribútum minőség meghatározásának: Nem vesszük figyelembe a többi attribútumot, így feltételezzük, hogy függetlenek az attribútumok. A többi attribútummal összefüggésben vizsgáljuk meg a minőséget. A minőség meghatározásánál használatos fogalmak a következők: információnyereség, entrópia, gini-index (5.2.2), tisztaság, RELIEF, CM mérték, kereszt validálás, kovariancia. Az információ minőséggel kapcsolatban lásd [17] cikkét. Ha osztályozási hibát használunk kritérium függvényként, akkor a részhalmaz meghatározása függ a kiválasztott osztályozási módszertől és a tanuló adatok méretétől. Ezekkel a mértékekkel rangsorolhatjuk is az attribútumokat Példa. WEKA - Attribútumok kiválasztása Az AttributeSelection (supervised attribute) szűrő segítségével sokféle kiválasztó módszer közül választhatunk. A WEKA GUI-ban a Preprocess fülnél ezzel a szűrőnek a segítségével csökkenthetjük az attribútumok számát. A Select Attributes fülnél ennek a szűrőnek a beállításait találhatjuk meg kiemelve ebbe a külön fülbe, ahol az elemzések, rangsorolások eredményeit is megtekinthetjük. A használható paraméterek: az attribútumok kiválasztási módszerei (search és Search Method) és a dimenzió-csökkentő eljárás kiválasztása (evaluator és Attribute Evaluator). A 3.4. ábrán láthatjuk a választható módszerek listáit. A következőkben tárgyalt elméleti módszereknél zárójelben 109
118 3.2. ADATOK FELKÉSZÍTÉSE 3.4. ábra. AttributeSelection módszer-paraméterei feltüntetjük, hogy melyik WEKA módszer használatos az adott esetben a kiválasztáshoz, amit a search: előtaggal jelöltünk. Megmutatták, hogy nincs olyan nem kimerítő szekvenciális attribútum kiválasztó módszer, ami garantálni tudná az optimális részhalmaz kiválasztását, így ha optimális megoldást keresünk, végig kell vizsgálni az összes lehetséges részhalmazt. Ez valóban kimerítő művelet, ha belegondolunk, hogy m elem esetén 2 m részhalmaz lehetséges, illetve ha N-ből M elemű részhalmazt keresünk, akkor (N alatt az M) lehetőséggel kell számolnunk. A következő heurisztikus módszerek használatosak az attribútumok kiválasztására: 110 Kimerítő keresés. Végigvizsgálja az összes lehetséges részhalmazt, és garantáltan megtalálja az optimálisat (search:exhaustivesearch). Nem alkalmas a vizsgált és várt halmazok nagy N és M számosság esetén, mivel a keresés számításilag kezelhetetlen lesz a probléma NP-teljessége miatt. Előrelépéses kiválasztás. Üres attribútum halmazzal indul az eljárás. Megpróbálja mindig a legjobb attribútumot hozzávenni a halmazhoz, ami maximalizálja a kritériumot.
119 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE Visszalépéses eliminálás. A teljes attribútum halmazt veszi alapul. Mindig a legrosszabb attribútumot hagyja el a halmazból, és ez az attribútum nem kerülhet vissza az optimális halmazba. Több számítást igényel, mint az előrelépéses kiválasztás, mivel a teljes attribútum halmazzal indul. Az előző kettő kombinációja. Az aktuális halmazból eldobjuk a legrosszabbat, és hozzávesszük a legjobbat a kiválasztott attribútum részhalmazhoz (search:best- First, RaceSearch). Megadható egy kezdő attribútum halmaz is. Hozzávesz j-t, elvesz k-t. Először előrelépéssel j db attribútumot hozzávesz, majd visszalépéssel k db-ot eldob, j > k. Ezzel lehetséges a kidobott attribútum újra vizsgálata is. Ennek a megközelítésnek ismert az a változata is, amikor j és k paramétereket dinamikusan határozzák meg egy elfogadható számítási költségig (search:randomsearch), hogy az optimális megoldáshoz közelebb kerüljenek. Rangsorolás. A keresés során kialakult teszt halmazokat bizonyos mértékek alapján rangsorolhatjuk. (search:ranksearch, A rangsorolás mértékét a kiválasztható evaluator módszerek adják meg.) Ezek a megközelítések mohók (search:greedystepwise). Lokálisan a legjobb megoldásokat választják, így előfordulhat az az eset, hogy a két legjobb attribútumot kiválasztva nem biztos, hogy a legjobb két attribútumhoz (a legjobb attribútum részhalmazhoz) jutottunk. Ilyen a döntési fa indukció is. Ezzel a módszerrel kikerülhetjük a kimerítő keresést, ha korlátokat keresünk a végső kritériumhoz. Ennek az a lényege, hogy a kritérium függvény monoton legyen, így két részhalmazt tekintve (Y 1 és Y 2 ), ahol az egyik részhalmaza a másiknak (Y 1 Y 2 ), igaz a kritérium függvényre, hogy K(Y 1 ) < K(Y 2 ). Tehát egy kiválasztott részhalmaz minőségének (adott esetben) növekednie kell, ha hozzáadunk egy attribútumot. Sajnos a legtöbb, használt kritérium függvény nem elégíti ki ezt a feltételt. Egy másik fő kérdés az, hogy hány attribútumnak kell lennie a kiválasztott részhalmazban. A gyakorlatban ezt így határozzák meg a fenti módszerek egymást követő használatával ez adja a heurisztikát: Próbáljuk csökkenteni (vagy növelni) az attribútumok számát, amíg a legjobban megfelelő modellt kapjuk. Általában az attribútumok száma valós, nagy alkalmazásokban 10-től 40-ig terjed. Használható technikák lehetnek a CART, C4.5 döntési fa generáló, mesterséges neurális hálók, DNF indukciós szabály módszerek. Egy újonnan alkalmazott megközelítése az attribútum kiválasztásnak, hogy az adott attribútumokat több partícióra osztják dekompozícióval, ezeken a partíciókon rész-problémákat definiálnak, amiknek az eredményeit feljegyzik. Ezekből az eredményekből végül nyereségi mértékekkel meghatározzák az optimális partíciót. 111
120 3.2. ADATOK FELKÉSZÍTÉSE Adatredukció számosságcsökkentéssel Az adataink méretének csökkentésére sok módszer létezik. A csökkentéssel két célt valósíthatunk meg: csökkenthetjük a tárolókapacitást, gyorsíthatjuk a feldolgozást. Az egyik megközelítést már tárgyaltuk, amikor az attribútumok számát csökkentettük. Ez egy olyan csökkentés volt, ahol az eredeti attribútumokat használtuk: hozzávettünk majd elvettünk a kisebb részhalmazból, így kaptunk egy csökkentett reprezentációt az adatokból. Ebben a részben a rekordszámok csökkentésére avagy a számosságcsökkentésre összpontosítunk. Ezek a módszerek valamilyen információt használnak fel ahhoz, hogy csökkentsék az adatok számát. Az információ mindenképpen az adatok tulajdonságára kell hogy utaljon. A módszerek lehetnek paraméteresek és nem paraméteresek. Ha paraméteres módszert használunk, akkor egy modell határozza meg, hogyan kell az adatokat reprezentálni. Ekkor elég csak a paramétereket eltárolni, amikből az eredeti adatok közelítőleg állíthatóak vissza, mivel ezek a módszerek veszteségesek. A nem paraméteres módszereknél valamilyen szabályt használunk arra, hogy kiválasszuk a reprezentáló rekordokat, vagy elhagyjuk a feleslegeseket. Nézzük meg ezeket a módszereket részletesebben. Regressziós modellek A regresszió témakörével a 7. fejezetben foglalkozunk. A regressziós megközelítés előnye mind a ritka, mind a sűrű adatoknál megmutatkozik. Ritka adatoknál tulajdonképpen általánosítást végez, és kibővíti az értékeket, sűrű adatoknál pedig a zajt és a zavarokat küszöböli ki. Hisztogramok Nagyon kézenfekvő megoldást nyújtanak az adat értékek csökkentésére. Itt nem szeretnénk részletekbe menően elemezni a hisztogramok tulajdonságait, mivel ezt a módszert a megjelenítés és a feltáró elemzés területén fogjuk tárgyalni (ld fejezet). Csoportostás Az eljárás lényege, hogy nem a nagy számosságú adathalmazzal, hanem az arra jellemző csoportokkal dolgozunk. Az alkalmazható algoritmusokról részletes ismertetést kaphatunk a 4 fejezetben. Mintavételezés Közvetetten az eddig tárgyalt megközelítések is alkalmazták az adathalmaz redukálásához a mintavételezést. Az alapvető mintavételezések a kombinatorikából jól ismert 112
121 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE esetek. N az adathalmaz számossága, M a kiválasztott minta (részhalmaz) számossága, M < N. Visszatevés nélküli M elemű egyszerű véletlen mintakiválasztás. Az adathalmaz minden elemét ugyanolyan, 1/N valószínűséggel választhatjuk. Ha egy rekordot már kiválasztottunk, akkor azt nem vehetjük még egyszer a részhalmazhoz. A legegyszerűbb és a leggyorsabb módja az adatok kiválasztásának. Visszatevéses M elemű egyszerű véletlen mintakiválasztás. Ekkor a kiválasztott rekordot újból kiválaszthatjuk a következő esetben. Akkor lehet jól használni, ha nem számít a redundancia az elemző módszernél. Klaszterminta. Az adathalmaz rekordjait M db páronként diszjunkt partíciókra (klaszterekre) osztjuk (csoportosítjuk), és visszatevés nélkül kiválasztunk m db partíciót. A kiválasztott partíciók uniója adja a redukált adathalmazt. Tehát miután elvégeztük a partícionálást, nem kell az N számú rekordok közül válogatni, hanem a partíciók közül, amiknek a számossága jóval kisebb (m < M << N). A partíciókat csoportosítással, klaszterezéssel, hisztogrammal is elő lehet állítani. Rétegzett minta. Az adathalmaz rekordjait itt is páronként diszjunkt partíciókra - adott esetben rétegekre - osztjuk, és külön-külön mindegyik rétegben elvégzünk egy-egy mintakiválasztást, amivel egy rétegzett mintát kapunk. Hisztogramok esetén láthatjuk az alkalmazását Példa. Excel - Mintavételezés Az Analysis Toolpak Mintavétel eszközével visszatevéves mintavételezést készíthetünk a Véletlen minták száma mező beállításával. A Periódikus időszak mezőben beállított érték azt határozza meg, hogy hány soronként vegyen egy-egy mintát az adatokból, amivel egy álvéletlen rétegzett mintát kaphatunk Példa. WEKA - Mintavételezés és törlés az adatsorból Resample (unsupervised instance). Mintavételezést valósíthatunk meg az adatokon. A minta méretét a samplesizepercent paraméterrel adhatjuk meg. RemovePercentage, RemoveRange, RemoveWithValues (unsupervised instance) szűrőkkel is csökkenthetjük a rekordok számát. Az első szűrő megadott százalékot dob 113
122 3.3. ADATOK MEGJELENÍTÉSE el az adatokból, a második szűrővel a megadott attribútumokban lévő összes rekordot törli, a harmadik szűrővel egy adott attribútum értékei alapján törölhetünk. Fogalmi hierarchiák használata Az attribútumok értékeinek hierarchikus vagy többszintű részletességű felosztása. Előzőleg már tettünk néhány utalást a fogalmi hierarchiák redukáló lehetőségeire. Érezhető, hogy a fogalmi hierarchia sok esetben a legkézenfekvőbb dolog, mivel a mindennapi életben is körülvesznek bennünket a vezetői, családi, ismeretségi, konstrukciós hierarchiák. Az adatok szintjén is előállíthatunk ilyen hierarchiákat akár a tapasztalatra alapozva, vagy különféle szervező módszereket használva. Egy egyszerű példát említünk meg: ország, megye, város, kerület, utca, házszám. Nem csak lineáris hierarchia alakítható ki, éppen ezért van jelentősége a döntési fáknak ebben a témakörben (ismertetése külön fejezetben), tehát ügyelni kell a szinonim vagy egymást kiegészítő jelentésekre is. A szervező módszerek szinte mindegyikére láthattunk példát. Ezek a következők lehetnek: kosarazás, hisztogram-analízis, klaszterezés, döntési fa algoritmusok, természetes partíció szerinti szegmentálás. Mindegyik módszerrel csoportokat hozhatunk létre bizonyos attribútumok vagy értékeik alapján, ezekből további részcsoportokat, és így tovább egy kívánt alapcsoportig. Ez az osztályozás egy hierarchiát képvisel, amelynek minden szintje egy új reprezentációt jelenthet az adatok számára. Az előző példával élve vehetjük a város szintet a hierarchiából, és mintavételezést használva kiválaszthatunk minden városból egy-egy reprezentáló adatot. Ezt elvégezhetjük bármelyik szinten, így ennek segítségével is elvégezhető az adatok redukálása. Röviden áttekintettük azokat a lehetőségeket, amikkel az adataink számosságát csökkenthettük az adatbányászati módszer hatékonyságának növelése érdekében. Láthattuk, hogy már pedzegettük azokat az adatbányászati módszereket, amik tulajdonképpen a lényeges feltárást végzik, és így összekapcsolódnak az adatok előfeldolgozásával is. A továbbiakban a felhasználót szeretnénk jobban előtérbe helyezni, és a tapasztalataira, benyomásaira alapozni a megjelenítési technikák vázolásával Adatok megjelenítése Az adatok megjelenítésének fő kérdései a következők: hogyan jeleníthetjük meg az adatokat a lehető legjobban áttekinthető módon, a megjelenítés eredményeként találunk-e érdekes csoportokat és kiugró értékeket, felismerjük-e, hogy mely változók lényegesek, illetve redundánsak? A megjelenítésnél is igaz a jól ismert tétel, hogy a közvetlen 114
123 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE memória terjedelme véges, így általában egyszerre kb. hét értéket, színt tudunk megkülönböztetni, maximum három dimenzióban Pont diagram, vonal diagram - grafikon Amikor egy rekord két olyan attribútumot tartalmaz, ahol az egyik meghatározza a másikat, és szeretnénk látni a kettő közötti összefüggést, akkor a két dimenziós pont diagram egy alkalmas eszköz erre a célra. Az ábrázolt pontszerű értékek közötti összefüggést összeköthetjük. Kevés adatpont esetében ez jól használható a tendenciák követésére. Sok és zajos adatpont esetén közelítő görbét illesztünk az adatpontokra: két dimenzióban ez a vonal diagram (grafikon), három dimenzióban ez egy felület. A vonal diagramok jól használhatóak, ha például egy bizonyos intervallumban történt változásokat kell nyomonkövetni. A vonaldiagramot beszínezve terület diagramot kapunk. Több attribútumot úgy is megjeleníthetünk, hogy a területeket egymásra helyezzük, ezzel halmozott terület diagramot kapunk. Ha különbözőek az attribútumok értéktartományai, érdemes a százalékos felosztást választani. Ekkor a különböző attribútumok értékeinek az összege adja a 100%-ot, így az értékek egy azonos mértékhez képest jelennek meg a diagramon. Jól használható eszközök vannak erre Excelben Oszlop, sáv diagram Az oszlop diagramok több, általában azonos típusú attribútumokat jelenítenek meg hatékonyan, tehát vagy szimbolikusakat vagy numerikusakat, viszont kevesebb számú rekordot fognak át, így inkább összesítések, kategóriák, statisztikák, időbeli változások eredményeire hatásosak. A vízszintes tengelyen helyezkednek el azonos távolságra az attribútumok (címkéi), függőlegesen pedig az attribútumok értékei, amiket az adott oszlop magassága reprezentál. Minden attribútum között lehet egy kis távolság a megkülönböztetés miatt, főleg, ha több rekord szerepel az ábrán. Ha csak egy időbeli sorozatot vizsgálunk oszlopdiagrammal, és az oszlopok között nem hagyunk rést, akkor diszkretizált ábrázolást kapunk, és az oszlopok függőleges vonalait el is hagyhatjuk. Több dimenzióban és több kategóriára is ábrázolhatunk oszlopdiagramokat, így a harmadik dimenzióhoz tartozó kategóriákat tudjuk jól összevetni a több oszlopsor segítségével. Ha ezt az ábrázolást visszaállítjuk 2 dimenziósra, akkor az oszlopok egymásra lapolódnak. Ezt a megjelenítést akkor célszerű alkalmazni, amikor az egyik kategóriához képest szeretnénk bemutatni, hogy a másik kategóriánál nagyobb értékeket tapasztalhatunk. Értelemszerűen mindig a nagyobb értékkel rendelkező oszlopok kerülnek hátra, különben eltakarnák a kisebb oszlopokat. Ha több kategória értékét egymásra helyezzük, halmozott oszlopokat kapunk, hasonlóan a terület diagramhoz. Itt is használható a százalékos felosztású halmozott diagram. Amennyiben a tengelyeket 115
124 3.3. ADATOK MEGJELENÍTÉSE 3.5. ábra. MPG adatsor sávdiagramja EXCEL-ben néhány autó súlya és gyorsulása megcseréljük, és a függőleges tengelyre kerülnek az attribútumok, akkor sáv diagramot kapunk. A rekordokat általában színekkel különböztetik meg egymástól, ezt általában külön helyen jelzik a diagramokon. Egy sávdiagram példát láthatunk a 3.5 ábrán. A sáv és oszlop diagramokat használhatjuk azonos szélességgel vagy magassággal is, ami a teljes egységet jelenti. Ezeket felosztva százalékos arányokat tudunk reprezentálni, vagy egy térképhez a magassági szintek színét. A sávokat és az oszlopokat más szimbólumokkal is helyettesíthetik, például szaggatott vonallal, minden esetre az adott szimbólum hosszúsága reprezentálja az értéket. Ezeket a diagramokat előszeretettel használják hisztogramok ábrázolására is, mint például az életkor piramis, ami egy kétoldalú sávdiagram. Függőleges tengelye adja a korosztályokat, vízszintes tengelye pedig százalékban mondja meg, hogy az adott népességre nézve hányan élik életüket az adott korosztályban Kör diagram Az egyik leggyakrabban használt diagram a kör diagram. Segítségével százalékos eloszlásokat tudunk bemutatni a kör 360 fokjára vetítve. Általában az óramutató járásával megegyező irányban ábrázoljuk az eloszlásokat csökkenő sorrendben. A figyelem felkeltése céljából egy-egy körszeletet ki lehet venni a teljes körből, vagy akár mindegyiket. Előnye, hogy könnyen meg lehet különböztetni az eltérő értékeket, viszont kis értékeknél nehézkes. Ezért fontos, hogy mindig feliratozzuk a körszeleteket a hozzájuk tartozó értékekkel. A buborék diagram a pont diagram és a kör diagram egyesítéséből adódik. Eléggé összetett információt reprezentálhat (pl. relatív gyakoriság). Egy pont diagramot kell elképzelni, ahol egy adatpont helyett egy kördiagram jelenik meg. Nézzünk rá egy gyors vázlatot: Legyenek az x tengelyen a vállalatok a foglalkoztatottak száma szerint 116
125 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE rendezve, y tengelyen pedig az általános vállalati részek, szekciók, például pénzügy, logisztika, vezetés. Ezeknek a keresztmetszetében pedig ábrázolhatjuk kördiagramon a foglalkoztatottak nemi megoszlását vagy iskolázottságukat. A grafikus megjelenítésnek van néhány alapszabálya Tufte szerint: Adjuk meg a lehető legtöbb ötletet a nézőnek, a legröviebb idő alatt, minél kevesebb "tintával", optimálisan a legkisebb ábrázolással. Az igazat mondjuk el az adatokról! A megjelenítésről kvantitatív információt kaphatunk a LIE faktor segítségével. LIE f aktor = a megjelenítésben lévő hatás nagysága az adat hatásának nagysága (3.8) Az adatokban és a megjelenítésben lévő hatások alatt két végletes érték különbségét érthetjük, például van egy olyan adatsorunk, ami hónapokra tartalmazza egy termék legyártott darabszámait. A legtöbbet februárban gyártottak: 56 db-ot, a legkevesebbet októberben: 12 db-ot. Egy grafikonon ezeket az információkat oszlopdiagrammal jelenítették meg, a februári értéket 2 cm magas, az októberit 6 cm magas oszloppal. A LIE faktor számítási módja tehát: LIE f aktor = Tufte ajánlata szerint a faktor 0,95 és 1,05 között ideális. = 1, 091 (3.9) 3.4. Feltáró jellegű adatelemzés Ebben a részben olyan ábrázolásokat nézünk át, amelyek statisztikai alapon mutatják be az alapokat. Megvizsgáljuk az adatokat, és olyan jellegzetességeket, struktúrákat keresünk, amelyek mélyebb értelmet adnak az adatok és az adatok által reprezentált események között. Kereshetünk úgy összefüggéseket az adatokban, hogy ismerjük a modellezett folyamat vagy a reprezentált dolgok, tények tulajdonságait, vagy vizsgálhatjuk az adatokat önmagukban, a feltárt jellegzetességekből következtetve a rendszer vagy folyamat karakterisztikájára. A numerikus adatok eloszlását vizsgáljuk. Ezért tekintjük át a következőkben az átlag, medián, módusz, percentilis, kvartilis, kvantilis fogalmakat. Az átlag az egyik legegyszerűbb jellemzője az adatoknak. Többféle átlag létezik: 117
126 3.4. FELTÁRÓ JELLEGŰ ADATELEMZÉS A számtani közép: x = 1 N N i=1 ahol N az adathalmaz számossága, a Geometrikus átlag: x i (3.10) x geom = N x 1 x 2... x N (3.11) és a harmonikus átlag: N x harm = 1 x x (3.12) x N A átlag mindig kisebb vagy egyenlő, mint a számtani közép. Egy gyors példa: ha egy termék ára 10%-ot növekedett az első évben, 20%-ot a másodikban és 30%-ot a harmadikban, akkor 18,17%-os állandó növekedéssel érte volna el ugyanazt az árat a 3 év alatt. A harmonikus átlag sosem nagyobb a számtani középnél és a geometrikus átlagnál. Tipikusan valamilyen sorrenden épülő dolgok átlagát számítjuk ezzel a mértékkel, például ha egy adott távolság felét 40 km h teszzük meg, a maradék távolságot pedig 60 km h -val, akkor az azt jelenti, hogy a teljes távolságot 48 km h -val tettük volna meg. A medián kiválasztásához rendezzük sorba az attribútum értékeit, és válasszuk ki az értékek közül a középső elemet. Ha páros számosságú a halmazunk, akkor a két középső elem átlagát. Az így megkapott szám lesz a medián. A módusz a leggyakrabban előforduló érték az attribútumban. Előfordulhat, hogy több különböző érték ugyanolyan gyakran szerepel a halmazban. Ekkor ezek az értékek is móduszok, és azt mondjuk, hogy a halmaz többmóduszú. Ha minden egyes érték csak egyszer szerepel, akkor nincs módusz. Az adathalmaz ferdesége meghatározza, hogy milyen jellegű kiugró értékeket tartalmaz az alacsony vagy a magas értéktartományokban. ( ) N (N 1)(N 2) x j x 3 (3.13) s ahol N az adathalmaz számossága, x a halmaz átlaga, s a mintavétel szórása. Vegyük például a fizetéseket. Az emberek többsége keveset vagy átlagosan keres. Vannak néhányan, akik feltűnően jól keresnek, és csak páran, akik viszont rengeteget. Abban az esetben,ha van egy adatbázisunk, az egy régióban lévő emberek fizetéseiről, akkor ez az adatsor jobb-ferde, mivel a kiugró értékcsúcsai (amikből kevés van) a magas fizetéseknél jelentkezik. Bal-ferde az az adatsor, aminek az alacsony vagy negatív értékvölgyeit reprezentálja kevés rekord. Amelyik adatsor kiegyenlített, annak a ferdesége 0. Ezek az értékek a CSÚCSOSSÁG, FERDESÉG Excel függvényekkel számíthatók. Egy rendezett attribútumú értékhalmaz k-adik percentilise az az x érték, amelyre teljesül, hogy az attribútum értékeinek k százaléka kisebb vagy egyenlő, mint az x érték. 118
127 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE Például, ha a 16. percentilis értéke 20, ez azt jelenti egy 100 számosságú értékhalmaznál, hogy a 100-ból 16 értékre igaz, hogy kisebb mint 20. Van három külön elnevezett percentilis, amit gyakran használnak az adatok megjelenítéseinél, ez a 25. percentilis, ami az első kvartils (Q1), az 50. percentilis, ami a medián (M) és a 75. percentilis, ami a harmadik kvartilis (Q3). Ez a felosztás megfelel a negyedelésnek, az elnevezéseket sajnos nem magyarok találták ki (talán így rövidebb is). A megfelelő kvartiliseket Q betűvel jelöljük, az alsó indexben pedig a kvartilis számát. Definiáljuk még a kvartilisek közötti távolságot (interkvartilis távolságot) is, ami a harmadik és az első kvartilis közötti különbséget adja: IQR = Q3 Q1. Ez tulajdonképpen a középső félre vonatkozó információ. Ne feledjük el, hogy mind a medián, mind a kvartilis egy konkrét érték az értékhalmazból, de a rajtuk végzett művelet eredménye nem feltétlen lesz benne az értékhalmazban. Továbbá ezeket a mérőszámokat érdemes kibővíteni a minimális és a maximális értékekkel (Min, Q1, M, Q3, Max), így egy olyan ötöst kapunk, mely jó információt ad az értékek eloszlásáról, annak középpontjáról, terjedelméről, alakjáról. Ha szélsőséges értékek eloszlását vizsgáljuk ezekkel a számokkal, akkor a Q1 és a Q3 helyett választhatunk kisebb és nagyobb értékeket is, ha az IQR-t kiszélesítjük a 1,5 szeresére. Utoljára maradt a kvantilis fogalmának a tisztázása. Nagyon hasonló a percentilishez, mindössze egy árnyalatnyi különbség van a két fogalom között. A kvantilis is ugyanolyan érték az attribútumból, mint a percentilis, csak a megközelítés fordított. Rendezzük itt is sorba az attribútumok értékeit 1-től N-ig, x i jelöljön egy közbelső értéket. A k-adik percentilis esetén k-val megadtuk azt a százalék értéket, amire kíváncsiak voltunk az adat értékhez. A kvantilis esetén minden egyes i-edik értékhez tartozik egy százalék, f (i), tehát a reprezentálás pont fordítva van, mint a percentilis esetén. f (i)-t 0 és 1 között adják meg, tehát úgy, ahogy a kvartilisnél és a percentilisnél. Elnevezésileg viszont nem az i-edik értéket adjuk meg, hanem a százalék értéket, tehát a 0,25 kvantilis az első kvartilisnek (Q1), a 0,5 a mediánnak és a 0,75 kvantilis a harmadik kvartilisnek (Q3) felel meg. Megjegyzendő, hogy mindkét reprezentációnál többnyire csak megközelítőleg lehet az x i -edik értéket kiválasztani, vagy a százalékot megadni Példa. Excel - Percentilis, Kvartilis A fenti fogalmak kiszámíthatóak Excelben is. Az Excel biztosít egy PERCENTI- LIS(tömb;százalék) függvényt, amivel egy tartomány konkrét percentilisát ki lehet számolni. Ha nincs konkrét érték az adott százalékértékhez, akkor közelítést végez a függvény és pontosan visszaadja az eredményt. A KVARTILIS(tömb;kvart) függvénnyel egy tartomány kvartilisei Q0-tól (minimum) Q4-ig (maximum) számíthatók ki, ugyanígy az ÁTLAG, MEDIÁN és MÓDUSZ függvények is elérhetőek. (További függvények: 119
128 3.4. FELTÁRÓ JELLEGŰ ADATELEMZÉS RÉSZÁTLAG, MÉRTANI.KÖZÉP, HARM.KÖZÉP, VAR, SZÓRÁS, RNÉGYZET, KOR- REL, KOVAR, PEARSON) Az Adatelemzés.. Rangsor és százalékos rangsor módszerével minden attribútum értékéhez kiszámítja a százalékot, vagyis a kvantilist, rangsorolja az elemeket úgy, hogy az ismétlődő értékek ugyanazzal a ranggal rendelkeznek, de a következő (különböző) érték rangja annyival lesz nagyobb, ahány azonos értéket számoltunk az előzőnél. A pont oszlopban az eredeti sorszámozást találhatjuk. Vizsgáljuk meg, hogy milyen ábrázolási technikák alapulnak ezeken a fogalmakon. Megvalósításokat és konkrét példákat a [18] cikkben is találunk Hisztogram A hisztogram az adatok gyakoriságáról, eloszlásáról ad információt. Megjelenítéséhez általában egyváltozós oszlopdiagramot használunk. Az adatértékeket diszjunkt partíciókra, intervallumokra bontjuk. Minden oszlop egy-egy partícióhoz tartozik. Az oszlop magassága az adott partíció számosságával vagy relatív gyakoriságával egyenlő. Fontos kérdés, hogy hogyan határozhatjuk meg az értékek felosztását. Használhatunk fix szélességű osztályokat, természetes határokat, mint például az [50-100) intervallum vagy megválaszthatjuk úgy az intervallum határokat, hogy nagyjából azonos oszlopmagasságokat kapjunk. A hisztogramok nagyszámú adatra jó reprezentálást nyújtanak, viszont kis számosságú adathalmazokra megtévesztő eredményeket adhatnak attól függően, hogyan választjuk meg a hisztogram típusát a fentiek alapján Példa. Hisztogram A 3.4. példában tárgyalt Discretize (unsupervised attribute) szűrő segítségével ezeket a funkciókat teljes mértékben meg tudjuk valósítani, és az eredményt azonnal láthatjuk a megszokott Preprocess fül jobb alsó sarkában, ahol a kiválasztott attribútum közelítő hisztogramját találjuk. Erre láthatunk egy példát a 3.6 ábrákon az MPG adatsor 3. ( c ) komponensére. Látható, hogy az osztályozási színezés is megjelenik a hisztogramon. Excelben hasonló eredményt érhetünk el a GYAKORISÁG függvénnyel, aminek az egyik bemenete a vizsgálandó értékek, a másik pedig a hisztogram csoportosító értékei, kategóriái. Mivel általában több kategóriánk van, a GYAKORISÁG eredményét érdemes több cellára kiterjeszteni úgy, hogy kijelöljük azon cellákat, ahová a függvény eredménye kerülhet (pl. a kategóriák mellett egy oszlopban), beírjuk a függvény értékét, 120
129 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE 3.6. ábra. MPG adatsor c komponense diszkrezizálás előtt majd Ctrl-Shift-Enter billentyűkombinációval kitöltjük a kijelölt területet a függvény értékével (a tartomány ekkor is ki van jelölve). Később ezt a területet csak együtt lehet törölni. A kapott eredményeket oszlopdiagrammal ábrázolva kaphatjuk meg a hisztogramot a kívánt kategóriákra Doboz diagram A doboz diagram egy olyan, oszlopdiagramhoz hasonló 2 dimenziós ábrázolását adja az adatoknak, amire jól használhatóak a szórás és az eloszlás érzékeltetéséhez. Az egyik tengely az attribútumokat ábrázolja, a másik az attribútumok értékeinek teljes tartományát. Az attribútumhoz tartozó értékek középső felét ábrázolja egy doboz diagrammal, aminek alsó vonala az első kvartilis, felső része a harmadik kvartilis értékénél van. E kettő között egy vízszintes vonallal a mediánt is ábrázolják. A doboz magassága az előzőleg kiszámított IQR-ral egyenlő. A dobozokon kívül, felül és alul a maximumot és a minimumot is ábrázolják egy vízszintes vonallal, amit szaggatott vonallal húznak össze a dobozokkal. Ha ez a min, max érték az IQR 1,5-szörösénél messzebb van a dobozoktól (a kvartilisektől), akkor nem ábrázolják ezeket az értékeket, mivel ezek kiugró értékek. Ekkor ezeket az értékeket külön jellel jelölik meg. 121
130 3.5. TÖBB VÁLTOZÓ EGYÜTTES MEGJELENÍTÉSE ÉS ELEMZÉSE 3.7. ábra. Kvantilis ábra az Iris adatsor PetalWidth attribútumára Kvantilis ábra A kvantilis ábra az adatok eloszlásáról ad egyszerű információt a bevezetett fogalmak alapján. Az egyik tengelye a kvantilis százaléka 0-tól 1-ig, a másik tengely pedig a vizsgált attribútum értéktartománya. Tehát a százalék függvényében ábrázolja az értékeket, minden értéket a hozzá tartozó százaléknál. A két kvartilist és a mediánt külön színnel jelölik meg megkülönböztetésül Példa. Excel - Kvantilis ábra Az IRIS adatsorra elvégeztük a Rangsor és százalékos rangsor Adatelemző módszert, és kiválasztottuk a PetalWidth attribútumot. Az így létrejött táblázatból az attribútum értékeit ábrázoltuk a percentilise (Százalék) függvényében, ami a 3.7 ábrán látható Több változó együttes megjelenítése és elemzése A sík koordináta-rendszerek segítségével meg tudtunk jeleníteni két esetleg három attribútum közötti kapcsolatot, egyes diagramokon összesített értékeket akár több változó esetén is. Nehézségekbe ütközünk akkor, ha a teljes adatsort szeretnénk megjeleníteni és minden rekordot láthatóvá tenni, amikre akár többdimenziós vektorokként is gondolhatunk. Az alábbiakban azokra a módszerekre nézünk néhány példát, amelyek egyszerre több attribútumérték megjelenítésével kívánnak átfogó képet nyújtani az adatok természetéről. 122
131 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE 3.8. ábra. Kvantilis-kvantilis ábra Kvantilis-kvantilis ábra A kvantilis-kvantilis ábrázoláshoz két olyan különböző attribútumra van szükség, amelyre kiszámoltuk a kvantilis értékeket. Ha a két attribútum számossága egyezik, akkor könnyen fel lehet rajzolni a diagramot a megfelelő százalék értékek összerendelésével. Ha a számosság nem egyezik meg, akkor a kisebb számosságú attribútumot vesszük figyelembe, és ehhez újra számoljuk a kvantilis értékeket a másik attribútumban, vagy megfelelő közelítést alkalmazunk. Az ábra átlója fontos szerepet tölt be, mivel az ettől való eltérésből következtethetünk a két változó eltérő jellegű eloszlására. Azaz, ha a két változó eloszlása megegyezik, akkor az ábra pontjai az átlón helyezkednek el. A 3.8 ábrán láthatunk egy kvantilis-kvantilis ábrát Pontdiagram mátrix Ha több mint három attribútum közötti összefüggéseket szeretnénk ábrázolni, akkor felrajzolhatjuk az összes lehetséges attribútum-párra a pontdiagramot. Ezzel egy ún. pontdiagram mátrixot (scatterplot mátrixot) kapunk (ld ábra). Természetesen a scatterplot mátrix nem igazán többdimenziós megoldás. Több, kétdimenziós diagramot tartalmaz, amikre a többváltozós tartalom le van vetítve, és egy-egy grafikon egyszerre csak két attribútumot hoz kapcsolatba egymással, elrejtve az esetleges több dimenzió között fellelhető kapcsolatokat Párhuzamos koordináták Nagy számosságú többdimenziós adathalmaz megjelenítésére egy alternatív megoldás, ha azonos távolságokra felállítunk minden attribútumhoz egy-egy érték tengelyt, és egy vékony, egyszínű tört vonallal követjük végig minden egyes tengelyen az adott adat attribútumainak megfelelő értékeit. Így lehetséges, hogy rengeteg adatot ábrázoljunk egy diagramon. Ezt párhuzamos koordináta megjelenítési technikának hívják. Mivel 123
132 3.5. TÖBB VÁLTOZÓ EGYÜTTES MEGJELENÍTÉSE ÉS ELEMZÉSE 3.9. ábra. WEKA scatterplot mátrixa az MPG adatsorra vékony vonalat használtunk, azt láthatjuk, hogy az átlapolódásoknál jobban érvényesül a kiválasztott szín. Ezen az ábrán jól látszik az értékek gyakorisága. A hasonló adatokhoz hasonló alakú vonalak tartoznak. A kereszteződő vonalak pedig negatív korrelációra utalnak. A fejlesztők szerint csoportosításra is használható ez a megjelenítés, mivel egy domináns vagy kiugró csoport alakja is leolvasható az ábráról. E technika kb. 20 dimenzióra korlátozza a megjeleníthető információt. A 3.10 ábrán láthatjuk az ily módon ábrázolt MPG adatsort Példa. Párhuzamos koordináták XMGV Tools programmal Egy ingyenesen használható eszköz az ilyen típusú ábrák megjelenítéséhez az XMGV Tools nevű program: A ábra is ezzel a programmal készült el. A sötéten satírozott területtel egyfajta szűkítését adhatjuk meg az adatsornak. Az ábra például az USA-ból származó közötti gyors autókra szűkíti az adatsort. Sok egyéb módszer is ismert a többdimenziós megjelenítés témakörében. Ilyen például a Chernoff ábra, ami figuratív emberi arcokat rajzol minden egyes rekordhoz, és a fejen lévő testrészek alakjaiban kódolja a rekord tulajdonságait, mint például szem mérete, alakja, száj, orr, fejforma, szemöldök. Minden egyes alak és forma az adat szórását, elhelyezkedését hivatott ábrázolni, így gyakran nagyon vicces arcokat is 124
133 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE ábra. MPG adatsor megjelenítése párhuzamos koordinátákkal kaphatunk. Hátránya a kevés dimenziószám, az arcokból nyerhető információ összetettsége, a részletes szemlélés hosszú ideje. Egy másik módszer a pálcika ábrák. Minden rekord egy pálcikának felel meg, ahol az első két változó az x és y tengelyre van levetítve, a többi változó a pálcikák hosszát és szögeit határozzák meg. Ezzel a módszerrel az adatok karakterisztikája elég jól ábrázolható, mivel az azonos alakú rekordok ugyanabba az irányba dőlnek, formájuk és méretük is hasonló. Ezekről a technikákról egy érdekes összehasonlítást találhatunk a [19] cikkben Adatredukció dimenzió-csökkentéssel Eddig olyan dimenzió csökkentési módszereket néztünk meg, amik a kiválogatáson alapultak. Felállítottunk egy mértéket, iteratív módszerrel megnéztünk rendre minden attribútumot, és kaptunk egy optimális attribútum részhalmazt, így mondjuk egy 100 attribútumot tartalmazó adathalmazból maradt 22 lényeges. Az előzőekben ismertetett eszközök közül azonban sajnos egyik sem használható eredményesen tíznél több változó együttes megjelenítésére. Így mit tehetünk? A következőkben az adatok redukcióját az attribútum redukálás vagy tömörítés segítségével próbáljuk megoldani. Nem egyszerű kiválasztásról (feature selection) van szó, hanem e technikákkal minden at- 125
134 3.6. ADATREDUKCIÓ DIMENZIÓ-CSÖKKENTÉSSEL tribútumot figyelembe véve új, kevesebb számú attribútumot hozunk létre, a könnyű megjelenítés érdekében többnyire kettőt vagy hármat. Ilyen technika a fejezetben tárgyalt főkomponens elemzés, a Sammon leképezés, illetve a 4.7. fejezetben ismertetett önszerveződő hálózatok. A főkomponens elemzés (principal component analysis - PCA) egy olyan módszer, amivel az adathalmazunk dimenzióját csökkenteni tudjuk, megtartva az adathalmaz karakterisztikáját és lényeges információtartalmát, hogy a benne rejlő mintákat észrevegyük és felismerjük. Az elemzést szokták még Karhunen-Loev- transzforámciónak (Kari Karhunen és Michel Loeve neve alapján) vagy Hotelling - transzformációnak (Harold Hotelling alapján) nevezni [20]. A dimenzió csökkentését új attribútumok előállításával érjük el, amelyeket a régi attribútumok lineáris kombinációjaként kaphatunk meg. Valójában tudatlanul is a PCAhoz hasonló eljárást végzünk el akkor, amikor egy fényképet nézegetünk, amin mondjuk a kedvenc háziállatunk van. A valóságban ő is a térben mozog, de a képen csak két dimenzióban látjuk, amikor a legszebb arcát mutatja felénk. A PCA is a leglényegesebb arcát keresi meg az adatoknak hogy ezzel az analógiával éljünk. A feladat formalizálva a következő: Legyen X egy n dimenziós véletlen oszlopvektorokat tartalmazó adatmátrix (N oszlop adja a rekordokat, és n sor adja az adatsor dimenzióját, tehát a megszokott adattárolás transzponáltja) (ld egyenlet), és feltételezzük, hogy változók várható értéke 0. A feladat, hogy találjunk egy olyan P n n ortonormális vetítési mátrixot, amire teljesül, hogy Y = P T X (3.14) ahol transzformált adatok Y kovariancia mátrixa diagonális mátrix, illetve a P vetítési mátrixra igaz, hogy az inverze egyenlő annak transzponáltjával, P 1 = P T és P oszlopvektorai egymással korrelálatlanok. A vetítési mátrixra gondolhatunk úgy, mint egy geometriai műveletre, ami eltolja és/vagy elforgatja az adatokat, és azt a síkot teszi láthatóvá, amelynek két tengelye mentén a legnagyobb a variancia. Ez a mátrix tartalmazza majd a főkomponenseket. A vetítés nem áll meg egy síknál, több tengely is létrejön tulajdonképpen az összes attribútumot újra generálja, de ezt majd később látni fogjuk. A gyakorlatban a főkomponenseket az adathalmazunk attribútumainak korrelációs mátrixából (C) számítják ki. A korrelációs mátrix kiszámítását megelőzően minden attribútumból ki kell vonni a saját átlagát, hogy teljesüljön a nulla várható érték feltétel az attribútumokra. Ezután határozzuk meg a korrelációs mátrix sajátértékeit és sajátvektorait, Cp = λp (3.15) amelyek a fenti sajátérték egyenlet megoldásai. A sajátvektor olyan vektor, 126
135 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE amellyel egy négyzetes mátrixot (n n) megszorozva önmaga skalárszorosát kapjuk. Ez a skalár a sajátérték. A sajátvektor kijelöl egy pontot az n dimenziós térben. Ha az origót és ezt a pontot összekötjük, egy irányvektort kapunk. Egy adott sajátvektor tulajdonságát az irányultsága határozza meg a hosszától függetlenül, így egy sajátvektort megszorozva egy konstanssal, ugyanazt a sajátvektort kapjuk. Hogy a vektoroknak azonos hosszuk legyen egységre normálják ezeket. Az Excel beépülő moduljaként használt MATRIX Tool MatEigenvector és MatEigenvalue szavakkal kezdődő függvényei például használhatók sajátértékek és sajátvektorok számítására. Miután kiszámítottuk a sajátértékeket (n db n dimenziós), rendezzük őket csökkenő sorrendbe. A legnagyobb sajátértékhez tartozó sajátvektor lesz az első főkomponens, a második sajátértékhez tartozó a második stb. Gyűjtsük össze az első k főkomponenst egy P mátrixba (n k) úgy, hogy oszloponként kerüljenek bele, 1 k n. A főkomponensek határozzák meg, hogy milyen tengelyekre vetítsük le az adatokat. Az esetek többségében az első néhány főkomponens (k) hordozza a lényeges információkat, így ha a többit el is hagyjuk, némi információt veszítünk, de pontosan ez volt a célunk, hogy kevesebb adattal jellemezzük ugyanazt az információt. Csak akkor lehetne biztonságosan eltávolítani egy-egy irányt, ha a szórása (itt:sajátértéke) közelít a 0-hoz az adott irányban. Végül hozzuk létre az új dimenzióba vetített adatvektorokat a kiválasztott főkomponensek segítségével. Ehhez a Y = P T X egyenletet hívjuk ismét segítségül, ami a feladatunk kiinduló egyenlete. A P mátrixot transzponálva (k n) a főkomponensek a sorokba kerülnek. A szorzást elvégezve egy hasonló felosztású adatmátrixot kapunk, mint a kiinduló adatmátrixunk volt, csak kevesebb (sor) dimenzióval. Ha nem használunk fel minden főkomponenst, akkor az így kapott közelítés hibáját (kumulatív sajtérték-százalék) megkaphatjuk a kiválasztott főkomponensekhez tartozó sajátértékek szummájaként: k λ i (3.16) i=1 Az előzőekben ismertetett folyamat pontokba szedve: Adott N darab n dimenziós adatvektorunk, amiket k dimenziós altérbe szeretnénk vetíteni. Szervezzük az adatokat oszlop vektorokba, így kapunk egy n N-es mátrixot, X-et. Minden dimenzióra számítsuk ki az empirikus várható értéket, így kapunk egy n 1-es empirikus várhatóérték vektort, m-et. Vonjuk ki az m-et X minden oszlopából. 127
136 3.6. ADATREDUKCIÓ DIMENZIÓ-CSÖKKENTÉSSEL Számítsuk ki X kovariancia mátrixát C-t: C = XX T. Számítsuk ki és rendezzük sorba a sajátvektorokat, V-ket a sajátértékek szerint csökkenő sorrendben. Mentsük el V első k oszlopát P-be (a főkomponensek), ennek n k dimenziója van, 1 k d. Egy oszlopban tárolt adatvektor vetített értéke: Y = P T X. Természetesen mindezeket a lépéseket nem kell minden egyes elemzés során egyénileg elvégezni, az adatbányászati programcsomagok automatikusan végrehajtják azokat. E lépések, illetve a matematikai háttér ismerete igazából az eredmények kritikus értékeléséhez szükségesek. A PCA tehát egy egyszerű lineáris leképezés, ami teljesen az adatok szórására támaszkodik. Néhány esetben az adatok szórása nem lényeges információ. Rosszabb esetben elképzelhető, hogy a lényeges attribútum teljesen el van rejtve, és csak az osztályozási feladat szempontjából speciális kivetítést alkalmazva (diszkrimináns elemzés) található meg egyáltalán. Ennek ellenére a PCA a gyakorlatban eredményesen használható a különböző területeken, mint például dimenzió csökkentés, tömörítés, mintafelismerés, képfeldolgozás Példa. Excel - PCA A Matrix Tool Excel Add-in segítségével az előzőleg vázolt PCA algoritmus minden lépését megvalósíthatjuk. Végezzük el az adatok normalizálását a MAtNormalization függvénnyel, majd számítsuk ki ennek a kovariancia mátrixát a MatCovar függvénnyel. A MatEigenvalue_QR függvénnyel megkaphatjuk a kovariancia mátrix sajátértékeit, amiket sorba rendezve megkapjuk a lényeges attribútumok sorrendjét is. A MatEigenvector_Jacobi-függvény adja a transzformációs mátrixot, aminek ha a transzportáltját (TRANSZPORTÁLÁS függvény) összeszorozzuk (M_PROD függvény) a normált adatsorral, megkapjuk a vetített adatsort Példa. WEKA - PCA A preprocess fülnél válasszuk ki a supervised attribute AttributeSelection filtert, vagy használjuk a Select Attributes fülnél lévő beállításokat. Előbbi esetén az adathalmaz új attribútumokat fog tartalmazni, utóbbi esetén csak az elemzés és a rangsorolás történik meg. Ahhoz, hogy a PCA-t használhassuk, a filter evaluator (vagy a 128
137 3. FEJEZET: ADATOK FELTÁRÓ JELLEGŰ ELEMZÉSE ÉS MEGJELENÍTÉSE Select Attributes fülnél az Attribute Evaluator) paraméternél kell beállítani a Principal- Components módszert. 129
138 3.6. ADATREDUKCIÓ DIMENZIÓ-CSÖKKENTÉSSEL 130
139 4. fejezet Csoportosítás (klaszterezés) 4.1. Motiváció Az általános értelemben vett csoportosítási feladatok szinte észrevétlenül is átszövik mindennapi életünket. Csoportosítást hajtunk végre például, amikor a zöldségesnél a kirakott gyümölcsök közül kiválogatjuk azokat, amelyet meg fogunk vásárolni, vagyis a gyümölcsöket megfelelő minőségű és kevésbé megfelelő minőségű csoportokra osztjuk a választék alapján. De hasonló partícionálást hajtunk végre mindennapi kommunikációnk, emberi kapcsolatrendszerünk kiépítése során is. Embertársainkat különböző csoportokra osztjuk saját megítélésünk alapján, s ennek eredményeképpen például a következő csoportokat hozhatjuk létre: barátok, szimpatikus személyek, számunkra közömbös személyek, illetve azon személyek csoportja, akik társaságát elkerüljük. A mindennapi csoportképzési automatizmusok során az egyes csoportok létrehozásánál a vizsgált objektumok (pl. gyümölcsök, személyek) meghatározott tulajdonságai alapján alkotjuk meg a partíciókat. Így a gyümölcsök válogatásánál figyelembe vesszük például a színüket, érettségi állapotukat, méretüket, vagy esetleg azt is, hogy honnan származnak. A személyek csoportosításánál a rendelkezésre álló információk mennyisége sokszor jóval bővebb, mint azt az előző példában láthattuk. Ezen információhalmazból csoportosításunkhoz figyelembe vehetjük a vizsgált személy öltözködési stílusát, műveltségét, életkorát, vagy például az érdeklődési körét. Talán az utóbbi példa alapján érezhetjük, hogy a csoportosítási feladatok nem minden esetben nevezhetők egyszerű feladatoknak, s ugyanazon objektumok csoportosítása gyakran vezet különböző csoportok kialakulásához. Így van ez a tudományos értelemben használt csoportképzési feladatok esetében is, de vizsgáljuk meg közelebbről a problémát. 131
140 4.1. MOTIVÁCIÓ A csoportképzésnek (klaszterezésnek 1 ) számos definíciója létezik. Ezen definíciók általában leíró jellegűek, s jellemzően nem matematikai formalizmuson alapulnak. Mivel a klaszterezés alkalmazási területe rendkívül széles, nehéz is lenne olyan átfogó formális definíciót adni, amely minden esetben helytálló lenne. Általánosan azt mondhatjuk, hogy a csoportosítás során egy véges objektumhalmaz elemeit olyan elkülönülő csoportokba soroljuk, ahol az azonos csoportba tartozó elemek hasonlóak egymáshoz, míg az eltérő csoportokba tartozó elemek nagy mértékben különböznek egymástól. A klaszterezés módszerét számos tudományág használja kutatásaiban. Így például gyakran alkalmaznak csoportképző eljárásokat a csillagászatban, az orvostudományban, a régészetben, a biológiában, az üzleti élet számos területén (pl. banki szféra, marketing) és az informatikában is. A csillagászatban csoportosítási algoritmusokat használnak például a csillagok csoportosítására. Celeux és Govaert [21] munkájuk során a csoportosítást a csillagok mozgása alapján végezték el, és a megfigyelt 2370 csillag adatai alapján három elkülönülő csoportot azonosítottak. Az orvostudomány területén számos esetben alkalmaznak klaszterező algoritmusokat. Ilyen eljárásokat használnak például a génkutatásban [22, 23], illetve a betegségek azonosításában és az orvosi diagnosztikában is [24]. A klaszterezés egyik első tudományos alkalmazása is az orvostudomány területéhez kötődik. Az 1854-es londoni kolera járvány kitörése kapcsán John Snow egy speciális térképet alkalmazott, ahol bejelölte a feltárt esetek helyét. Észrevette, hogy a betegség előfordulásainak nagy része a Broad Street kútjai köré csoportosul. A kutak vizsgálata kimutatta, hogy a belőlük nyert víz egy bizonyos baktériumot tartalmaz. Snow ezzel nem csak feltárta a kolera okát, hanem a probléma megoldásának kulcsára is rálelt. A pszichiátria területén is alkalmazzák a klaszter analízis kínálta lehetőségeket, például a depresszióban szenvedő páciensek endogén és neurotikus alcsoportjainak azonosításához. Pilowsky és társai [25] 200 beteg csoportosítását végezték el a betegek depresszióra vonatkozó kérdőívekre adott válaszai, mentális státuszuk, nemük, koruk és betegség időtartama alapján. A csoportképzés szívesen alkalmazott módszer az öngyilkosságra hajlamos páciensek vizsgálata során is, amely elemzési eredmények a kiváltó okok megismerésében és a kezelési módszerek továbbfejlesztésében nyújtanak hatékony segítséget [26]. A klaszterező eljárások régészetben történő alkalmazásra példa Mallory-Greenough és Greenough munkája [27], akik az ókori egyiptomi agyagedények kategorizálását végezték el nyomelemtartalmuk alapján. A vizsgálat eredményeképpen a fazekas termékek három jól elkülönülő csoportja vált megkülönböztethetővé. Az üzleti életben szintén gyakran használnak klaszterező algoritmusokat. Az üzletek a vásárlói szokások részletes feltérképezésére és a direkt marketing stratégiák kialakítására az ügyfeleiket csoportokba sorolják, s az egyes csoportokba sorolt ügyfelek igényeit személyre szabott szolgáltatásokkal kívánják kielégíteni. 1 A szakirodalomban a csoportosítás és a klaszterezés szinonim kifejezésként használatosak, s a továbbiakban mi is úgy fogjuk használni ezeket a fogalmakat. 132
141 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) Az informatika szintén számos területen alkalmazza a csoportképzés módszertanát. Klaszterező algoritmusokat alkalmaznak például a dokumentumok és egyéb információk keresése során [28, 29], képek szegmentálásakor [30], de a gépi tanulás és a döntéstámogatás sem nélkülözi ezen módszereket. A csoportosítás tehát az adatbányászat egyik legrégibb, leggyakrabban alkalmazott speciális adatelemző, összefüggésfeltáró módszere. A klaszterezés lehet egy önálló eszköz az tudásfeltárás folyamatában, melynek eredményeképpen pontosabb képet kaphatunk a vizsgált adatok eloszlásáról, jellemzőiről, de akár előkészítő funkciót is elláthat más adatelemzési módszer (pl. diszkriminancia analízis, osztályozás) alkalmazása során Csoportok (klaszterek) A csoportosítás feladata tehát a vizsgált objektumok jól elkülönülő csoportokba történő besorolása. Egy jó klaszterező algoritmus olyan csoportokat hoz létre, ahol az azonos csoportba tartozó objektumok egymáshoz viszonyított hasonlósága nagy mértékű, s a különböző csoportokba tartozó objektumok hasonlóságának mértéke alacsony. Mint látni fogjuk, a klaszterező algoritmusok rendkívül széles skálája ismert, s a kérdéskör még napjainkban is aktív kutatási területnek számít. A klaszterezés minősége függ a csoportosítandó adatok jellemzőitől, az alkalmazott algoritmustól és a hasonlóság számításához használt hasonlóságfüggvénytől. A klaszterezés sok szempontból hasonlóságot mutat az adatbányászat egyik másik módszerével, az osztályozással, azonban fontos, hogy különbséget tegyünk a két adatelemzési eljárás között. A csoportosítást szokás felügyelet nélküli tanulásnak, az osztályozást pedig felügyelt tanulásnak is nevezni. Míg a csoportosításnál az elemzés elsődleges célja jól elkülönülő csoportok kialakítása, addig az osztályozás esetében az ismert csoportok jellemző leírása a fő feladat. Csoportosítás esetében az egyes objektumokról az elemzés megkezdésekor nem ismert, hogy mely csoportokba fognak tartozni, továbbá gyakran az sem, hogy hány csoport fog majd belőlük kialakulni. Ezzel ellentétben osztályozás során az egyes objektumoknak az ún. osztálycímkéje ismert, vagyis az elemzést végző személy már az adatelemzés megkezdése előtt tudja, hogy az objektumok hány csoportba sorolhatók, s ismert az egyes objektumok csoportba tartozása is. Tulajdonképpen jellemző tulajdonságaik alapján a klaszterezés eredményeképpen létrejövő csoportokat is elláthatjuk címkékkel (nevekkel), de az így kialakuló kategóriákat jellemzően a rendelkezésre álló adatok határozzák meg, nem pedig egy korábbi ismeret. Jóllehet némely klaszterező algoritmus esetében az elemzést végző személy szintén felhasználhat bizonyos feltételezéseket (pl. az adatok eloszlására vonatkozóan), azonban ezen feltevések inkább az objektumhalmaz egészére jellemzőek, mintsem egy-egy objektumra külön-külön. 133
142 4.2. CSOPORTOK (KLASZTEREK) 4.1. ábra. Adatpontok térbeli ábrázolása Felmerül a kérdés, hogy mit tekinthetünk egy csoportnak? Mielőtt rátérnénk ezen kérdéskör vizsgálatára, nézzük meg, hogyan írhatjuk le matematikai formulákkal a csoportosítandó objektumainkat, s hogyan ábrázolhatjuk őket. A klaszterezés alapját a csoportosítandó objektumok képezik. Egy-egy ilyen objektumot szokás még adatmintának (mintának), illetve adatpontnak, s az objektumok egészét pedig mintahalmaznak hívni. A klaszterezés során egy-egy objektumot általában egy-egy tulajdonságvektorként adunk meg. Legyen X az objektumhalmaz, amely tartalmazza az N darab csoportosítandó objektumot. Ezek alapján X formálisan megadható a következőképpen: X = {x 1,x 2,...,x N }. Tegyük fel, hogy ezen objektumokat egyenként n darab tulajdonsággal (attribútummal) jellemezhetjük (előfordulhat az is, hogy az egyes tulajdonságok bizonyos objektumok esetében nem ismertek). Legyen x i X egy objektum. Ekkor x i megadható egy n-dimenziós sorvektorként a következőképpen: x i = [x i1,x i2,...,x in ]. Az objektumok ábrázolásának különféle válfajai terjedtek el. A leggyakrabban használt ábrázolási forma szerint az objektumokat (melyeket n tulajdonság jellemez) egy n-dimenziós térben, adatpontokként jelenítjük meg. A 4.1. ábra egy lehetséges példát mutat be a két tulajdonsággal jellemzett adatok 2-dimenziós térben történő ábrázolására. Ezen módszer hátránya, hogy csak alacsony dimenziójú (kevés tulajdonsággal jellemezhető) adatpontok ábrázolását teszi lehetővé. A magasabb dimenziójú adatpontok ábrázolását számos egyéb módszer hivatott megkönnyíteni (pl. a 2. fejezetben ismertetett főkomponens analízis, Sammon leképezés). Tekinthetjük a csoportosítást egy gráfpartícionálási feladatnak is, ahol a G = (V,E) súlyozott, irányítatlan, teljes gráfban az egyes csúcsok a csoportosítandó objektumokat jelölik. Az u,v V csúcsokat összekötő élen szereplő w(u,v) súly az objektumok ha- 134
143 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) k=0 k=1 k= ábra. Objektumok ábrázolása k-legközelebbi szomszéd gráfban a) b) c) 4.3. ábra. Különböző formájú csoportok sonlóságának vagy különbözőségének mértékét adja meg. A gráfban történő ábrázolás speciális esete az ún. k-legközelebbi szomszéd gráfon történő ábrázolási mód, amely az előzőekhez hasonló módon épül fel, azonban ez már nem egy teljes gráf, mivel csak azon éleket tároljuk, amelyek egyik pontja beletartozik a másik pont k legközelebbi szomszédja(i) közé. A 4.2. ábra az adatpontok k-legközelebbi szomszéd gráfban történő ábrázolására ad néhány lehetséges példát. Mi is tehát a klaszter? Formális definíciót adni erre a fogalomra rendkívül nehéz és felesleges vállalkozás lenne. Nem létezik egyetlen olyan kritérium, amely eldöntené, hogy a klaszterezés eredményeképpen kapott csoportok megfelelőek-e vagy sem. Következésképpen a felhasználónak kell eldöntenie, hogy az algoritmus által szolgáltatott eredmény megfelel-e az előzetes elvárásoknak, céloknak. Első közelítésben talán azt gondolhatnánk, hogy a jó klaszter meghatározható lenne csupán az adatpontok közti távolságnak és az adatpontok sűrűségének felhasználásával. Az adatpontok térbeli ábrázolása azonban különböző geometriai alakzatokat is feltárhat. A 4.3. ábra példái mutatják, hogy ezen alakzatok lehetnek gömb/ellipszis jellegűek (a), elnyújtottak vagy lineárisak (b), sőt lyukas vagy üreges jellegűek is (c). A 4.3. ábra (c) részábráján láthatjuk, hogy csupán az adatpontok közti távolságokat figyelembe vevő eljárás biztos nem egy ellipszist és egy téglalapot formázó adatcsoportra osztaná az ábrázolt pontokat. Az ilyen és hasonló esetekben az elemzők korlátozások formájában gyakran adnak meg a priori feltételezéseket a keresett klaszterekre vonatkozóan. 135
144 4.2. CSOPORTOK (KLASZTEREK) Ugyanazon az adathalmazon végrehajtott klaszterezések nem feltétlenül eredményezik ugyanazon csoportokat. A klaszterezés eredményét befolyásolhatja egyrészt a választott klaszterező algoritmus, másrészt a megadott kezdeti korlátozó feltételek, illetve amennyiben a csoportosítandó objektumokra vonatkozóan számos tulajdonság rendelkezésünkre áll, akkor az eredményt nagymértékben befolyásolhatja az is, hogy az algoritmus futtatása során ezen tulajdonságok közül melyeket vettük figyelembe. Gondoljunk csak a bevezető példánkra, miszerint az emberek kategorizálásakor bizonyára eltérő csoportokat kapunk eredményül akkor, ha a személyek életkorát és nemét vesszük figyelembe, illetve ha az iskolai végzettségük és jövedelmük képezi a csoportképzés alapját. A klaszterezés zavarba ejtő sokrétű változatossága a kialakítható klaszterek számában is megmutatkozik. Tegyük fel, hogy a csoportosítandó pontok száma N, s ezeket c klaszterbe kívánunk besorolni. A lehetséges csoportosítások számát a Stirling számok adják meg: S (c) N = 1 c ( ) c! ( 1) c i c i N (4.1) i i=0 Már egészen kevés objektum kisszámú csoportba történő besorolása is sok különböző lehetséges csoportot rejt magában (például 20 objektum 8 csoportba sorolása esetén lehetséges variációnk van), azonban ha a kialakítandó csoportok száma sem ismert, akkor a lehetséges partícionálások száma olyan sok, hogy azt már manuális módon szinte lehetetlenség is elvégezni. A tipikus adatbányászati klaszterezések esetében a csoportosítandó objektumok száma gyakran eléri a százezres, de akár a milliós nagyságrendet is, s nem ritka, hogy az egyes objektumokat jellemző és a csoportosítások során figyelembe veendő tulajdonságok száma tízes nagyságrendű. Érezhető, hogy ezen feladatok számítási költsége óriási, emberi munkaórában szinte ki sem fejezhető. Ezen feladatok megoldásában nyújthatnak számunkra hatékony segítséget a különböző klaszterező algoritmusok. A csoportosító algoritmusok rendkívül nagy változatosságot mutatnak a felhasznált adatábrázolási és hasonlóságszámítási módok, illetve a csoportképzés tekintetében. Felállíthatunk azonban néhány olyan fontos követelményt, amelyek segítségével algoritmusainkat jellemezhetjük. Algoritmusainktól elvárhatjuk például, hogy ne csak kis adathalmazon dolgozzanak hatékonyan, hanem képesek legyenek óriási (akár milliós nagyságrendű) adathalmaz hatékony, gyors partícionálására is (skálázhatóság). Az objektumokat jellemző tulajdonságok száma sokszor meghökkentően magas. Amennyiben ezen tulajdonságok közül sokat vagy akár mindet figyelembe kívánjuk venni a csoportosításhoz, akkor algoritmusainknak alkalmasnak kell lenniük arra is, hogy a csoportosítást nagy mennyiségű tulajdonság alapján is el tudják végezni (dimenzionalitás). Mint a fejezet korábbi részeiben is láthattuk, az egyes csoportok alakjai rendkívül el- 136
145 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) térőek lehetnek. Számos algoritmus csak bizonyos alakzatú csoportok feltárását teszi lehetővé (pl. gömb), ezért fontos a feladat jellegéhez szabott megfelelő algoritmus kiválasztása, illetve ellenőrzésképpen többféle algoritmus egyidejű futtatása (különböző alakú klaszterek felismerése). Algoritmusainknak alkalmasaknak kell lenniük továbbá arra is, hogy az objektumokra jellemző különböző típusú adatokkal (felsorolás, rendezett, intervallumskálázott, arányskálázott adatok) is képesek legyenek dolgozni (különböző adattípusok kezelése). A csoportosítást végző személy az algoritmusok futtatása során gyakran szeretne bizonyos feltételezésekkel élni, például az adatok eloszlására vonatkozóan, illetve a csoportosítási feladat is magába foglalhat korlátozó kritériumokat, amelyeket a klaszterezés során figyelembe kell venni. Fontos szempont, hogy ezen korlátozó feltételek az algoritmusok futása során érvényesíthetőek legyenek (korlátozások érvényesítése). Némely csoportosító algoritmus olyan bemenő paramétert is igényel a működéséhez (pl. kialakítandó csoportok száma), amelyet felhasználó csak megtippelni tud, valós, megalapozott sejtés nem áll ezen paraméter megadásának hátterében. A jó klaszterező algoritmus ilyen bemenő paraméterek igénye nélkül hajtja végre működését (minimális felhasználói behatás). Számos algoritmus érzékeny arra, hogy a számításaihoz milyen sorrendben veszi figyelembe az objektumokat. Egy jó klaszterező algoritmustól elvárjuk, hogy az objektumok sorrendje ne befolyásolja a csoportosítás eredményét (objektumok sorrendjétől való függetlenség). Mindazonáltal a feldolgozandó objektumhalmaz gyakran tartalmazhat adathibákat, hiányos adatokat, illetve a többi adatponttól nagy mértékben eltérő, de valós adatpontokat is. A klaszterező algoritmusainktól elvárjuk, hogy ezen felmerülő problémák ne befolyásolják a futási eredményeket (zajos adatok kezelése). Végezetül, de nem utolsó sorban, az sem mellékes tény, hogy a felhasználó számára a klaszterezés eredménye milyen formában áll rendelkezésre, milyen mértékben értelmezhető a kialakult eredmény, hogyan tudja majd azt felhasználni további tevékenysége folyamán (értelmezhetőség és felhasználhatóság). Láthatjuk tehát, hogy csoportosító algoritmusainknak számos követelményt kell kielégíteniük. Elmondhatjuk azonban sajnos, hogy nem létezik olyan algoritmus, amely általánosan, minden esetben jól használható lenne, vagyis az algoritmusok nagy része ezeket a követelményeket csak részben elégíti ki. Amellett, hogy a csoportosító algoritmusaink számos téren különböznek egymástól, a klaszterezés fő lépései mégis sok hasonlóságot mutatnak. Egy tipikus csoportosítási folyamat a következő fő lépésekre tagolható: 1. adatminta reprezentációja (opcionálisan tartalmazhatja a tulajdonságok kiválasztását, új tulajdonságok létrehozását, illetve az adatok átalakítását), 2. hasonlósági mértékek meghatározása, 3. csoportképzés, 4. adatabsztrakció (amennyiben szükséges), 137
146 4.2. CSOPORTOK (KLASZTEREK) 5. eredmények kiértékelése. Az adatminta reprezentációja magában foglalja az objektumok számosságát, a tulajdonságok típusát, értelmezési tartományát. Amennyiben a rendelkezésre álló tulajdonságok száma nagy, akkor közülük fontosságuk figyelembe vételével kiválaszthatjuk azokat, amelyeket algoritmusaink futásuk során figyelembe fognak venni (tulajdonságok kiválasztása), míg a többi tulajdonságot figyelmen kívül hagyják. Számos tulajdonság esetében az elemzést végző személy számára nem az attribútum konkrét értéke, hanem annak csupán a nagyságrendje, vagy a tulajdonság megléte, illetve hiánya fontos. Ebben az esetben az attribútumok értékeit átalakítjuk, konvertáljuk. Továbbá az eltérő mértékegységek használata aránytalansági problémákhoz vezethet az eredmények tekintetében, ilyenkor célszerű egységesíteni (azonos skálára képezni) a rendelkezésre álló értékeket (adatok átalakítása). Új tulajdonságok létrehozása esetében a meglévő attribútum értékekből új értékeket számítunk ki, s azokat használjuk a csoportosító algoritmusaink során. Az egyes adatpontok hasonlóságának meghatározása elengedhetetlen lépés a csoportképzés során. Ezen mennyiségi adatokat távolsági, illetve hasonlósági mértékek meghatározásával adjuk meg, melyekről részletesebben szólunk a 4.3 alfejezetben. A csoportképzés során meghatározzuk a keresett klasztereket. A csoportképzésnek számos válfaja létezik. A szigorú (kemény) algoritmusok eredményképpen az egyes objektumokat egy-egy jól meghatározható csoportba sorolják be, míg a fuzzy (lágy) algoritmusok az objektumoknak az egyes csoportokhoz való tartozásának valószínűségét adják eredményül. Az algoritmusokat szokás az alkalmazott módszer jellege szerint is csoportosítani. A hierarchikus algoritmusok a csoportoknak egy egymásba ágyazott sorozatát határozzák meg, ahol minden egyes szinten egy lehetséges csoportosítási eredményt találhatunk. A partícionáló algoritmusok az objektumokat elkülönülő csoportokra osztják, majd az adatminták ezen csoportok közti átsorolásával próbálják meg optimalizálni a klaszterezés eredményét. Az alkalmazott módszerek alapján beszélhetünk még például sűrűség alapú, modell alapú és rács alapú módszerekről is. Az adatabsztrakció kapcsán az előző lépésben létrejött adatcsoportok tömör, leíró jellegű meghatározására kerül sor. Ezen leírásokat a klaszterezés során felhasznált tulajdonságok segítségével adhatjuk meg, s végeredményképpen az egyes csoportokat osztálycímkékkel is elláthatjuk. Az eredmények kiértékelése, mint már említettük, nem egyszerű feladat, hiszen nem tudjuk pontosan meghatározni a jó klaszter definícióját sem. Az elemzést végző szakembernek kell a kapott eredményt összehasonlítania a korábbi elvárásokkal, esetlegesen meghatározni egy újabb partícionálási vagy részpartícionálási feladatot. Az eredmények validálásának számos módszere létezik, melyek jelenthetik például az a priori elvárásokkal való összehasonlítást. A csoportjósági indexek használata szintén gyakran alkalmazott módszer az eredmények értékeléséhez. 138
147 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) 4.3. Objektumok, hasonlósági mértékek Mint már említettük, egy objektumot konvencionálisan egy többdimenziós vektorként adhatunk meg, ahol az egyes dimenziók értékei az egyes tulajdonságok értékeinek feleltethetők meg. Ezen objektumokat leíró adatok azonban különböző jellegűek lehetnek. Gondoljunk csak arra, hogy míg az életkort folytonos értékekben adjuk meg, addig a szemszín attribútum értékei diszkrét értékek, melyek között sorrendiség nem állapítható meg. Legyen egy attribútum két értéke a, illetve a. Az objektumokat leíró változók típusaik szerint a következő négy kategóriába sorolhatók: Felsorolás típusú változók: Az ilyen típusú változók értékei diszkrét értékek, melyek között sorrendiség nem adható meg, csupán azt lehet eldönteni, hogy két érték megegyezik-e vagy sem. Tehát az a = a és az a a formulák egyértelműen eldönthetők, de az a < a formula már nem értelmezhető. A felsorolás típusú tulajdonságok speciális esete a bináris típusú változó, mely esetében a felvehető értékek száma pontosan kettő. Felsorolás típusú változó lehet a szemszín attribútum, míg bináris típusú adatnak számít például az, hogy valaki rendelkezike saját gépkocsival vagy sem. Rendezett típusú változók: Ebben az esetben a változók diszkrét értékei között sorrendiség állapítható meg. Az a = a és az a a formulák mellett az a < a és az a > a formulák is eldönthetők. Rendezett típusú adatnak felel meg például a felsőoktatásban dolgozó oktatók beosztása, mely a sorrendiséget is figyelembe véve következő értékeket veheti fel: tanársegéd, adjunktus, docens, tanár. Intervallumskálázott változók: Az intervallumskálázott változók értékein a rendezett típusú változókhoz hasonlóan értelmezhető egy rendezés, azonban ebben az esetben az attribútum két értéke közti különbség számokban is kifejezhető. A fentebb ismertetett formulák mellett tehát az a a formula is értelmezhető. Intervallumskálázott adatok bár tartalmazhatnak 0 értéket is, azonban ezen értéknek nincs kitüntetett szerepe. Az ilyen típusú adatok közé sorolhatjuk a Celsius fokban kifejezett hőmérséklet értékeket és például a dátumokat. Arányskálázott változók: Az arányskálázott értékek hasonlóak az intervallumskálázott adatokhoz, de ebben az esetében a két adatérték aránya is meghatározott jelentőséggel bír, továbbá a 0 értéknek is speciális jelentése van. Amennyiben az arányskálázott változó értéke 0, az a kifejezni kívánt tulajdonság hiányát jelenti. Ilyen típusú adat például a testmagasság értéke, ahol két érték aránya független a választott mértékegységtől. Az arányskálázott értékek közt gyakran nemlineáris összefüggés tárható fel, mint például a baktériumok szaporodása esetén, ahol a kapcsolat exponenciális jellegű. 139
148 4.3. OBJEKTUMOK, HASONLÓSÁGI MÉRTÉKEK Az előző csoportosítás alapját a méréshez választott skála típusa, annak beosztása határozta meg. Adattípusainkat azonban csoportosíthatjuk az értelmezési tartomány alapján is. Ezen csoportosítást figyelembe véve a következő két fő adattípust határozhatjuk meg: Folytonos adatok: Folytonos változóról abban az esetben beszélhetünk, ha az attribútum két tetszőleges értéke között végtelen sok különböző attribútum érték helyezkedik el. Ilyen adatnak minősül például a hőmérséklet vagy a testtömeg index (BMI) értéke. Kategorikus (diszkrét) adatok: Egy attribútum kategorikus, hogyha az értelmezési tartománya és a pozitív egész számok egy részhalmaza között megadható egy egyértelmű leképezés. Ilyen típusú adat például az emberek neme, illetve az év vagy a hét napjai. Miután áttekintettük az objektumokra jellemző tulajdonságtípusokat, nézzük meg, hogyan definiálhatjuk a teljes mintahalmazt! Legyen N a csoportosítandó objektumok száma, és x i X egy adatminta, ahol X a teljes mintahalmazt jelöli. Jellemezze az egyes adatmintákat n N, n 1 számú tulajdonság. A teljes mintahalmaz reprezentációja megadható egy N n típusú mátrixként, ahol x i = [x i1,x i2,...,x in ] egy objektumot jellemző sorvektor. A mátrix sorai tehát az egyes objektumokat (adatmintákat) jelölik, az oszlopokban pedig az objektumokra jellemző tulajdonságok foglalnak helyet. Ezek alapján tehát az X = {x i i = 1,2,...,N} mintahalmaz a következőképpen adható meg: x 11 x 12 x 1n x 21 x 22 x 2n X = x N1 x N2 x Nn (4.2) A fent látható mátrixot szokásos módon adatmátrixnak hívjuk, de a szakirodalomban találkozhatunk még a mintamátrix és mintahalmaz-mátrix elnevezésekkel is. Számos csoportosítást végző algoritmus (pl. hierarchikus algoritmusok) azonban nem az előbbiekben bemutatott adatmátrixot használja számításai során, hanem az ún. különbözőségi mátrixot. Ezen mátrixot szokás még távolságmátrix névvel is illetni. A különbözőségi mátrix esetében nem az egyes objektumokra jellemző abszolút értékeket tároljuk, hanem az egyes adatpontok egymáshoz való viszonyára jellemző relatív értékeket. Ezek a relatív értékek, mint ahogy a mátrix elnevezése is sugallja, az adatpontok különbözőségét adják meg. Legyen x i,x j X egy-egy csoportosítandó objektum. Jelölje d(i, j) az i és j objektumok közti különbséget (távolságot), valamint legyen a csoportosítandó objektumok száma N N. Ekkor a különbözőségi mátrix egy 140
149 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) N N - es négyzetes mátrixszal adható meg a következőképpen: 0 d(2, 1) 0 D = d(3, 1) d(3, 2) d(n,1) d(n,2) d(n,n 1) 0 (4.3) Látható, hogy a D mátrix felépítéséből fakadóan szimmetrikus mátrix, ahol a mátrix főátlójában 0 értékek találhatók, hiszen bármely objektum önmagához viszonyított távolsága 0. A D mátrix szimmetriája és a 0 diagonális értékek abból fakadnak, hogy az objektumok különbözőségének kiszámításához általában távolságfüggvényt, vagyis metrikát 2 használunk. Legyenek x,y és z objektumok. Ekkor a távolságfüggvényre jellemzőek a következő tulajdonságok: d(x,y) 0, vagyis a távolságértékek pozitívak, (4.4) d(x,x) = 0, vagyis az adatpont önmagától mért távolsága 0, (4.5) d(x,y) = d(y,x), vagyis a távolságfüggvény szimmetrikus, (4.6) d(x, y) d(x, z) + d(z, y), vagyis igaz a háromszög-egyenlőtlenség. (4.7) Némely algoritmus működése során nem az objektumok közti különbözőséget, hanem az egyes objektumok hasonlóságát veszi alapul. Ebben az esetben az objektumok különbözősége helyett az adatpontok egymáshoz viszonyított relatív hasonlóságát tároljuk, amely a fent ismertetett különbözőségi mátrixhoz hasonló felépítésű hasonlósági mátrixban történik. Ekkor a mátrix átlójában általában 1-es értékeket találhatunk (hiszen egy adatpont önmagához teljes mértékben hasonló), s minél kisebb a hasonlóság számokban kifejezett mértéke, annál különbözőbb objektumokról van szó. De hogyan számíthatjuk ki az egyes adatpontok közti hasonlóságot, különbözőséget? A csoport intuitív definíciója a csoportelemek hasonlóságán és az egyes csoportok különbözőségén alapul. Ezért számításainkhoz használhatunk hasonlósági mértékeket, illetve ezen mértékek inverzét, vagyis különbözőségi (távolság) mértékeket is. Láthattuk, hogy az adatpontokra jellemző tulajdonságokat különböző típusú attribútumváltozók tárolhatják. Ebből fakadóan a különbözőség/hasonlóság kiszámítása a változók típusától függően más és más elvek alapján történik. Más módszert alkalmazunk például akkor, ha kategorikus adatok különbözőségét/hasonlóságát kell kiszámítanunk, s más formulákat használunk akkor, ha folytonos értékek különbözőségét/hasonlóságát keressük. A következőkben tekintsük át fő vonalaiban a folytonos, valamint a kategorikus adatok közt értelmezett különbözőségi és hasonlósági mértékeket! 2 Megj: Amennyiben a különbözőség számításához nem metrikát használunk, akkor a mátrix felépítése sem lesz szimmetrikus, illetve a főátló sem kizárólag 0 értékeket fog tartalmazni. 141
150 4.3. OBJEKTUMOK, HASONLÓSÁGI MÉRTÉKEK Folytonos értékek különbözősége, hasonlósága Amennyiben a tárolt értékek folytonosak, akkor ezen értékek közelségét leggyakrabban különbözőségi mértékek, távolságok segítségével szokás megadni. A távolságot értelmezhetjük úgy, mint az objektumokat leíró n-dimenziós adatvektorok távolságát egy n-dimenziós tulajdonságtérben. A használt távolságmérték általában metrika, amely kielégíti a formulákat. A leggyakrabban használt ilyen metrika az Euklideszi távolság. Legyenek x i és x j adatpontok, melyeket n számú folytonos tulajdonság jellemez. Ekkor a két objektum Euklideszi távolsága a következőképpen határozható meg: d 2 (x i,x j ) = ( n k=1 ( xik x jk ) 2 ) 1/2 = x i x j 2 (4.8) Egy-egy távolságmérték azonban nem biztosít minden esetben optimális megoldást az objektumok távolságának kiszámításához. Az Euklideszi távolság gyakran alkalmazott távolságmérték, ha a folytonos tulajdonságokkal jellemezhető objektumok 2- vagy 3-dimenziós tulajdonságtérben ábrázolhatók, továbbá jól használható abban az esetben is, ha a mintahalmaz tömör, egymástól jól elkülönülő klaszterekre bontható. Az Euklideszi távolság tulajdonképpen a Minkowski távolság egy speciális esete (p = 2). A Minkowski távolságot a 4.9 képlet definiálja. d p (x i,x j ) = ( n k=1 ( xik x jk ) p ) 1/p = x i x j p (4.9) A távolságok számítása során szokásos még a Manhattan távolság használata is, amely ugyancsak a Minkowski távolság egy speciális esete, méghozzá a p = 1 esetén. Amikor p értéke a végtelenbe tart, akkor a megegyező indexű elemek távolságai közül választjuk a legnagyobbat, azaz a Chebyshev távolságot kapjuk. A Minkowski távolságok használatának hátránya abban az esetben mutatkozik meg, ha némely folytonos értékű tulajdonság nagyobb skálán mozog, mint a többi tulajdonság. Ekkor ezen előbbi tulajdonságok dominánsabb szerepet játszhatnak a távolságértékek számításában, ezért a 4.9 képlet alkalmazása előtt célszerű az egyes attribútumokat egységesíteni, vagyis azonos intervallumskálára (tipikusan [0, 1], vagy [0, 100]) képezni őket, vagy különböző súlyozási mutatókat bevezetni. Az egyes attribútum értékek között fennálló lineáris kombináció szintén torzíthatja a távolsági mértékeket. A problémára a négyzetes Mahalanobis távolság adhat egy lehetséges megoldást: d M (x i,x j ) = (x i x j )C 1 (x i x j ) T (4.10) ahol x i és x j egy-egy sorvektorként megadott adatminta, C a mintahalmaz kovariancia mátrixa. A d M (x i,x j ) az egyes tulajdonságokhoz a tulajdonságok szórásnégyzete és a páronkénti lineáris kombinációja alapján különböző súlyokat rendel. 142
151 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) Az x i és x j n-dimenziós adatvektorok távolságának kiszámítására gyakran a φ i j korrelációs együttható alapján történő számítási módot javasolják. A Pearson korrelációs együttható egy lehetséges példája annak, ha két objektum különbözőségi mértékét a korrelációs együttható alapján határozzuk meg. A Pearson korrelációs együttható alapján két n-dimenziós objektum (x i és x j ) különbözőségi mértéke (δ i j ) a következőképpen határozható meg: δ i j = 1 φ i j 2 ahol φ i j a korrelációs együttható, amely a következőképpen határozható meg: φ i j = ( n n (x ik x i ) ( ) x jk x j k=1 (x ik x i ) 2 n k=1 k=1 (4.11) ( x jk x j ) 2 ) 1/2 (4.12) A formulában szereplő x i az i. objektum összes változójára számított átlagos érték, amely a következőképpen adódik: x i = 1 n n k=1 x ik (4.13) Az x j kifejezés analóg értelmezhető. Mivel a φ i j korrelációs együttható értéke [ 1,1] intervallumba esik, ezért értékét a 4.11 formula alapján át kell konvertálni a [0,1] intervallumra. Mint már utaltunk rá, az alkalmazott távolságmérték nem feltétlenül metrika. Így például nem számít metrikának a Gowda és Krishna [31] által javasolt kölcsönös szomszédsági távolság (mutual neighbor distance, MND) sem. Ezen távolságszámítás esetében két adatminta távolságértékének számításakor nem csak a két adatpont távolsága, hanem az adatpontok környezete is meghatározó szereppel bír. A kölcsönös szomszédsági távolság értéke a következőképpen adható meg: MND(x i,x j ) = NN(x i,x j ) + NN(x j,x i ) (4.14) ahol x i és x j egy-egy objektum, az NN(x i,x j ) egy egész számot jelöl, amely megadja, hogy x j -nek x i hányadik legközelebbi szomszédja. A fent definiált MND nem metrika, mivel nem igaz rá a háromszög-egyenlőtlenség Kategorikus adatok különbözősége, hasonlósága Kategorikus tulajdonságokkal jellemezhető objektumok csoportosítása esetén az objektumok különbözősége helyett elsősorban az objektumok hasonlósági mértékének 143
152 4.3. OBJEKTUMOK, HASONLÓSÁGI MÉRTÉKEK számítása használatos. A hasonlóság mértékét általában [0, 1] intervallumba eső számmal adjuk meg. Amennyiben két különböző objektum hasonlósági értéke 0, az azt jelzi, hogy a két objektum a vizsgált tulajdonságok mindegyikén maximális mértékben különbözik egymástól. A vizsgált két objektum különbözősége a hasonlóság mértéke alapján könnyen kifejezhető. Jelölje s i j az i és j objektumok hasonlóságát, amely érték a [0,1] intervallumba esik. Ekkor i és j objektumok különbözősége a követezőképpen adódik: d i j = 1 s i j (4.15) A szakirodalomban számos hasonlóság számítási módszert találhatunk arra az setre, ha a vizsgált objektumokat leíró tulajdonságok mindegyike bináris jellegű. A hasonlósági mérték kiszámításában segítségünkre lehet a 4.1-es kontingenciatáblázat, amely a vizsgált két objektum azonos és különböző tulajdonságainak számosságát foglalja össze. x i 1 0 Összesen 1 a b a + b x j 0 c d c + d Összesen a + c b + d p = a + b + c + d 4.1. táblázat. x i és x j objektumok kontingenciatáblázata A 4.1-es táblázatban x i és x j egy-egy objektum, amelyek p darab bináris tulajdonsággal jellemezhetőek. A bináris értékeknek jelen esetben a 0 és 1 értékeket feleltettük meg. A fenti táblázatban b jelöli azon bináris tulajdonságok számát, amelyek estében az x i objektum 0 értékeket vesz fel, az x j objektum pedig 1-et. Analóg értelmezhető a, c és d paraméterek értéke is. Amennyiben feltételezzük, hogy a bináris változók szimmetrikusak azaz egyik érték sem bír kitüntetett szereppel, akkor x i és x j objektumok hasonlósága az egyezőségi együttható segítségével a következőképpen fejezhető ki: s i j = a + d a + b + c + d (4.16) A mindennapi gyakorlatban azonban gyakran adódik, hogy a bináris változó egyik értéke kitüntetett szereppel bír. Ilyen eset áll fenn például a betegségek vizsgálatakor, amikor egy diagnózis pozitív volta kiemelt jelentőségű a vizsgálat szempontjából. Az ilyen bináris változókat aszimmetrikus bináris változóknak nevezzük. Aszimmetrikus bináris változók esetében konvencionálisan a kiemelt fontosságú értéket jelöljük 1-es értékkel. Az aszimmetrikus bináris változókat tartalmazó objektumok hasonlósága például a Jackard együtthatóval adható meg: a s i j = (4.17) a + b + c 144
153 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) A bináris változókkal jellemzett objektumok hasonlóságának számításában a különbözőségek leginkább a d együttható figyelembe vételében mutatkoznak meg. Amennyiben ugyanis a 0 érték valamely tulajdonság hiányát jelöli, akkor felmerül a kérdés, hogy vajon ezen együttható hasznos információt hordoz-e két objektum hasonlóságára vonatkozóan. A Jackard együtthatóhoz hasonlóan több más számítási módszer (pl. Gower és Legendre [32]) is figyelmen kívül hagyja a hasonlóság számításakor a d értéket. Ezen számítási módszerek mellett a bináris változók hasonlósági értékeinek számításához használatosak még továbbá a Russel-Rao, Rogers-Tanimoto számok, melyek figyelembe veszik a 0 értékek egyezőségét, valamint például a Sorenson, Edmonston, Kulczinsky számok, melyek figyelmen kívül hagyják a 0-0 egyezőségeket. A bináris tulajdonságok egymáshoz viszonyított eltérését darabszámban méri a Hamming szám. A felsorolás típusú változók hasonlósági mértékének számítási módja szintén különféleképpen történhet. Az egyik lehetséges megközelítési mód szerint a felsorolás típusú változónak feleltessünk meg bináris változókat, s végezzük el a számítást a bináris változóknál megadott módon. Ezen megközelítés szerint amennyiben egy felsorolás típusú változó k darab különböző értéket vehet fel, akkor ennek a változónak feleltessünk meg k darab bináris változót, s a változók értéke azon bináris változó esetében legyen 1, amely a felvett értékhez van hozzárendelve, a többi bináris változó értéke pedig legyen 0. Ezen számítási módszer rendkívül egyszerű, azonban ügyelve arra, hogy két objektum hasonlóságának vizsgálatakor a 0-0 értékek nagy számú egyezősége ne jusson kiemelt szerephez, érdemes aszimmetrikus bináris változókként kezelni őket. Egy másik, szintén egyszerű megközelítés a felsorolás típusú adatok egyezőségének számítására az egyszerű egyezőség elve alapján történő számítás, amely csupán az egyező együtthatók arányát adja meg a következőképpen: s i j = m p (4.18) ahol m azon felsorolás típusú attribútumok száma, ahol az x i és x j objektumok azonos értékeket vesznek fel, p pedig az összes tartalmazott felsorolás típusú attribútumok számát jelöli. Rendezett típusú változók esetében az egyes attribútum értékeknek sorrendben az 1,2,...,M f értékeket feleltetjük meg, ahol a felsorolt természetes számok sorrendi szerepe is jelentőséggel bír. A fenti jelölésben f egy rendezett típusú attribútum, és M f az f -en felvehető értékek számát jelöli. Ellensúlyozandó, hogy bizonyos rendezett típusú változók több értéket vehetnek fel, mint más hasonló változók, célszerű a fent megfeleltetett értékeket normalizálni. A normalizálás során az x i objektum f változójának megfeleltetett r i f 1,2,...,M f értékét cseréljük le a normalizált z i f értékre, amely, kö- 145
154 4.3. OBJEKTUMOK, HASONLÓSÁGI MÉRTÉKEK vetkező módon számítható: z i f = r i f 1 M f 1 (4.19) A normalizált z i f értéke a [0,1] intervallumba esik. Ezen átalakítás után a rendezett típusú változók hasonlóságát a folytonos változóknál leírt hasonlóságmértékek használatával határozhatjuk meg Vegyes típusú változó különbözősége, hasonlósága, és az attribútumok súlyozása A csoportosítás alanyait képező objektumokat jellemző tulajdonságok általában nem azonos típusúak, s gyakran előfordul, hogy egy-egy objektum jellemzésére a fent felsorolt tulajdonságok típusainak mindegyikét felhasználjuk. Vagyis az objektumok hasonlóságának/különbözőségének számítását vegyes típusú attribútum változókon kell elvégeznünk. Ekkor, az objektumok hasonlóságának/különbözőségének számításakor a fejezet korábbi részeiben megadott hasonlósági és különbözőségi mértékek kombinációját kell alkalmazni. A számításhoz célszerű egy különbözőségi mátrixot meghatározni, amely az egyes különbözőségi mértékeket tartalmazza a [0, 1] intervallumra levetítve. Megjegyezzük, hogy a különbözőségi mátrix meghatározásakor a korábban hasonlósági mértékekben meghatározott adatokat is különbözőségi mértékekre kell átszámítani. A vegyes típusú tulajdonságokkal jellemzett objektumok hasonlóságának számítására Gower [33] egy másik módszert javasol. Javaslata szerint a kiszámított hasonlósági értékeket súlyozza, majd ezen súlyozott összeget a súlyok összegével osztja el. Az általa javasolt képletben a kategorikus adatok esetében ezen hasonlósági értékek 0 és 1 értékeket vehetnek fel annak megfelelően, hogy a vizsgált tulajdonság értéke a két objektum esetében megegyezik-e vagy sem. Folytonos adatok esetében a hasonlóság mértéke a két érték különbözőségéből és a tulajdonság értékkészletének hányadosából adódik. Az említett számítási módszerek mellett a szakirodalomban számos egyéb számítási eljárást is olvashatunk a vegyes tulajdonságokkal jellemzett objektumok hasonlóságának/különbözőségének kiszámítási módjára vonatkozóan. A eddig említett hasonlósági és különbözőségi mértékek számítási módszereinek mindegyike kiegészíthető az egyes attribútumok súlyozásával is. Tulajdonképpen amennyiben a rendelkezésre álló tulajdonságok közül csupán néhányat használunk fel a csoportképzési eljárásunk során, már akkor is egy súlyozást hajtunk végre oly módon, hogy a felhasznált tulajdonságokat 1-es, a kizárt attribútumokat pedig 0 súlyokkal szerepeltetjük. A változók súlyozásának ez egy gyakran használt, szubjektív módja. A problémakör másik fő megközelítési irányzata a súlyok megállapítását objektív alapokra helyezi, s az adatmátrixot használja a változókhoz rendelt súlyok kiszámításához. Ezen módszerek esetében a súlyok gyakran fordítottan arányosak a változók szórásával. 146
155 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) Mindkét módszernek megvannak a hátrányai, hiszen a szubjektív döntés gyakran megalapozatlan, illetve egy felhasználói sejtésen alapul, s mindezidáig nem ismeretes olyan objektív súlyozási módszer sem, amely minden esetben helytálló lenne Csoportokra jellemző távolságok Mindamellett, hogy a csoportosításhoz szükséges az egyes objektumok hasonlóságának megállapítása, az eredmények kiértékeléséhez, illetve a csoportok kialakításához gyakran meg kell határozni a csoportok egészére jellemző távolságmértékeket is. Az adatpontok csoportokon belüli közelségének meghatározására számos módszer létezik. A két legelterjedtebb távolsági mérték szerint a csoport kiterjedését az elemek közti átlagos távolság (4.20), illetve az elemek közti maximális távolság (4.21) megadásával jellemezhetjük. d (p,q) p C i q C i D avg (C i ) = C i 2 (4.20) D max (C i ) = max p,q Ci d (p,q) (4.21) A fenti formulákban C i jelöli azt a klasztert, amelynek a méretére jellemző számszerű adatot meg kívánjuk határozni. A d(p, q) egy tetszőlegesen választott távolságfüggvény a p és q objektumokon értelmezve. A csoporton belüli távolságok számítása mellett hasznos lehet az egyes csoportok közti távolságok kiszámítása is. Erre szintén számos módszer létezik, melyek közül csak néhányat emelünk ki. A csoportok közti maximális, minimális, átlagos távolság az adatpontpárok távolságán alapul. A csoportok közti minimális távolság esetében a két csoport legközelebbi adatpontjainak távolsága határozza meg a csoportok távolságát: D min (C i,c j ) = min p Ci,q C j d (p,q) (4.22) ahol C i és C j azon két klasztert jelöli, melyek távolságát meg kívánjuk határozni. A csoportok közti maximális távolság a fentiek alapján analóg adódik: D max (C i,c j ) = max p Ci,q C j d (p,q) (4.23) Amennyiben a csoportok közti átlagos távolság értékét szeretnénk meghatározni, akkor ehhez a külön csoportba tartozó objektumok összes egymáshoz viszonyított távolságát kell figyelembe vennünk: D avg (C i,c j ) = p C i d (p,q) q C j C i C j (4.24) A klaszterek egymáshoz viszonyított távolságának meghatározására az említett számítási módszerek mellett számos egyéb módszer is ismert, így például a csoportok 147
156 4.4. HIERARCHIKUS MÓDSZEREK középpontjainak távolsága is adhatja a csoportok távolságának mértékét. Miután áttekintettük a csoportosítás alapfogalmait, az objektumok közti hasonlóságok/távolságok és a csoportokon belüli, illetve csoportok közti hasonlóságok/távolságok kiszámításának leggyakrabban használt módszereit, térjünk át a csoportosító algoritmusok részletesebb tárgyalására Hierarchikus módszerek A csoportosítási módszerek egyik fő irányzatát a hierarchikus csoportosító módszerek alkotják. A hierarchikus módszerek a vizsgált objektumoknak nem csupán egy, hanem több lehetséges csoportosítását is eredményül adják. Itt azonban nem arra kell gondolnunk, hogy amennyiben például 100 objektumot szeretnénk csoportosítani, akkor egy hierarchikus klaszterező módszert alkalmazva több olyan alternatív csoportosítást is kaphatunk eredményképpen, melyek például öt csoportra osztják objektumainkat. A hierarchikus csoportosító módszerek a lehetséges csoportosítások egymásba ágyazott sorozatát adják eredményül, ahol minden egyes lépésnél az eredményül kapott csoportok száma változik. A hierarchikus klaszterező algoritmusoknak két fő csoportja létezik. A csoportok egymásba ágyazásának sorrendje szerint beszélhetünk egyesítő (agglomeratív), illetve felosztó (divizív) hierarchikus csoportosítási módszerekről. Egyesítő hierarchikus csoportosítás esetében az algoritmus kezdetben minden objektumot egy-egy különálló klaszterbe helyez el, majd lépésről-lépésre egyesíti az egymáshoz legközelebb álló két klasztert (de minden lépésben csak egy klaszteregyesítő lépést hajt végre). Az algoritmus futásának legvégén minden elem ugyanazon csoportba fog tartozni. Egyesítő módszerek esetében tehát a kialakított csoportok száma N objektum esetében lépésrőllépésre a következőképpen alakul: Az 1. lépésben adott N csoport, a 2. lépésben már csak N 1 csoportunk van, az utolsó előtti lépésben 2 csoportot határoz meg a rendszer, majd az utolsó lépésben az objektumok már 1 csoportot alkotnak. Az egyesítő hierarchikus módszerek általános lépései a következőképpen összegezhetők: 1. Helyezzünk el minden adatmintát egy-egy önálló csoportba. 2. Válasszuk ki a két legközelebbi csoportot, majd hozzunk létre belőlük egy új csoportot oly módon, hogy az újonnan létrehozott csoport a kiválasztott csoportok minden elemét tartalmazza. 3. Amennyiben a csoportok száma nem 1, akkor ismételten hajtsuk végre a 2. lépést. 148
157 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) Felosztó hierarchikus csoportosítás esetében a lehetséges csoportosítások egymásba ágyazásának sorrendje fordított. Kezdetben minden objektum egyetlen egy klaszterben foglal helyet, majd az algoritmus minden egyes lépésben valamely klasztert két, kisebb klaszterre bontja. Az algoritmus futásának legvégén minden objektum külön csoportban fog elhelyezkedni. A felosztó hierarchikus csoportosító módszerek működése során tehát a kialakuló klaszterek száma N csoportosítandó objektum esetében a következőképpen alakul: Az 1. lépésben 1 csoportunk van, a 2. lépésben már 2 csoportot határoz meg az algoritmus, az N 1. lépésben már N 1 csoport áll a rendelkezésünkre, végül az N. lépésben N csoport jön létre. A felosztó hierarchikus módszerek általános lépései a következők: 1. Helyezzük el az összes adatmintát egyetlen egy csoportba. 2. Válasszunk ki az előző lépésben létrehozott csoportok közül egyet, majd bontsuk ezen csoportot két részre oly módon, hogy a felosztandó klaszter minden egyes eleme az egyik, illetve a másik újonnan létrehozandó csoportba kerüljön. 3. Amennyiben a csoportok száma nem egyezik meg a csoportosítandó objektumok számával, akkor ismételten hajtsuk végre a 2. lépést. Láthatjuk tehát, hogy az egyesítő és felosztó hierarchikus módszerek gyakorlatilag egymás ellentettjei. A működési elvből fakadóan az egyesítő módszert szokás bottomup (alulról-felfelé), a felosztó módszert pedig top-down (felülről-lefelé) jelzővel is illetni. A két módszer hasonlóságát és különbözőségét a 4.4. ábra foglalja össze, amely 6 objektum (a,b,c,d,e,f) hierarchikus csoportosítását mutatja be a fent nevezett két módon. A hierarchikus módszerek egyesítő, illetve felosztó lépéseit szokásos módon egy 2-dimenziós diagramon, az ún. dendrogramon ábrázoljuk. A dendrogram csomópontjai egy-egy klaszternek feleltethetők meg, az őket összekötő élek hossza pedig az egyesített/szétbontott csoportok távolságát jelöli. Ezen távolságokat a dendrogram mellett egy skálán is megadhatjuk. Az élek kiinduló pontjában (leveleken) feltüntetjük az objektumokat, mely jelöléseket címkéknek szokás nevezni. A címkéket általában a távolsági skála 0 pontjában elhelyezzük el, azonban ez nem egy feltétlen kielégítendő követelmény a dendrogramon történő ábrázolás során. A dendrogram belső csomópontjaiban a csoportokat általában nem látjuk el címkékkel. Bizonyos módszerek esetében (centroid és medián) előfordulhat, hogy az egyesítendő klaszterek távolsága a lépések sorrendjében nem mutat monoton növekvő számsorozatot. Ezekben a speciális esetekben a dendrogram tartalmazhat kereszteződéseket, illetve a távolsági skála beosztása lehet nem monoton is. Azokat a dendrogramokat, melyek nem tartalmaznak az élek hosszára vonatkozó információt azaz nem tartozik hozzájuk távolsági skála, súlyozatlan dendrogramnak nevezzük. A dendogram szerkezetét egy példán keresztül bemutatva a 4.5-ös ábrán tekinthetjük meg. 149
158 4.4. HIERARCHIKUS MÓDSZEREK 1 egyesít módszer lépések száma a b a,b a,b,c,d,e c d e d,e c,d,e a,b,c,d,e,f f lépések száma felosztó módszer ábra. Az egyesítő és felosztó hierarchikus módszerek lépései A hierarchikus klaszterezés esetében a felhasználót általában nem a teljes hierarchia, hanem annak csupán egy szelete érdekli. Az algoritmus futása tetszőleges szinten megállítható, s ezáltal az objektumainkat egy előre meghatározott számú csoportba sorolhatjuk be. Annak eldöntése, hogy az algoritmus futását hol állítsuk meg, nem egyszerű feladat. Amennyiben a kialakítandó klaszterek száma alapján hozzuk meg ezen döntésünket, akkor erős felhasználói behatást érvényesítünk a csoportosításunk során, s nem feltétlenül kapunk optimális eredményt. Döntésünket alapozhatjuk a dendrogram távolsági skálájára is. Ebben az esetben egy távolsági érték határozza meg azt, hogy a csoportosítási sorozat mely lépését tekintsük végeredménynek. Válasszuk ezt a távolsági értéket mondjuk d-nek. Amennyiben d magasságában elvágjuk a dendrogramot, olyan csoportosítást kapunk eredményül, ahol az egyes csoportok közti távolság d-nél kisebb érték nem lehet. A d paraméter értékét vizuálisan célszerű oly módon megválasztani, hogy azon tartományba essen, ahol az egyesítési szintek között a legnagyobb ugrás látható. Ezen eljárást gyakran alkalmazzák a hierarchikus csoportosítások során, azonban a döntés továbbra is egy a priori elképzelésen alapul. A problémának számos formális megközelítése is létezik. Mojena [34] egyik megközelítése a dendrogram különböző egyesítési szintjeinek relatív távolságán alapul. Javaslata szerint a csoportok számát úgy kell megválasztani, hogy a dendrogramon ez legyen az első olyan állapot, amely kielégíti a következő összefüggést: α j+1 > α + ks α (4.25) ahol α 0, α 1,..., α N 1 az N, N 1,...,1 klasztert tartalmazó állapotoknak megfelelő egyesítési szinteket jelöli. α és s α a megelőző j szintek szórását, illetve torzítatlan 150
159 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) szórását jelentik, k pedig konstans, melynek értékére Mojena 2, 75 3, 5 tartományba eső valós számot javasol. Mojena másik megközelítése a mozgó átlagok módszerén alapul. Ebben az esetben a szabály a megelőző j állapotnak csak egy részét veszi figyelembe, s korrekciós együtthatókat vezet be, melyek a változás mértékéhez igazodnak. A hierarchikus csoportosítási módszerek másik sarkalatos kérdése a távolságok számításának módszere. Az algoritmusok általában egy hasonlósági mátrixon dolgoznak, s ezt a mátrixot frissítik lépésről-lépésre, majd a mátrix értékei alapján határozzák meg az egyesítendő, illetve szétbontandó csoportokat. Az egyesítő és felosztó hierarchikus módszerek esetében használt hasonlóságszámítási módszereket a és es alfejezetekben tekintjük át. Eddigi ismereteink alapján elmondhatjuk, hogy a hierarchikus csoportosító módszerek számos előnnyel, illetve hátránnyal is rendelkeznek. A hierarchikus módszerek általános előnyei közé a következőket szokás sorolni: rugalmasság a különböző részletezettségi szintű csoportok kialakítására vonatkozóan, a hasonlósági és távolsági mértékek könnyed kezelési módja, tetszőleges típusú attribútumok kezelése. Mint számos egyéb módszer, ezen csoportosító eljárások is rendelkeznek néhány hátrányos tulajdonsággal, melyeket a következőképpen összegezhetünk: a megállási kritérium meghatározásának nehézsége, korábbi döntések (egyesítés, szétbontás) visszavonhatatlansága. Az utolsó pontban említett hátrányos tulajdonság arra vonatkozik, hogy amennyiben egy hierarchikus elven működő csoportosító algoritmus valamely két klaszter összevonását végrehajtotta, illetve valamely csoportot két részcsoportra szétbontott, akkor ezen lépés a későbbiekben nem vonható vissza. Tehát az előző lépésekben elkövetett esetleges hibás összevonások/szétvágások a későbbiek során már nem javíthatók ki. Az alfejezet további részeiben tekintsük át részletesebben az egyesítő és felosztó hierarchikus csoportosító módszerek működését és az általuk használt hasonlósági mértékeket! 151
160 4.4. HIERARCHIKUS MÓDSZEREK Egyesítő hierarchikus módszerek Az egyesítő hierarchikus csoportosító módszerek alapkérdése, hogy a rekurzív lépések során mely csoportok egyesítése történjen meg. Az egyesítendő csoportok kiválasztása a csoportok közti távolságok alapján történik. Ebben az alfejezetben áttekintjük a legismertebb csoport-távolság számítási módszereket, egy példán keresztül bemutatjuk az egyesítő hierarchikus klaszterezést működés közben, kitérünk az egyes módszerek hátrányaira és előnyeire is, végül felvázoljuk néhány ismertebb egyesítő hierarchikus algoritmus főbb működési jellemzőit. Az egyesítendő csoportok meghatározására számos módszert dolgoztak ki, melyek közül legismertebbek az egyszerű kapcsolódás (single linkage) [35], a teljes kapcsolódás (complete linkage) [36] és az átlagos kapcsolódás (average linkage) [37] módszerei. Mindezek mellett bizonyos algoritmusok előszeretettel alkalmazzák a centroid kapcsolódás (centroid linkage) és a medián kapcsolódás (median linkage) elnevezési módszereket. Mindezen távolságszámítási módszereket már érintőlegesen tárgyaltuk a alfejezetben. Érdemes még megemlíteni Ward módszerét [38] is, amely az eddigiektől lényegileg eltérő számítási módot alkalmaz. Bár ezen felsorolt módszerek mindegyike másképp számítja ki az egyesítendő csoportok távolságát, egy fontos közös jellemzővel azonban mégis rendelkeznek. Alkalmazásuk esetén a hierarchikus algoritmusok azon csoportok egyesítését végzik el minden lépésben, amelyek között a kiszámított távolságérték a legkisebb. Az egyszerű kapcsolódás módszere a legközelebbi szomszéd technika néven is ismert. Ezen módszer esetében két klaszter távolságát úgy határozzuk meg, hogy tekintjük a két klaszter egyes pontjainak összes lehetséges párosítását (az egyik pontot az egyik csoportból, a másik pontot pedig a másik csoportból választjuk), kiszámítjuk ezeknek a pontpároknak a távolságait, majd ezen távolságok minimuma adja a két klaszter távolságát. Az egyszerű kapcsolódás esetében a csoportok távolságát tehát a csoportok legközelebbi pontjainak távolsága határozza meg. Az egyszerű kapcsolódás számítási elvét a 4.22 formula szemlélteti. A teljes kapcsolódás módszerének használata hasonló az előbb ismertetett módszerhez, azonban itt a csoportok távolságainak kiszámításakor a legtávolabb eső pontpárok távolságát vesszük alapul. Ennek megfelelően tehát minden egyes egyesítési lépésben azon két csoport kerül összevonásra, ahol a különböző csoportokból származó pontpárok távolságának maximuma a legkisebb. A teljes kapcsolódás számítási elvét a 4.23 formula szemlélteti. A fentiek alapján az átlagos kapcsolódás mértéke már analóg adódik. Ezen módszer alapján két klaszter távolságát az összes lehetséges pontpár távolságainak átlaga határozza meg. Minden egyes lépésben azon két csoport kerül összevonásra, ahol ez az átlagos távolságérték a legkisebb. Az átlagos kapcsolódás számítási elvét a 4.24 formula mutatja be. 152
161 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) A centroid kapcsolódás esetében a vizsgált csoportoknak külön-külön ki kell számítanunk a közepét (centroidját). A két csoport távolságát a középpontok távolsága határozza meg. Az csoportegyesítő lépés során minden esetben azon két csoportot kell összevonni, amely csoportok centroidjainak távolsága a legkisebb. A medián kapcsolódás alkalmazása során az egyes csoportok mediánjainak távolsága adja a klaszterek távolságát. A csoport mediánján azt az objektumot értjük, melyre igaz, hogy a csoporthoz tartozó objektumok felének hosszabb, a másik felének pedig rövidebb a tulajdonságtér origójától mért távolsága, mint a mediánt képviselő objektum távolsága az origótól. Analóg az eddigi módszerekhez, minden esetben azon két csoportot kell egyesíteni, amelyek esetében a mediánok távolsága a legkisebb. Ward módszere abból a feltevésből indul ki, hogy két csoport összevonásakor az adatpontok négyzetes hibaösszege növekszik. A négyzetes hibaösszeg alatt az adatpontok csoportközépponttól mért távolságainak négyzetösszegét értjük. A módszer lényege, hogy minden lépésben azon két csoport kerül összevonásra, ahol a négyzetes hibaösszeg növekedése a legkisebb. A felsorolt metrikák mindegyike levezethető a Lance-Williams formulából [39]. Legyenek k és (i j) azon csoportok, amelyek távolságát vizsgálni szeretnénk. Az (i j) csoport egy korábbi lépésben az i és j csoportok egyesítéséből jött létre. Ekkor k és (i j) csoportok távolsága a Lance-Williams képlet alapján a következőképpen határozható meg: d k(i j) = α i d ki + α j d k j + βd i j + γ d ki d k j (4.26) A fentebb felsorolt csoportok közti távolságmértékek az α i, α j, β, és γ paraméterek megfelelő választása mellet adódnak a Lance-Williams formulából. Az egyes távolságmetrikáknak megfelelő paraméterválasztást a 4.2. táblázat foglalja össze. A táblázatban látható N i típusú jelölések az i. csoportban található objektumok számát definiálják. α i α j β γ 1 egyszerű kapcsolódás 2 1 teljes kapcsolódás átlagos kapcsolódás centroid kapcsolódás 2 N i (N i +N j ) N i (N i +N j ) medián kapcsolódás 1 Ward módszer 2 (N k +N i ) (N k +N i +N j ) N j (N i +N j ) 0 0 N j (N i +N j ) N in j 0 (N i +N j ) (N k +N i ) N (N k +N i +N j ) k (N k +N i +N j ) táblázat. A Lance-Williams paraméterek értékei a különböző távolságmetrikák esetében 153
162 4.4. HIERARCHIKUS MÓDSZEREK Az egyesítő hierarchikus csoportosító módszerek működésük során általában a hasonlósági mátrixszal dolgoznak. Tekintsük át egy példán keresztül az egyszerű kapcsolódás elvét alkalmazó egyesítő hierarchikus klaszterező algoritmus működését! 4.1. Példa. Legyenek a, b, c, d és e azon objektumaink, amelyeket csoportosítani szeretnénk. A hozzájuk kapcsolódó távolságmátrix az első lépésben (az adatpontok távolsága alapján számolva) legyen a következő: D 1 = a b c d e (4.27) A mátrix értékei alapján láthatjuk, hogy az {a} és {b} csoportok (vagyis az a és b objektumok) közti távolság a legkisebb, ezért az algoritmus ezen két csoportot fogja először egyesíteni. Az új, egyesített csoport és a többi csoport közötti távolságok a következőképpen alakulnak: d {a,b}{c} = min(d ac,d bc ) = d bc = 5 (4.28) d {a,b}{d} = min(d ad,d bd ) = d ad = 6 (4.29) d {a,b}{e} = min(d ae,d be ) = d be = 9 (4.30) Ezen távolságértékek alapján egy új mátrixot hozhatunk létre, amely az aktuális csoportok közti távolságokat tartalmazza: D 2 = {a,b} {c} {d} {e} (4.31) Most a legkisebb távolságérték (3) a {c} és a {d} csoportok távolságát jellemzi, tehát a következő lépésben az algoritmus ezen két csoportot fogja egyesíteni. Az összevonás után a távolságmátrix a következőképpen alakul: 154 D 3 = {a,b} {c,d} {e} (4.32) 9 4 0
163 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) a b c d e 4.5. ábra. Az egyszerű kapcsolódás elvét követő egyesítő hierarchikus példa dendogramja A következő lépésben a {c, d} és az {e} elemeket tartalmazó csoportok egyesítése következik, hiszen most ezen két csoport távolsága a legkisebb (távolságuk: 4). Így az utolsó előtti lépésben már csak két csoportunk van, méghozzá az {a,b} és {c,d,e} csoportok. Az algoritmus az utolsó iterációban ezen két klasztert is egyesíti (távolságuk ekkor 5), s eredményképpen minden elem ugyanazon csoportba kerül. A példában bemutatott hierarchikus csoportosítási folyamat dendrogramon történő ábrázolását a 4.5. ábrán tekinthetjük meg. Érdemes az ábrán figyelemmel követni az előzőekben kiszámított csoportok közti távolságokat is. A teljes kapcsolódás elvét alkalmazó egyesítő hierarchikus módszer az előző példában látottakhoz hasonlóan használja és módosítja a távolságmátrixot, azonban ekkor az egyesített klaszterek távolságának maximuma öröklődik át lépésről-lépésre a következő mátrixba. Azon egyesítő hierarchikus algoritmus esetében, amely döntését az átlagos kapcsolódás szerint számolt távolságok alapján hozza meg, szintén elegendő a távolságmátrix használata. Ekkor azonban, ellentétesen az előző két módszertől, az algoritmus az új mátrix kiszámítását nem az előző mátrix adatai alapján végzi el, hanem minden lépésben visszanyúl a legelső (D 1 ) mátrixban tárolt értékekhez. Amennyiben a csoportok közti távolság számításának módszere a centroid kapcsolódás, a medián kapcsolódás, illetve a Ward módszer szerint történik, akkor az ezen módszereket alkalmazó egyesítő hierarchikus algoritmusok futtatásához a távolságmátrix nem elegendő. Ezen algoritmusok ugyanis minden egyesítő lépés során kiszámítják az aktuális csoportok centroidjait (centroid kapcsolódás és Ward módszer), illetve mediánjait (medián kapcsolódás), s csak ezen adatok ismeretében tudják elkészí- 155
164 4.4. HIERARCHIKUS MÓDSZEREK teni a következő döntés alapját adó távolságmátrixot. A centroidok és mediánok kiszámításához azonban szükség van az eredeti adatokra is, ezért ezen módszerek esetében a távolságmátrix folytonos változtatása mellett szükséges, hogy minden egyes lépésben az adatmátrix is elérhető legyen. Láthattuk tehát, hogy a csoportok közti távolságok kiszámítása szerint különböző egyesítő hierarchikus módszerek léteznek. Ezek a módszerek azonban nem csak a távolságszámítás mikéntjében különböznek egymástól, hanem az általuk szolgáltatott eredmények is jelentős eltéréseket mutathatnak. A különbség oka a távolságszámítás eltérő módjában keresendő. Az egyszerű kapcsolódás elvét alkalmazó algoritmusok jól alkalmazhatók abban az esetben, ha tömör, egymástól jól elkülönülő, tetszőleges alakú klasztereket kell felfedeznünk. Ezen algoritmusok szintén alkalmasak arra, hogy a csoportoktól elkülönülő adatpontokat (zajokat, adathibákat, kivételeket) feltárják. A teljes kapcsolódás módszere elsősorban élesen határolt ellipszoid alakú, illetve sűrű csoportok felfedezésére alkalmas, s kevésbé képes az elkülönülő pontokat felismerni. Számos tanulmány [40, 41] kimutatta, hogy amennyiben az egyes csoportokban található elemek száma közel azonos, akkor a Ward módszer kielégítő csoportosítási eredményt ad, ellenkező esetben azonban célszerű inkább egy teljes kapcsolódás elvén alapuló módszert választani. Mindamellett, hogy például az egyszerű kapcsolódás módszere gyakrabban alkalmazott távolságszámítási módszer, mint a teljes kapcsolódás módszere, sajnos rendelkezik egy nagy hátránnyal is. Az egyszerű kapcsolódás elvét alkalmazó hierarchikus csoportosítás ugyanis nem képes az ún. láncolási problémát feloldani [42]. A 4.6. ábra szemléletesen mutatja be ezt a hiányosságot. A 4.6. ábra (a) részén az egyszerű kapcsolódás alapján történő távolságszámítást, a (b) részén pedig a teljes kapcsolódás alapján történő távolságszámítást alkalmaztuk a csoportképzés során. Láthatjuk, hogy amennyiben az algoritmusainkat azon ponton állítjuk meg, hogy eredményeképpen 2 csoportot kapjunk, akkor az eltérő módszerek eltérő eredményeket adnak. A 4.6. ábra (a) része szemlélteti, hogy a felfedni kívánt 1-es és 2-es klaszterek között elhelyezkedő * -gal jelölt adathibák a legközelebbi szomszéd elvén működő algoritmust átvezették az egyik klaszterből a másikba. Összességében tehát elmondhatjuk, hogy nem létezik egy olyan, mindenek felett álló módszer, amely minden szituációban kielégítő eredményt szolgáltatna. Inkább mondhatjuk azt, hogy az egyes hierarchikus módszerek csak bizonyos esetekben és csak meghatározott lépésszám mellett adnak optimális megoldást. Az egyesítő hierarchikus módszerek számos csoportosító algoritmus alapját képezik. Kiemelendőek talán a CURE, a ROCK és a CHAMELEON algoritmusok, melyeket a következőkben tekintünk át főbb vonalaiban. 156 A CURE (Clustering Using REpresentatives) algoritmust, mint egyesítő hierarchi-
165 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) x 2 x * * * * * * * * * * * * (a) x 1 (b) x ábra. Az egyszerű (a) és a teljes kapcsolódás (b) elvén létrehozott klaszterek és a láncolási effektus kus csoportosító algoritmust, Guha és társai javasolták 1998-ban [43]. Az algoritmus hatékonyan alkalmazható nagy adathalmazok partícionálására, nem csak gömb alakú csoportok felfedezésére alkalmas, továbbá kevésbé érzékeny az elkülönülő adatpontokra. A CURE két módszert alkalmaz a nagy adathalmazok csoportosításából fakadó problémák feloldására. Egyrészt a csoportosítandó adathalmazból egy véletlenszerű mintát vesz, ezzel csökkentve a számítási költséget, másrészt a véletlen mintahalmazt tovább partícionálja, s először ezeken a partíciókon hajtja végre a csoportosításokat, végül az egyes partíciók csoportosítási eredményeit összegzi. Mivel a CURE egy egyesítő hierarchikus módszer, ezért kezdetben a partíció minden mintapontja egy-egy külön csoportot reprezentál. Egy tetszőleges lépését tekintve a CURE az aktuális csoportokban egyenként k darab reprezentatív elemet határoz meg. A csoportok egyesítésekor azon két csoport kerül összevonásra, amelyek esetében az eltérő csoportba tartozó reprezentáns pontpárok távolságának a minimuma a legkisebb. A következő lépésben az algoritmus az így létrejött új csoportban a 2k számú reprezentáns pontok számosságát lecsökkenti k-ra oly módon, hogy első reprezentatív pontnak választja az új csoport középpontjától legtávolabb eső reprezentatív elemet, majd láncszerűen választja ki az újabb reprezentáns pontokat, amelyek az előzőhöz képest sorra a legtávolabb helyezkednek el. Utolsó lépésként az újabb összevonás előtt, az algoritmus az elkülönülő pontok hatásának csökkentése érdekében az újonnan kiválasztott reprezentatív elemeket a csoportközéppont felé zsugorítja egy meghatározott arányban. Az algoritmus gyenge pontjai közé tartozik, hogy a csoportokban található objektumok számától függetlenül minden klasztert azonos számú reprezentatív ponttal határoz meg, s gyenge eredményeket mutat az eltérő sűrűségű adatpontok csoportosítása terén. Mivel a CURE csak numerikus attribútumok kezelésére alkalmas, ezért Guha és társai kifejlesztettek egy másik algoritmust is [44], amely ROCK néven ismert. A ROCK 157
166 4.4. HIERARCHIKUS MÓDSZEREK egy egyesítő hierarchikus csoportosító algoritmus, mely kategorikus tulajdonságokkal jellemzett objektumok csoportosítására alkalmas. Az algoritmus futása során egy gráfon dolgozik, ahol az egyes csoportok hasonlóságát a még különböző csoportba tartozó, közös szomszédokkal rendelkező objektumpárok száma alapján határozza meg. A CHAMELEON [45] egy olyan egyesítő hierarchikus algoritmus, amely megpróbálja kiküszöbölni a CURE és a ROCK algoritmusok hiányosságait. A csoportok egyesítéséhez nem csak az egyes klaszterek közti távolságokat, hanem az egyes klasztereken belüli távolságokat is figyelembe veszi. Az algoritmus a futása során a k-legközelebbi szomszéd gráfon dolgozik, ahol kezdetben kis, tömör csoportokat hoz létre, majd ezen klaszterek egyesítésével halad az egyre kevesebb csoportokat tartalmazó állapotok felé. Mivel a CHAMELEON működése során nem használ az adatokra vonatkozó feltételezéseket, hanem a csoportokat az adatpontok alapján dinamikusan építi fel, ezért alkalmas tetszőleges alakú és sűrűségű csoportok felismerésére Felosztó hierarchikus módszerek A felosztó hierarchikus módszerek gyakorlatilag az egyesítő hierarchikus módszerekkel ellentétes módon dolgoznak. Kezdetben minden egyes objektum ugyanabba a csoportba tartozik, majd az egyes csoportok szétvágásával kapjuk az egyre több klasztert tartalmazó lehetséges csoportosítási állapotokat. Míg az egyesítő hierarchikus csoportosításnál a csoportok összevonásának kritériumait kellett meghatároznunk, addig a felosztó eljárások esetében a csoportok szétvágásának kritériumait kell definiálnunk. Éppen ezen kritérium meghatározása adja a felosztó csoportosító algoritmusok nehézségét. Ugyanis amíg k darab csoport egyesítése esetén k(k 1) 2 lehetséges variáció közül kellett csak kiválasztanunk a legmegfelelőbbet, addig k darab objektumot tartalmazó csoport esetében 2 k 1 1 lehetséges szétbontást hajthatunk végre. Látható tehát, hogy a vágási kritériumot meghatározni nehezebb feladatnak tűnik. A felosztó hierarchikus eljárásoknak két fő csoportja létezik azon szempont szerint, hogy a vágási feltétel meghatározásához hány attribútumot vesznek figyelembe. Amennyiben ezen módszerek a vágási döntést egyetlen attribútum értéke alapján határozzák meg, akkor egyváltozós (monothetic) felosztó módszerről, ellenkező esetben amikor a csoportok szétvágásának meghatározásához több (jellemzően az összes) attribútumot figyelembe veszik többváltozós (polythetic) felosztó módszerről beszélünk. A leggyakrabban használt egyváltozós hierarchikus felosztó módszer az asszociáció analízis [46]. A módszer csak bináris adatmátrixon alkalmazható, s a vágás meghatározásakor valamely tulajdonság meglétét vagy hiányát veszi figyelembe. Alkalmazása során az algoritmus minden egyes vágási lépésben megkeresi azon tulajdonságot, amely a legerősebb asszociációt mutatja a többi tulajdonsággal. A vizsgált csoportot 158
167 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) ezután ezen attribútum mentén vágja ketté oly módon, hogy az egyik csoportba kerülnek azok az objektumok, ahol ez a tulajdonság igaz, a másik csoportba pedig azok az objektumok, ahol ez a tulajdonság hiányzik (hamis). A következő iterációs lépésben a korábban már kiválasztott tulajdonságokat az új változó kiválasztásához már nem kell figyelembe venni. Az asszociáció erősségének kiszámítására számos módszer létezik, a leggyakrabban használt módszer a khi-négyzet statisztikán alapul. Tekintsük a V i és V j bináris tulajdonságokat. A 4.3 táblázat összefoglalóan mutatja ezen tulajdonságok meglétének, illetve hiányainak gyakoriságát: V j 1 0 V i 1 0 a b c d 4.3. táblázat. Bináris változók egyezőségének gyakorisága A fenti táblázatban a jelöli azon objektumok számát, ahol mindkét tulajdonság megfigyelhető. A b, c és d értékek analóg adódnak. Amennyiben V i és V j változók kapcsolatát a khi-négyzet statisztika alapján számítjuk ki, akkor az asszociáció erősségét a következő képlet definiálja: (ad bc) 2 N (a + b)(a + c)(b + d)(c + d) (4.33) ahol N az objektumok számát jelöli. A módszer alkalmazása során minden egyes változó esetében összegezni kell a többi változóval való asszociációját, s azon változó mentén kell szétvágni a csoportot, ahol ez az összegzett asszociációs érték a maximális. A változók közti asszociáció erősségének meghatározására egyéb módszerek is ismertek, így például ezen értékek meghatározására használhatnánk a Pearson korrelációs együtthatót is. Az egyváltozós felosztó módszerek esetében a megfelelő változó kiválasztása alapulhat a klaszterek homogenitásán is. Egy adott klaszter információtartalma (C) a következőképpen határozható meg [47]: C = nn logn n k=1 [ f k log f k (N f k )log(n f k )] (4.34) ahol N az n számú változóval jellemzett objektumok számát, f k pedig a k. attribútum különböző értékeinek számosságát jelöli. A módszer szerint, ha egy X csoportot A és B csoportokra osztunk szét, akkor azon attribútum mentén kell elválasztanunk a csoportokat, ahol a C X C A C B érték maximális. 159
168 4.4. HIERARCHIKUS MÓDSZEREK A többváltozós felosztó hierarchikus módszerek sokkal inkább rokonságot mutatnak az egyesítő hierarchikus módszerekkel, mivel döntésükhöz egyidejűleg minden változót figyelembe vesznek, valamint számításaikat gyakran a hasonlósági mátrixon végzik el. A MacNaughton-Smith és társai [48] által javasolt módszer megpróbálja kiküszöbölni a felosztó módszerek azon hátrányát, hogy a megfelelő vágás kiválasztásához sok lehetőséget kelljen végigvizsgálni. Javaslatuk szerint egy csoport felosztása két lépésre tagolódik. Az első lépésben válasszuk ki azon objektumot, amelynek az összes többi objektumtól számított átlagos távolsága a legnagyobb (azaz leginkább elkülönül a csoporttól). Ezt az objektumot helyezzük el egy új csoportba. Második lépésben vizsgáljuk meg, hogy az így megmaradt csonka csoportban melyek azok az objektumok, amelyeknek az újonnan létrejött csoporttól mért átlagos távolsága kisebb, mint az éppen aktuális csoporton belüli objektumoktól mért átlagos távolsága, s ezen objektumokat is helyezzük át az új csoportba. A második lépést gyakorlatilag iteratív módon hajtjuk végre, mindig a másik csoporthoz leginkább közel álló elem áthelyezésével. Ez az iteráció addig folytatódik, amíg az eredeti csoportban már nem találunk olyan elemet, amely az új csoporthoz közelebb lenne (a távolságok átlaga alapján). A MacNaughton-Smith és társai által javasolt módszer részletes bemutatására a könyv honlapján talál egy konkrét példát a kedves Olvasó. A felosztó módszerek hátránya, hogy nagy számítási igénnyel rendelkeznek. Számos megközelítés létezik, amely ezen hátrányt próbálja enyhíteni. A számítási költség csökkentését célzó módszerek egyik csoportja a gráf alapú algoritmusok használatán alapul. A számos gráf alapú felosztó hierarchikus csoportosítás közül most csak azon módszerek csoportját emeljük ki, amelyek működésük közben az ún. minimális feszítőfát használják [49]. A minimális feszítőfa egy olyan súlyozott, irányítatlan, összefüggő gráf, ahol a súlyok összege minimális. Amennyiben a minimális feszítőfát a csoportosításokban alkalmazzuk, akkor a gráf csomópontjaiban a csoportosítandó objektumok helyezkednek el, az objektumokat összekötő éleken szereplő súlyok pedig az egyes objektumok távolságát reprezentálják. Ezen gráf alapú módszerek esetében az egyes csoportokat úgy kapjuk meg, hogy a minimális feszítőfa bizonyos éleit töröljük, ezáltal újabb részfák jönnek létre, amelyek egy-egy csoportot reprezentálnak. objektumok 2-dimenziós térben történő eloszlását szemlélteti, az ábra (b) része mutatja az objektumokon létrehozott minimális feszítőfát, a (c) részábra pedig egy lehetséges csoportosítást szemléltet. A minimális feszítőfa használatának előnye abban rejlik, hogy a megfelelő vágás kiválasztása kevesebb vizsgálatot igényel. Mivel egy N objektumot tartalmazó ( minimális feszítőfának pontosan N 1 éle van, ezért a teljes gráfban lehetséges vágás ) N 2 helyett a törlendő él meghatározásához csak N 1 lehetőséget kell megvizsgálni. 160
169 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) 4.7. ábra. Csoportosítás minimális feszítőfa alkalmazásával A minimális feszítőfán alapuló felosztó hierarchikus módszerek alkalmazása esetében arra a fő kérdésre keressük a választ, hogy miként határozzuk meg a vágási kritériumot, vagyis, hogy az egyes iterációkban mely élek törlését hajtsuk végre. A vágási kritérium meghatározásának egyik legegyszerűbb feltétele az egyszerű kapcsolódás elvén alapul. Ez a módszer gyakorlatilag tekinthető az egyszerű kapcsolódás elvét követő egyesítő hierarchikus módszer felosztó jellegű verziójának is. A módszer szerint minden egyes lépésben azon élt kell törölnünk a minimális feszítőfából, ahol az él súlya a legnagyobb, vagyis a legközelebbi szomszédok távolsága maximális. Mint a 4.7. ábrán is láthatjuk, ez a módszer az eltérő sűrűségű csoportok feltárására nem alkalmas. Az ilyen és ehhez hasonló problémák kiküszöbölésére számos egyéb módszert is kidolgoztak, így például vágási feltételünket alapozhatjuk a vizsgált él és a szomszédos élek hosszainak arányára is. A 4.4-es alfejezetben láthattuk, hogy a hierarchikus módszerek a lehetséges csoportosítások egy sorozatát adják, s láthattuk továbbá azt is, hogy számos különböző megközelítés létezik ezen egymásba ágyazott sorozat kialakítására vonatkozóan. A következő alfejezetben tekintsük át a csoportosítási módszerek egy másik válfaját, a partícionáló módszereket Partícionáló módszerek A partícionáló módszerek ellentétben a hierarchikus módszerekkel, ahol a csoportosítási lehetőségeknek egy megoldáshalmaza jön létre a vizsgált objektumoknak csak egy lehetséges csoportosítását adják eredményül. Mivel a partícionáló módszerek az összes lehetséges csoportosítás helyett csak azt az esetet vizsgálják, ahol az adatpontokat egy előre meghatározott (illetve ettől kis mértékben eltérő) számú csoportba kell beosztani, ezért általánosságban igaz, hogy a partícionáló módszerek kisebb költséggel rendelkeznek, mint a hierarchikus módszerek. Ennek következményeként jól alkalmaz- 161
170 4.5. PARTÍCIONÁLÓ MÓDSZEREK hatók nagy adatbázisok esetében is. A partícionáló módszerek célja N objektum k számú csoportba történő besorolása, ahol k értéke előre meghatározott. A csoportosítási eredményt ezen módszerek általában nem egyetlen lépésben határozzák meg, hanem iteratív módon közelítenek lépésről-lépésre az általuk legjobbnak vélt megoldás felé. A partícionáló algoritmusok már működésük elején az N elemet véletlenszerűen, vagy bizonyos heurisztika alapján k csoportba sorolják be, majd az elemek csoportok közti áthelyezésével próbálják javítani a kialakult klaszterek jellemzőit. A partícionáló módszerek általános lépései tehát a következőképpen összegezhetők: 1. Soroljuk be az N objektumot k darab csoportba. 2. Határozzuk meg a kialakult csoportok minőségére jellemző értékeket, majd az elemek egyik csoportból a másik csoportba történő áthelyezésével próbáljuk meg javítani ezeket a minőségi mutatókat. 3. Ismételjük a 2. lépést addig, amíg a megállási feltételt ki nem elégítjük (pl. egy bizonyos minőségi szintet el nem értünk). Némely partícionáló algoritmus a fenti három lépés végrehajtása után közvetlenül nem fejezi be működését, hanem ezek az algoritmusok tartalmaznak egy negyedik, optimalizációs lépést is. Ezen opcionális lépés során bizonyos csoportok összevonása, illetve szétbontása történik a minél tökéletesebb partíciók kialakítása érdekében. A partícionáló algoritmusok két fő kérdése a következő: (1) Hány partíciót hozzon létre az algoritmus? (2) Mely minőségi mutatók (indexek) alapján dönthető el, hogy egy adott csoport, illetve a csoportosítás egésze megfelelő-e? Az első kérdés megválaszolása általában a felhasználó feladata. Érezhető, hogy ezen paraméter felhasználó által történő megadása jelentős befolyással bír a klaszterezés eredményére vonatkozóan. Amennyiben a kialakítandó csoportok száma előre nem meghatározható, akkor javasolt a partícionáló módszer többszöri futtatása oly módon, hogy a kialakítandó csoportok számát folyamatosan változtatjuk, s a kapott eredmények közül a leginkább hasznosítható eredményt választjuk a csoportosítás végeredményének. Számos, ezen kérdéssel foglalkozó tanulmány közül kiemelendő Dubes munkája [50], amely a kialakítandó csoportok számára vonatkozóan próbál meg gyakorlati javaslatokat adni. A kialakítandó partíciók számával szorosan összefüggő kérdés, hogy milyen kezdeti partíciókból induljon ki az algoritmus. A kezdeti csoportok megválasztása történhet véletlenszerűen, felhasználhatunk hozzá valamely korábbi ismeretet, de akár egy korábbi klaszterezés eredménye alapján is meghatározhatjuk a kiindulási partícióinkat. A kezdeti csoportok megválasztása szintén jelentős befolyással bír a csoportosítás végeredményére vonatkozóan. Amennyiben a kiindulási csoportjainkat rosszul választjuk 162
171 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) meg, előfordulhat az az eset, hogy a partícionáló algoritmus nem egy globálisan optimális megoldást talál, hanem csak egy lokális optimumot határoz meg. Ezt az esetet elkerülendő a gyakorlatban ezen algoritmusok általában ismételten többször lefutnak oly módon, hogy a kiindulási partíciókat változtatják, majd az összes futás közül a legjobb eredményt adják vissza végeredményként a felhasználó számára. A partícionáló módszerek másik fő kérdése, hogy az egyes algoritmusok milyen minőségi mutatók alapján döntsék el, hogy egy elemnek melyik csoportban van a legmegfelelőbb helye. Az optimalizációs feltételek alapját azon elgondolás adja, hogy a jó csoportosítás olyan partíciókat eredményez, amelyek nagy mértékben elkülönülnek egymástól, s a csoportokon belüli hasonlóság is nagy mértékű. Ennek megfelelően a csoportok homogenitásának és a csoportok közti szeparációnak a meghatározása adhatja a minőségi kritériumok alapját. A szakirodalomban számos klaszterekre jellemző minőségi mutatót találhatunk [51], melyek az adatok különbözőségi mátrixa alapján igyekeznek leírni a csoportok homogenitását és az egyes csoportok közti szeparációt. Az ilyen minőségi mutatók esetében a partícionáló algoritmusok célja a homogenitás hiányának minimalizálása, illetve a szeparáció maximalizálása. A leggyakrabban alkalmazott minőségi kritérium az ún. négyzetes hiba vizsgálatán alapul. Egy objektum (adatpont) négyzetes hibája a klaszter centroidjától mért távolságának a négyzete. A csoportosítás teljes négyzetes hibáját az egyes adatpontok négyzetes hibáinak összege adja, amely a következőképpen határozható meg: E(C) = k j=1 x i C j x i c j 2 (4.35) ahol E(C) az aktuális csoportosítás négyzetes hibaösszegét, C j egy aktuális csoportot, k a csoportok számát, x i egy objektumot, c j pedig a j. csoport centroidját jelöli. A négyzetes hibán alapuló partícionáló algoritmusok célja az E(C) hibaérték minimalizálása. Mivel ezen minőségi index kiszámítása magában foglalja a csoportok centroidjainak meghatározását is, ezért a módszer kizárólag vektortérben megadható adatokon alkalmazható. A módszer további hátránya, hogy csak egymástól jól elkülönülő, tömör csoportok feltárására alkalmas A k-átlag és a k-medoid algoritmusok A k-átlag (k-közép, k-mean) algoritmusok a legegyszerűbb és leginkább elterjedt algoritmusok, amelyek alkalmazzák a négyzetes hiba kritériumot. Az algoritmusok alapváltozatát gyakran szokás Forgy algoritmusának is hívni, mivel az ő nevéhez kötődik a módszer alapverziójának publikálása [52]. Amennyiben N objektumot k csoportba szeretnénk besorolni, akkor ezen algoritmus fő lépései a következőképpen összegezhetők: 163
172 4.5. PARTÍCIONÁLÓ MÓDSZEREK 1. Válasszunk véletlenszerűen k darab elemet. Ezen elemek fogják kezdetben a k darab csoport centroidjait reprezentálni. 2. Minden objektumot rendeljünk a legközelebbi centroidhoz. 3. Számítsuk ki az így kialakult klaszterek új középpontjait (centroidjait). 4. Ismételjük a 2-es és 3-as lépéseket mindaddig, amíg a megállási kritériumnak eleget nem teszünk. Az algoritmus megállási kritériumát különféleképpen határozhatjuk meg. Így például befejezhetjük az algoritmus futását abban az esetben, ha a 2. lépésben már egyetlen elem sem kerül új csoportba (vagyis az elemek a saját csoportjuk centroidjához vannak a legközelebb), de megállíthatjuk az algoritmus futását akkor is, ha a négyzetes hiba összegének csökkenése már nem szignifikáns Példa. Az alap k-átlag algoritmus működésének áttekintéséhez tekintsük a következő példát. Legyenek a, b, c, d, e, f és g a csoportosítandó objektumaink, melyeket két folytonos értékű változóval jellemezhetünk (V 1, V 2 ). Tegyük fel, hogy az objektumainkat két csoportba szeretnénk elosztani (k = 2). Az egyes objektumokat jellemző változók értékeit a 4.4. táblázat foglalja össze. Objektum V 1 V 2 a 1 1 b 1,4 1,8 c 2,1 2 d 4,3 5 e 3,8 4,1 f 3,3 4,5 g táblázat. A k-átlag mintapélda objektumainak tulajdonságai Első lépésben véletlenszerűen ki kell választanunk két objektumot, amelyeket kezdő lépésben a leendő csoportok centroidjainak fogunk megfeleltetni. Elősegítvén a globális optimum meghatározását, választásunkat ne a véletlenre bízzuk, hanem válasszuk azon két objektumot, amelyek egymáshoz viszonyított Euklideszi távolsága a legnagyobb. Ennek megfelelően az a és g objektumok adják a kezdő csoportok centroidjait. A fennmaradó objektumoknak az a és g objektumtól mért távolságait a 4.5. táblázat összegzi. 164
173 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) Objektum távolság az távolság a a centroidtól g centroidtól b 0,89 5,53 c 1,49 4,94 d 5,19 1,22 e 4,18 2,25 f 4,19 2, táblázat. Objektumok távolsága a kezdő centroidoktól A következő lépésként mindegyik elemet hozzárendeljük a hozzá legközelebb eső centroidhoz. Ennek eredményeképpen az első csoportosítási eredményünk a következőképpen alakul: C 1 = {{a,b,c},{d,e,f,g}} (4.36) Nevezzük el az {a,b,c} csoportot A csoportnak, a {d,e,f,g} csoportot pedig B csoportnak. A kialakult csoportosítás minden egyes csoportjára ki kell számítanunk az új centroidokat, melyek a következők lesznek: ( 1,0 + 1,4 + 2,1 c A1 = ; 3 ( 4,3 + 3,8 + 3,3 + 5,0 c B1 = ; 4 1,0 + 1,8 + 2,0 3 5,0 + 4,1 + 4,5 + 6,0 4 ) = (1,5;1,6) (4.37) ) = (4,1;4,9) (4.38) A 4.37 képletben a c A1 jelölés az A csoport első iterációban kapott centroidját jelöli, ahol az egyes tulajdonságok értékeit pontosvessző választja el (a centroid V 1 tulajdonsága 1,5, V 2 tulajdonsága pedig 1,6 értéket vesz fel.) A 4.38 képlet analóg értelmezhető. Következő lépésként az esetleges átsorolások érdekében újra ki kell számítanunk az elemek ezen centroidokhoz viszonyított távolságait. Az újonnan kiszámított távolságokat a 4.6-as táblázat tartalmazza. Láthatjuk, hogy a továbbiakban egyik objektumot sem kell átsorolni a másik csoportba, mivel azon centroidhoz vannak közelebb, amely csoportba éppen tartoznak. Így az algoritmusunk futásának végére értünk, s az {a,b,c} és {d,e,f,g} csoportokat, mint végeredményt elfogadhatjuk. Érdekességképpen kiszámíthatjuk, hogy a tetszőlegesen választott centroidok esetében a négyzetes hiba összege 14,69 volt, míg az új centroidok esetében 4,78 lett. Láthatjuk tehát, hogy az algoritmus futása során a négyzetes hiba összege csökkent. Hogy a kapott eredmény valóban globálisan optimális-e, úgy tudjuk eldönteni, hogy az algoritmust újra és újra lefuttatjuk újonnan választott véletlenszerű kiinduló csoportokkal. Amennyiben az újabb csoportosítási eredmények négyzetes hibaösszege kisebb, mint az imént kapott négyzetes hibaösszeg (4,78), akkor a legkisebb 165
174 4.5. PARTÍCIONÁLÓ MÓDSZEREK távolság az távolság a Objektum A csoport B csoport centroidjától centroidjától a 0,78 4,98 b 0,22 4,11 c 0,72 3,52 d 4,4 0,22 e 3.4 0,85 f 3,41 0,89 g 5,62 1, táblázat. Objektumok távolsága a C 1 csoportosítás centroidjaitól négyzetes hibaösszeget szolgáltató eredményt választjuk optimális csoportosításnak. Az idők folyamán a Forgy algoritmusnak számos verziója látott napvilágot. Egy lehetséges módosítás szerint az új centroidokat ne akkor számítsuk ki, ha már minden elemet hozzárendeltünk a hozzá legközelebb eső centroidhoz, hanem a centroidok újraszámítását minden egyes elem átmozgatása után végezzük el. Ebben az esetben tehát egy elem átmozgatása két centroid számítását teszi szükségessé. Bár első olvasatra úgy tűnik, hogy ezen módosítás növeli a számítási igényt, azonban számos tanulmány bizonyította [53, 54], hogy a második verzió számítási költsége algebrailag redukálható, s ennek eredményeképpen a két módszer számítási komplexitása azonos. A k-átlag alapalgoritmus egy másik lehetséges módosítása lehetővé teszi az eredménycsoportok egyesítését és szétbontását. Egy klasztert akkor kell szétbontani, ha a benne található elemek szórása meghalad egy előre meghatározott küszöbértéket, s két csoportot akkor kell egyesíteni, ha a centroidjaik távolsága kisebb, mint egy másik, szintén előre meghatározott küszöbérték. Ezen lehetőségek alkalmazása csökkenti a kiindulási partíciók és az elkülönülő objektumok befolyásoló szerepét. Az ISODATA [55] az egyik ilyen algoritmus, amely alkalmazza ezen módosításokat is. A k-átlag algoritmusok nagy előnye, hogy könnyű őket implementálni és komplexitásuk kicsi. Ezen algoritmusok azonban rendelkeznek néhány hátrányos tulajdonsággal is. Fő problémaként említhetjük, hogy számos válfajuk rendkívül érzékeny a kiindulási partíciókra, s amennyiben a kiindulási csoportok nem megfelelően lettek megválasztva, előfordulhat az az eset, hogy az algoritmus a minőségi kritérium lokális minimumát határozza meg, azonban ez az objektumhalmaz egészére nézve nem az optimális csoportosítást jelenti. A hiányosság kiküszöbölhető az algoritmus többszöri futtatásával, ahol a kezdeti partíciók mindig mások. Eredményképpen azt a megoldást kell elfogadni, ahol a négyzetes hiba összege a legkisebb. A k-átlag algoritmusok számítási módszerükből fa- 166
175 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) kadóan érzékenyek az elkülönülő adatpontokra, s elsősorban csak tömör, jól elkülönülő csoportok meghatározására alkalmasak. Igaz továbbá az is, hogy számításaikat sajnos csak a vektortérben jellemezhető objektumok esetében képesek elvégezni. A k-átlag algoritmusok egyik hiányossága tehát, hogy nem alkalmazhatók kategorikus tulajdonságokkal is rendelkező objektumok csoportosítására. A k-átlag ezen hiányosságát hivatottak kiküszöbölni a k-medoid algoritmusok. Az előbb említett hiányosság abból fakad, hogy a k-átlag algoritmusok az objektumok távolságát a csoportok centroidjához viszonyítják, vagyis szükséges a csoportközép kiszámítása, a- mely például felsorolás típusú attribútumok esetében nem kivitelezhető. Éppen ezért a k-medoid algoritmusok a csoportok centroidjainak kiszámítása helyett a csoportok medoidját határozzák meg. A csoport medoidja a leginkább középen elhelyezkedő elem. Vagyis ebben az esetben az egyes objektumok távolságát nem egy, a vektortérben kiszámított ponthoz viszonyítjuk, hanem a csoport egyik eleme adja a viszonyítás referenciapontját. A alfejezetekben korábban már láthattuk, miként határozható meg a kategorikus adatok hasonlósága/különbözősége. A k-medoid módszerek ezeket és a korábbi számítási mechanizmusokat alkalmazva már tetszőleges tulajdonságokkal jellemezhető adatpontok távolságát is ki tudják számítani, s ezen távolságok alapján meghatározható a csoportosítás négyzetes hibaösszege is. A k-medoid módszerek másik nagy előnye a k-átlag algoritmusokhoz képest, hogy mivel a csoportok középpontját egy valós objektum reprezentálja, kevésbé érzékenyek az elkülönülő adatpontokra. A k-medoid algoritmus részletesebb működéséről az [56] irodalom ad leírást. A k-medoid módszerek két korai alkalmazása a PAM (Partitioning Around Medoids) és a CLARA (Clustering LARge Applications) algoritmusok [57]. A PAM algoritmus a medoidok megtalálásának érdekében az iteratív lépések során az egyes csoportokban minden egyes elemet megvizsgál mint lehetséges medoidot, kiszámítja az így adódó minőségi mutató értékét, majd azt az elemet választja medoidnak, ahol ezen minőségi mutató értéke a legkedvezőbb. Érthető, hogy ezen algoritmus számítási költsége a sok lehetőség vizsgálatából fakadóan rendkívül nagy. Ezen a problémán próbál enyhíteni a CLARA algoritmus. A CLARA az eredeti objektumhalmazból egy reprezentatív mintát választ, s a PAM algoritmust használva ezen reprezentatív minta elemei között keresi a lehetséges medoidokat. Mivel a csoportosítás eredményét jelentősen befolyásolja a választott mintahalmaz, ezért a CLARA a csoportosítást több mintahalmazból kiindulva elvégzi, s eredményképpen azt a csoportosítást adja vissza, amely a minőségi mutatók alapján a legmegfelelőbbnek bizonyul. Sajnos azonban a CLARA sem találja meg minden esetben a legoptimálisabb csoportosítást, hiszen ha valamely legmegfelelőbb medoid egyik mintahalmazban sem szerepel, akkor valószínűleg a csoportosítás végeredménye sem lesz a optimális. 167
176 4.6. FUZZY MÓDSZEREK A CLARA előbb említett hibáját próbálja kiküszöbölni a Ng és Han által javasolt CLARANS (Clustering Large Applications based upon RANdomized Search) algoritmus [58]. Amíg a CLARA csak néhány lehetséges mintahalmazban keresi a medoidokat, addig a CLARANS folyamatosan változtatja a mintahalmazokat a minél optimálisabb megoldás megtalálásának érdekében. Az algoritmus egy gráfon dolgozik, melynek csúcsai egy lehetséges medoidhalmazt tartalmaznak, s két csúcspontot akkor köt össze él, ha pontosan egy medoidban különböznek. A CLARANS egyszeri futtatása során a gráf egy véletlenszerűen kiválasztott csúcspontjából indul, és a kiválasztott csúcspont szomszédjait is kipróbálja a jobb megoldás megtalálásának érdekében. Ha a kipróbált szomszédos csúcspontban a négyzetes hibaösszeg kisebb, akkor itt folytatja a munkáját. A CLARANS az egyszeri futtatás eredményeképpen egy lokális optimumot fog találni. A globális optimum megtalálásának reményében (melynek megtalálása ugyan továbbra sem biztosított) a CLARANS-t is többször futtatjuk, majd a megtalált lokális optimumok közül a legmegfelelőbbet tekintjük a csoportosítás eredményének Fuzzy módszerek Mivel a csoportosítás során kialakított klaszterek tekinthetők a csoportosítandó objektumok részhalmazainak is, ezért a csoportosító módszereinket megkülönböztethetjük azon szempont alapján is, hogy a kialakult halmazokat az egyes módszerek klasszikus értelemben vett halmazként vagy fuzzy halmazként kezelik-e. A tradicionális csoportosító módszerek olyan csoportokat hoznak létre, ahol minden egyes elem pontosan egy csoporthoz tartozik. Mivel ezek a módszerek a klasszikus halmazelméleti fogalmakon alapulnak, ezért minden egyes objektumról egyértelműen eldönthető, hogy egy adott csoportnak eleme-e vagy sem. Következményképpen a kialakult csoportok egyértelműen elkülönülnek egymástól. Az ilyen csoportosító módszereket összefoglaló néven szokás kemény csoportosító módszerek névvel is illetni. A kemény csoportosító módszerek közé sorolható az eddig ismertetett hierarchikus és partícionáló algoritmusok mindegyike. Ellentétben a kemény csoportosító módszerekkel a fuzzy (lágy) csoportosító módszerek az egyes csoportokat fuzzy halmazként kezelik. A fuzzy halmazok esetében egy elem egyidejűleg több halmaznak is része lehet. Az elemeknek az egyes halmazokhoz való tartozásának mértékét a tagsági függvény értéke határozza meg [59]. A tagság erősségét általában egy [0, 1] intervallumba eső számértékkel adjuk meg, ahol az 1-es érték azt jelenti, hogy a vizsgált elem biztosan beletartozik az adott halmazba, míg a 0 érték minden bizonyossággal kizárja az adott elemet az adott halmazból. A tagsági mérték 0 és 1 között tetszőleges értéket felvehet, s minél inkább közelít az 1-hez, annál inkább azt jelzi, hogy az elem valószínűleg a halmaz eleme. A fuzzy csoportosító módszerek végeredményképpen tehát nem elkülönülő csopor- 168
177 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) V 2 H 1 H 2 a b d c e f g i h F 1 F 2 V ábra. Kemény és fuzzy csoportosítás tokat hoznak létre 3. A fuzzy csoportosítás eredményében előfordulhatnak olyan objektumok is, amelyek csoporthoz tartozása nem egyértelműen eldöntött, csak az egyes csoportokhoz való tartozásuk valószínűsége került meghatározásra. Ezen elemekben az egyes csoportok átfedik egymást. A fuzzy csoportosítások eredménye könnyen átalakítható kemény csoportosítási eredménnyé oly módon, hogy minden egyes objektumot azon csoportba sorolunk be, amely csoport esetében a tagsági függvény értéke a legnagyobb Példa. A kemény és a fuzzy csoportosítás közti különbség áttekintéséhez nézzük meg a következő példát: A 4.8. ábra 9 objektum (a,b,c,d,e,f,g,h,i) fuzzy és kemény csoportosításának eredményét mutatja be. A H 1 és H 2 -vel jelölt halmazok a kemény klaszterezés eredménycsoportjait szemléltetik, az F 1 és F 2 szaggatott vonallal jelölt halmazok pedig a fuzzy csoportosítás eredményhalmazait reprezentálják. A kemény csoportosítás eredményeképpen mint az ábráról is leolvasható azt kaptuk, hogy az a, b, c, d és e objektumok az egyik (H 1 ), az f, g, h és i objektumok pedig a másik csoporthoz (H 2 ) tartoznak. A fuzzy csoportosítás eredményét a tagsági függvények értékeinek megadásával a következőképpen írhatjuk le: F 1 = {(a;1),(b;1),(c;1),(d;1),(e;0,55),(f;0,2),(g;0,15),(h;0),(i;0)} (4.39) F 2 = {(a;0),(b;0),(c;0),(d;0),(e;0,45),(f;0,8),(g;0,85),(h;1),(i;1)} (4.40) 3 Megj: Bár speciális esetben az is előfordulhat, hogy minden egyes objektum csoportokhoz való tartozásának mértéke kizárólag 0 és 1-es értékeket vesz fel, tehát az elemek csoporttagsága egyértelműen meghatározott. 169
178 4.6. FUZZY MÓDSZEREK Látható, hogy a csoportosítandó objektumok minden egyes csoport meghatározásában szerepet kapnak, azonban az egyes csoportokhoz való tartozásuk mértéke eltérő. Érdemes megjegyezni, hogy előfordulhatna olyan objektum is, amelynek az F 1 és F 2 csoporthoz való tartozását leíró tagsági függvény értéke mindkét esetben azonos. Miután a fuzzy csoportosítás alapja a fuzzy halmazokon nyugszik, ezért a következőkben tekintsük át a fuzzy halmazok reprezentációját Fuzzy csoportok Legyen X = {x 1,x 2,...,x N } a csoportosítandó objektumok halmaza, melyeket n tulajdonság jellemez, valamint legyen c a kialakítandó csoportok száma, amely előre meghatározott. A fuzzy partíciókat egy U = [µ ik ] c N-es mátrixszal adhatjuk meg, ahol µ ik az x k objektum (1 k N) i. csoporthoz (1 i c) való tartozásának mértékét határozza meg. Ennek alapján az U mátrix i. sora az egyes objektumok i. csoporthoz való tartozásának tagsági mértékeit tartalmazza. Az U mátrixot fuzzy partíciós mátrixnak hívjuk. A fuzzy partíciós mátrixra igazak a következő állítások: µ ik [0,1], 1 i c, 1 k N (4.41) c i=1 0 < µ ik = 1, 1 k N (4.42) N k=1 µ ik < N, 1 i c (4.43) A 4.41 formula megadja, hogy a tagsági mértékeknek minden objektum és minden csoport esetében [0,1] intervallumba kell esniük. A 4.42 formula alapján egy adott objektum összes csoportra számított tagsági mértékeinek összege pontosan 1. A 4.43 állítás szerint egy csoportban a tagsági mértékek összegének a csoportosítandó objektumok számánál kisebbnek kell lennie. Az eddigiek alapján meghatározható a fuzzy csoportosítási tér is. Legyen X = {x 1,x 2,...,x N } az objektumok egy véges halmaza és 2 c N egy egész szám. Az X-hez tartozó fuzzy csoportosítási tér a következőképpen definiálható: M f c = { U R c N µ ik [0,1], i,k; c i=1 µ ik = 1, k; 0 < N k=1 µ ik < N, i } (4.44) 170
179 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) Megismervén a fuzzy csoportok, s a fuzzy csoportosítási tér tulajdonságait nézzük meg, hogy melyik a leggyakrabban alkalmazott fuzzy csoportosítási módszer A fuzzy c-átlag csoportosítás A fuzzy c-átlag (c-means) algoritmus egy olyan csoportosító algoritmus, amely eredményképpen fuzzy csoportokat hoz létre, azonban ehhez nem szükséges, hogy a csoportosítandó objektumokat fuzzy változók jellemezzék. A fuzzy c-átlag klaszterezés ötletét Dunn [60] vetette fel 1973-ban, majd Bezdek [61] az algoritmus egy általánosítását adta meg 1981-ben. Dunn algoritmusa a klasszikus csoportokon értelmezett négyzetes hibaösszeg objektív mértékének fuzzy halmazokra történő kiterjesztését foglalja magában. Ennek megfelelően a fuzzy c-átlag csoportosítás hasonlóan a k-átlag csoportosító módszerekhez egy, a klaszterekre jellemző objektív mérték minimalizálásán alapszik. Ez az objektív mérték a fuzzy c-átlag célfüggvény, melyet a következő formulával írhatunk le: J m (X,U,V) = c N i=1 k=1 (µ ik ) m x k v i 2 A (4.45) ahol U az X objektumhalmazhoz tartozó fuzzy partíciós mátrix, µ ik a partíciós mátrix egy eleme, amely megadja a k. objektum i. csoporthoz való tartozásának mértékét. V = [v 1,v 2,...,v c ], ahol v i R n egy vektor, amely az egyes klaszterek centroidjait reprezentálja. Az tetszőleges norma, amely az objektum és csoport középpontja közti hasonlóságot fejezi ki, A pedig egy n n -es szimmetrikus mátrix, melyet a következőképpen határozhatunk meg: D 2 ika = x k v i 2 A = (x k v i ) T A(x k v i ) (4.46) Az m egy 1-nél nagyobb valós szám, amely egy súlyozási kitevőként értelmezhető. Ezen súlyozási kitevő a halmazok fuzzy jellegének erősségét határozza meg. Minél nagyobb az m értéke, annál inkább összemosódott fuzzy halmazokat kapunk eredményül. A fuzzy c-átlag (FCM) algoritmus az x k objektum és v i csoportközép súlyozott eltérésének összegét leíró fuzzy c-átlag célfüggvényt próbálja iteratív módon minimalizálni. Az FCM algoritmus a következő lépéseket tartalmazza: 1. Adott az X = {x 1,x 2,...,x N } adathalmaz. Határozzuk meg a kialakítandó csoportok számát (2 c N), a maximális iterációk számát (T 1), az alkalmazott távolsági normát ( A ), a fuzzy jelleget megadó m paramétert, és egy megállási feltételhez szükséges ε > 0 paramétert. 2. Véletlenszerűen határozzuk meg az U (0) fuzzy partíciós mátrix értékeit oly módon, hogy kielégítse a feltételeket. 171
180 4.7. MESTERSÉGES NEURONHÁLÓS MÓDSZEREK 3. Minden t = 1,2,...,T -re, amíg U (t) U (t 1) ε teljesül, ismételten hajtsuk végre a következőket: (a) Határozzuk meg a csoportok középpontjait (v i -ket) minden 1 i c-re a következőképpen: ( v (t) i = N k=1 N k=1 µ (t 1) ik ( µ (t 1) ik ) m xk ) m (4.47) (b) Számítsuk ki a távolsági értékeket minden adatpontra (1 k N) és minden csoportra (1 i c) a következőképpen: D 2 ika = (x k v i ) T A(x k v i ) (4.48) (c) Frissítsük az U partíciós mátrixot az alábbi képlet alapján: µ (t) ik = 1 c ( ) (4.49) 2/(m 1) DikA /D jka j=1 A kezdő paraméterek különböző beállításai mellett a fuzzy c-átlag algoritmus futása különböző. Végeredményében az algoritmus mindig ugyanahhoz az eredményhez közelít, de az azonos eredmény eléréséhez a kezdő paraméterek különböző beállításai mellett különböző lépésszám szükséges Mesterséges neuronhálós módszerek Az idők folyamán újabb és újabb hasznos módszerek jelentek meg a csoportképzés módszertanában. A Hertz és társai által javasolt mesterséges neuronhálós módszereket [62] az elmúlt évtizedben széles körben alkalmazták a csoportosítási feladatok végrehajtása során is [63, 64]. Szemben némely egyéb klaszterező módszerrel, ahol a csoportok kialakítása explicit információt is igényel, a mesterséges neuronhálók alkalmazása esetén a csoportok szervezése az adatokra jellemző tulajdonságokon alapul. A számos neuronhálós csoportosítási megközelítés közül jelen fejezetben a talán leggyakrabban alkalmazott módszereket, vagyis a Kohonen önszerveződő hálózatát használó mesterséges neuronhálós csoportosítási módszerek némelyikét emeljük ki. Ezen módszerek megismerése azonban nem nélkülözheti az önszerveződő hálózatok ismeretét, ezért a következő alfejezetben először ezzel a témakörrel foglalkozunk részletesebben. 172
181 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) 4.9. ábra. Hexagonális és négyzetes SOM topológia Önszerveződő hálózatok szerkezete, tanítása, ábrázolása A Teuvo Kohonen professzor és laboratóriuma által a 80-as évek elején kifejlesztett önszerveződő hálózatok elmélete (önszerveződő térképek, Self-Organizing Maps, SOM) [65] az egyik legnépszerűbb neurális hálózati modell. Az elmélet atyjára hivatkozva a SOM-ot gyakran illetik Kohonen önszerveződő hálózatok névvel is. A SOM algoritmus egy felügyelet nélküli tanulási módszer, amely az n-dimenziós bemenő adatokat alacsonyabb dimenziószámú (általában 2-dimenziós) tömbökre képezi le, és a leképezés eredményét grafikusan (neuronháló) és numerikusan ábrázolja. Ezen dimenziószámcsökkentő leképezés jellemző tulajdonsága, hogy az n-dimenziós bemeneti adattér egymáshoz hasonló vektorainak olyan neuronokat feleltet meg a neurontérképen, amelyek szintén egymáshoz közel helyezkednek el. A csoportosítási algoritmusok, melyek működésüket az önszerveződő hálózatokra alapozzák, az ilyen módon kialakított neurontérképeknek éppen ezen tulajdonságát használják ki. A neuronok által megformált SOM általában egy 2-dimenziós szabályos rácsszerkezetet takar, melynek leggyakrabban használt formája hexagonális vagy négyzetes elrendezésű. A térkép topológiáját a neuronok és a szomszédos neuronok kapcsolata határozza meg. A módszer lehetővé teszi ugyan a magasabb dimenziószámú rácsok kialakítását is, azonban ezen formák a megjelenítési nehézségek miatt kevésbé használatosak. A SOM-ban elhelyezkedő minden egyes neuron egy n-dimenziós referenciavektornak, más néven súlyvektornak feleltethető meg (w i = [w i1,w i2,...,w in ]), ahol n a bemeneti adattér dimenzionalitásával egyenlő. A leggyakrabban használt 2-dimenziós topológiákat a 4.9. ábra szemlélteti. Az önszerveződő térképek alkalmazása gyakorlatilag két fő lépésre tagolható. Első lépésben az n-dimenziós adathalmazunkból létre kell hoznunk a SOM-ot, majd ezt követi a betanított neurontérkép különböző feladatokban (pl. csoportosításban) történő felhasználása. A SOM kialakítása önmagában is két fő lépésre osztható, melyek az előkészítési fázist, s a térkép tanítási fázisát jelentik. A SOM kialakításának két fő fázisa a következőképpen tagolható: 173
182 4.7. MESTERSÉGES NEURONHÁLÓS MÓDSZEREK 1. A SOM inicializálása 2. A SOM tanítása iteratív módon, amíg a megállási feltétel nem teljesül: (a) Adatvektor véletlen kiválasztása (b) Távolságok meghatározása a kiválasztott adatvektor és a neuronok között (c) A legjobban hasonlító neuron megtalálása (d) A nyertes és szomszédos súlyvektorok paramétereinek módosítása (e) A távolságfüggvény újraparaméterezése Az alap SOM algoritmusban a topológiai elrendezés és a neuronok száma előre meghatározott. Ezen előkészítés során a neuronok számát érdemes olyan nagynak választani, amennyire csak lehetséges, szem előtt tartva, hogy a tanítási folyamat számítási költsége a térkép növekedésével szintén nő. Szintén az előkészítési fázis részeként az egyes súlyvektorokhoz (neuronokhoz) kezdeti értékeket kell rendelni. Ezen beállításra ugyan a SOM az eredmény szempontjából kevésbé érzékeny, de minél jobb kezdeti beállításokat alkalmazunk, annál gyorsabban konvergál a tanítási folyamat a kívánt eredmény felé. Konvencionálisan a kezdeti súlyvektorokat választhatjuk véletlenszerűen, de akár a bemeneti adathalmazból véletlenszerűen kiválasztott adatminták is adhatják a kezdeti súlyvektorokat. Mint már az előzőekben is láthattuk, a tanítási fázis egy iteratív folyamat. Minden egyes iteráció során az X bemeneti mintahalmazból véletlenszerűen kiválasztunk egy példa objektumot (x), majd kiszámítjuk ezen vektor és a térkép összes súlyvektora közti távolságot. A leginkább illeszkedő neuron (BMU, Best-Matching Unit) az a neuron, amely a leginkább hasonló ezen példavektorhoz. A hasonlóság kiszámításához általában Euklideszi normát használunk, s ennek alapján a leginkább illeszkedő neuronnak azt az egységet választjuk, ahol ez a távolságérték a legkisebb. Miután megtaláltuk a példavektorhoz leginkább illeszkedő neuront, a következő lépésben a SOM súlyvektorait kell módosítani. Ez a módosítás gyakorlatilag azt jelenti, hogy a BMU-t és a topológiai szomszédait közelebb húzzuk az előzőekben választott példaobjektumhoz. A SOM ilyen jellegű módosítását a ábra mutatja be szemléletesen. A SOM súlyvektorainak módosítása formálisan a következőképpen írható le: w i (t + 1) = w i (t) + h ci (t)[x(t) w i (t)] (4.50) ahol t az időt, vagyis az iterációk számát jelöli, x a véletlenszerűen kiválasztott adatpont, w i egy súlyvektor és h ci (t) az időben változó (t-vel csökkenő) szomszédsági függvény, amely a legjobban illeszkedő neuron (w c ) módosításra kijelölt szomszédságát és az ahhoz rendelt tanulási rátát határozza meg. Gyakorlatilag ez azt jelenti, hogy a tanítási 174
183 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) ábra. A SOM módosítása folyamat során azon neuronok aktiválódnak a kiválasztott x példavektor hatására, melyek bizonyos távolságra helyezkednek el a BMU (w c ) neuronjához képest. Ez a sugár, valamint a hozzá tartozó tanulási ráta nem állandó, hanem a tanítási folyamat során csökken. A szomszédokra elvégezve az imént definiált módosítást, tanítjuk a hálózatot. A tanulás vége felé a szomszédos neuronokat már nem, vagy csak nagyon kis mértékben kell módosítani, hisz a neuronok ekkorra már felvették az adathalmaz alakját. A tanítási folyamat leállási feltételeként megadhatunk például egy, a változás mértékére vonatkozó küszöbértéket, mely küszöbérték alatti változás esetén a tanítási folyamat megáll. Az így kapott neuronokból álló hálózat értelmezése elsőre nem egyszerű feladat. Az ábrázolásuk során többféle megjelenítési mód közül is választhatunk, melyek a lényeges információt 2- vagy 3-dimenzióra vetítik le. Ezen vizualizációs technikák célja a hálózatban lévő neuronok közötti távolság szemléltetése. Az önszerveződő hálózatok megjelenítésének egyik leggyakrabban használt ábrázolási módja az ún. U-mátrix. Az U-mátrix a neuron és az őt körbevevő környezetben levő neuronok közti távolságot tárolja. A mátrix elemei tartalmazzák a neuronokhoz tartozó súlyvektorok egységre normált, átlagos távolságát a 6 (négyzetes elrendezés estén esetén a 4) szomszédos súlyvektortól. Az élek színezése a kérdéses él mentén fekvő szomszéd neuron súlyától mért távolságot reprezentálja. A neuronhoz kiszámított távolságértéket 2-dimenziós ábrázolás során színezéssel, 3-dimenziós ábrázolás során pedig a 3. dimenzió, vagyis a magasság bevezetésével szemléltethetjük. A 2-dimenziós szürkeárnyalatos ábrázolás során a kisebb távolságértékeket általában világosabb, a nagyobb távolságértékeket pedig sötétebb árnyalattal jelöljük. A két lehetséges ábrázolásra mutat be egy-egy példát a ábra. 175
184 4.7. MESTERSÉGES NEURONHÁLÓS MÓDSZEREK (a) (b) ábra. Az U-mátrix ábrázolása 2-dimenzióban (a) és 3-dimenzióban (b) A komponens térképek használata az önszerveződő hálózatok megjelenítésének másik gyakran alkalmazott módja. Mivel minden egyes neuron több dimenzióból áll, és a dimenziókat az attribútumok határozzák meg, ezért a létrejött forma dimenzióit különkülön a síkba vetítve megvizsgálhatjuk az egyes attribútumok értékeit is. Amennyiben tehát minden egyes neuront jellemző súlyvektorból ugyanazt a komponenst ragadjuk ki, akkor megkapjuk az adott SOM-ra jellemző és a kiválasztott tulajdonságon alapuló komponens térképet. Egy n-dimenziós bemeneti mintahalmaz esetén a kialakított önszerveződő hálózatot n darab komponens térképpel jellemezhetjük, ahol az egyes tulajdonságok értékeit színezéssel, illetve harmadik dimenzióként bevezetett magasság megadásával szemléltethetjük Önszerveződő hálózatok szerepe a csoportosításokban Miután megismertük az önszerveződő hálózatok szerkezetét, inicializálását, valamint tanulási mechanizmusát, elmondhatjuk, hogy Kohonen önszerveződő hálózata hasznos segítséget nyújthat a sok tulajdonsággal jellemzett adatok 2-, 3-dimenziós tömörített szemléltetésében. Az alacsonyabb dimenziószámra történő vetítés legfontosabb jellemző tulajdonsága, hogy azon bemeneti vektorok, amelyek az n-dimenziós térben közel helyezkednek el egymáshoz, azok az önszerveződő hálózatban is egymáshoz közeli neuronként fognak megjelenni. Ezen tulajdonságot kihasználva a megfelelően tanított önszerveződő hálózatban az azonos csoportba tartozó objektumokat reprezentáló neuronok tehát a 2-, 3-dimenziós térben szabad szemmel is jól elkülöníthető csoportokat alakítanak ki. Az önszerveződő hálózatokban a csoportok elkülönítésére számos módszer létezik, melyek közül a leggyakrabban alkalmazott módszer az U-mátrixot használja. Az U- mátrix ábrázolást értelmezhetjük oly módon, hogy a magasabb, illetve a sötétebb részek 176
185 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) a csoportok közti határokat definiálják, míg az összefüggő, világosabb, illetve azonos völgybe eső neuronok pedig az azonos csoportokat jelenítik meg. Egy-egy neuron gyakorlatilag egy egy csoportközéppontnak feleltethető meg. Az U-mátrixot használó csoportosítás általában egyesítő hierarchikus módon működik, ahol kezdetben minden egyes neuron egy-egy különálló csoportot jelöl, majd minden soron következő iterációs lépésben összevonjuk azon két neuron által szimbolizált csoportokat, melyek közti távolság a legkisebb. Mindehhez a súlyvektorok távolságmátrixának kiszámítása és lépésről-lépésre történő frissítése szükséges. Mindazonáltal meg kell jegyeznünk, hogy az U-mátrix ábrázolási forma a csoportokra vonatkozó a priori információ felhasználása nélkül jön létre, éppen ezért, a vizuális megjelenítés alapján történő csoportképzés nem minden esetben eredményez megfelelő csoportokat. Valójában elmondhatjuk, hogy az U-mátrix ténylegesen segíthet a csoportok feltárásában, de ez elsősorban egy vizualizációs eszköz. A problémás esetek kikerülése végett javasolt az önszerveződő hálózatok ötvözése egy tradicionális (pl. k-átlag) csoportosító módszerrel oly módon, hogy a SOM tanítására ezt a kiegészítő módszert alkalmazzuk. Egy másik érdekes megközelítés szerint a SOM-ban található neuronok csoportosításhoz egy másik SOM felhasználása szükséges. Ez alapján az önszerveződő hálózatoknak egy hierarchikus szerkezete alakul ki, ahol az alacsonyabb hierarchia szinteken szereplő önszerveződő térképek előkészítő szereppel bírnak a magasabb hierarchiaszinten szereplő SOM-ok kialakításában. Szerkezetük alapján az ilyen jellegű struktúrát hierarchikus SOM-nak nevezzük. A hierarchikus önszerveződő hálózatokról bővebb információt a [66] irodalomban, a csoportosításban történő alkalmazásukról pedig a [67] irodalomban találhatunk Egyéb csoportosítási módszerek, algoritmusok Természetesen csoportosításokat nem csak az előző alfejezetekben ismertetett módszerek, algoritmusok által lehet elvégezni. A csoportosítási folyamatok megvalósításához számos egyéb lehetőség áll az adatelemzők rendelkezésére. Így például sűrűség alapú, rács alapú, modell alapú megközelítéssel is találkozhatunk a szakirodalomban, azonban ezen módszerek részletes ismertetése meghaladja ezen könyv kereteit. Jelen fejezetben csupán a leggyakrabban használt módszerek ismertetésére vállalkoztunk. Azon kedves Olvasónak, aki a további módszerekbe is szeretne némi bepillantást nyerni, ajánljuk a [68] és [56] irodalmakat. Mielőtt azonban rátérnék a módszerek gyakorlati alkalmazásának bemutatására, a következőkben tekintsünk még át röviden néhány olyan algoritmust, amelyet a 4.9. alfejezetben ismertetett szoftverek is használnak. Az EM (Expectation Maximization) csoportosító algoritmus tekinthető a k-átlag módszer fuzzy csoportok irányába történő kiegészítésének. Az EM gyakorlatilag két téren különbözik a k-átlag módszertől. Egyrészt az objektumokat nem kemény cso- 177
186 4.8. EGYÉB CSOPORTOSÍTÁSI MÓDSZEREK, ALGORITMUSOK portosítással rendeli az egyes csoportokhoz, hanem minden objektum és minden klaszter párosításához egy tagsági mértéket határoz meg. Másrészt a k-átlagtól eltérően az EM algoritmus alkalmas folytonos és kategorikus adatok kezelésére is. Az EM algoritmus statisztikai alapon határozza meg a kialakítandó csoportok számát, ugyanakkor azzal a feltételezéssel él, hogy az attribútumok függetlenek egymástól. Az algoritmus működése két fő lépésre tagolható. Első lépésben az egyes elemek csoportokba való tartozásának mértéke kerül meghatározásra, majd a második lépésben az algoritmus az aktuális fuzzy hozzárendelések alapján az egyes csoportokra jellemző keverék eloszlásmodellekkel (általában kevert Gauss modellek) dolgozik. Ezen lépés során az EM algoritmus az egyes csoportok eloszlását határozza meg a keverék modellek alapján, s célja az adatpontok és a csoportokra jellemző keverék modellek hasonlóságának maximalizálása. Az algoritmus részletes ismertetését többek között McLachlan és Krishnan [69] művében olvashatjuk. A COBWEB egy modell alapú növekményes algoritmus, amely lépésről-lépésre rendeli hozzá az egyes objektumokat a meglévő osztályokhoz, illetve speciális esetben új osztályt hoz létre számukra. Az algoritmus működése során egy osztályozási fán dolgozik, melynek minden egyes csomópontjában egy valószínűségi értékekkel megadott fogalom (csoport) helyezkedik el. A fa gyökere a teljes adathalmazt reprezentálja. Az osztályozási fa azonos szintjén elhelyezkedő csúcsokat együttesen partíciónak nevezzük. Az algoritmus kezdetén az osztályozási fa csak a gyökeret tartalmazza, majd az egyes objektumok hozzáadása, illetve strukturális módosítások által folyamatosan növekszik, változik. Az algoritmus egy soron következő lépés során a következő négy lehetőség közül választ: az új objektum beillesztése egy meglévő csúcsba; a vizsgált objektum részére történő új csúcs létrehozása; egy meglévő csúcs szétbontása; két csúcs egyesítése. A fenti lehetőségek közül az algoritmus a kategóriahasznosság (Category Utility, CU) mértéke alapján választja ki, majd hajtja végre a legmegfelelőbb lépést. A kategóriahasznosság értéke meghatározza, hogy mennyivel több attribútum értéket tudunk megbecsülni a partíció ismeretében, mint ezen ismeret hiányában. A kategóriahasznosság a {C 1,C 2,...,C n } partícióra a következőképpen számítható ki: CU ({C 1,C 2,...,C n }) = n P(C k ) k=1 [ i j P(A i = V i j C k ) 2 i n ] P(A i = V i j ) 2 j (4.51) Látható, hogy a kategóriahasznosság értékének kiszámítása az a posteriori és az a priori valószínűségek alapján történik, ahol C k a partíció egy fogalmát, A i egy attribútumot és V i j az A i attribútum összes lehetséges értékét jelöli. A COBWEB algoritmus részletesebb leírását a [70] irodalomban találhatjuk meg. 178 Miután áttekintettük a leggyakrabban használt csoportosítási módszereket és algo-
187 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) ritmusokat, térjünk át az eddig megismert módszerek gyakorlati alkalmazására Gyakorlati alkalmazások szoftveres megvalósításai A következőkben néhány csoportosításra alkalmas szoftvert vizsgálunk meg olyan szempontból, hogy milyen lehetőségeket kínálnak a felhasználók számára. Meg kell jegyeznünk, hogy a számos lehetséges szoftver közül csupán néhányat emelünk ki, de már ezen pár szoftver esetében is érdekes megfigyelni, hogy ugyanazon feladatokat a különféle alkalmazások miként valósítják meg. Az egyes szoftverek bemutatása során az IRIS adatsort használjuk, melyről részletes információ található az??. fejezetben Csoportosítás a WEKA program használatával Mint már a korábbi fejezetekben is olvashattuk, a WEKA egy ingyenesen használható szoftver, amely számos egyéb adatelőkészítő és adatbányászó funkciója mellett alkalmas csoportosítási feladatok megvalósítására is. A WEKA jelenleg aktuális verziójában (3.4.5-ös verzió) öt csoportosítási algoritmust implementáltak, melyek a következők: Cobweb, EM, FarthestFirst, MakeDensityBasedClusterer és a SimpleKMeans. A SimpleKMeans csoportosítás a k-átlag csoportosításnak feleltethető meg, a Cobweb és EM módszerek pedig a fejezet korábbi részeiben ismertetett algoritmusokat takarják. A program által felkínált FarthestFirst módszer a Hochbaum és Shmoys által javasolt Farthest first traversal algorithm implementálása, melyről részletesen a [71] irodalomban olvashatunk. A MakeDensityBasedClusterer csoportosító algoritmus minden egyes lépésben minden objektumhoz egy tagsági értékeket becsül meg az adatpontok sűrűsége és eloszlása alapján. Tekintsük most át egy konkrét csoportosítási feladat végrehajtásával a WEKA által biztosított lehetőségeket! Példaalkalmazásunkban a jól ismert iris adatsor objektumait használjuk, s a csoportosítást a SimpleKMeans módszer alkalmazásával végezzük el. Egy egyszerű csoportosítási feladat végrehajtásához természetesen először el kell végeznünk a megfelelő adatelőkészítési műveleteket, ami jelen alkalmazás esetében kizárólag az iris.arff fájl betöltését jelenti. Ezt követően munkánk többi részét a WEKA Explorer Cluster kartonlapján végezhetjük el. Az első kulcslépés az alkalmazandó módszer kiválasztása, amely mint már említettük, jelen esetben a SimpleKMeans metódus lesz. A módszer kiválasztása után lehetőségünk van a kapcsolódó paraméterek megadására is, amelyre a kiválasztott módszer gyorsmenüjében nyílik lehetőségünk. A különböző módszerek természetesen különböző paraméterbeállításokat tesznek lehetővé. A SimpleKMeans esetében megadhatjuk a kialakítandó csoportok számát (numclusters), valamint a kezdő centroidok kiválasztását befolyásoló véletlen számot (seed). A WEKA ezen számot alapul véve véletlenszerűen választja ki a csoportok kezdő centroidjait. Tehát amennyiben más és más 179
188 4.9. GYAKORLATI ALKALMAZÁSOK SZOFTVERES MEGVALÓSÍTÁSAI számértéket adunk ennek a paraméternek, akkor más és más centroidokból indul ki az algoritmus. Jelen esetben a keresett csoportok száma előismereteink alapján legyen 3, s a véletlen számgenerátor esetében hagyjuk meg az alapértelmezett 10-es értéket. A klaszterezést végrehajthatjuk egy tanító adathalmazon is, illetve amennyiben a csoportosítási módszer eredményét egy elvárt eredménnyel szeretnénk összevetni, akkor erre különféle lehetőségeink nyílnak. Jelen esetben érdemes a Classes to clusters evaluation módszert választanunk, amely a csoportosítás eredményének kiértékelését egy attribútumban megadott csoportcímke alapján végzi el. A csoportosítási módok megválasztásakor bizonyos módszerek esetében (pl. EM módszer) az előbbi lehetőség mellett alkalmunk nyílik még az eredmény kiértékelésére teszt adathalmaz (Supplied test set) és az eredeti adathalmaz százalékos megosztása (Percentage split) alapján is. A csoportosítási mód megválasztása mellett definiálnunk kell a csoportosításhoz felhasznált attribútumok listáját. Alapértelmezettként a WEKA a bemeneti adatfájl minden attribútumát figyelembe veszi, ezért ezzel a problémával csak akkor kell foglalkoznunk, ha a csoportosításból valamely tulajdonságot vagy tulajdonságokat ki szeretnénk zárni. Így van ez jelen esetben is, hiszen az iris.arff fájl tartalmazza az ismert osztálycímkéket is (amelyek most gyakorlatilag a keresett csoportjainknak felelnek meg), ezért ezen attribútumot ki kell zárnunk a csoportosításból. Miután az előkészületekkel készen is vagyunk, futtathatjuk a kiválasztott algoritmusunkat, melynek eredményét a 4.12 ábra szemlélteti. Ebben az eredményablakban leolvashatjuk az egyes csoportok középpontjának koordinátáit, a csoportokra jellemző átlagos szórás értékeket és egész csoportosításra jellemző négyzetes hibaösszeget is. Láthatjuk, hogy a rendszer az egyes csoportokba 61, 50, illetve 39 objektumot sorolt be, ami a példát ismerve azt sejteti, hogy a csoportosítás nem tökéletes. A rendszer az osztálycímkék ismeretében megadja a tévesztési mátrixot is, amelyből láthatjuk, hogy az iris-virginica csoport kialakítása felel meg legkevésbé az előzetes elvárásoknak. Az algoritmus ilyen paraméterekkel történő futtatása 17 objektum esetében eredményezett rossz csoportosítást, amely 11, 33%-os tévesztési aránynak felel meg. Az eredménylistában lehetőségünk nyílik az egyes csoportosítási eredmények grafikus áttekintésére is. A rendszer lehetőséget biztosít az adatpontok scatterplot megjelenítésére, mely során a kiválasztott két attribútum által meghatározott kétdimenziós térben ábrázolja az egyes csoportobjektumok elhelyezkedését. Egy ilyen lehetséges ábrázolást mutat be a ábra. Az eredmények kiértékelésekor láthatjuk, hogy a csoportosítás nem az általunk elvárt eredményt hozta. A csoportosítás eredménye SimpleKMeans módszer esetében nagymértékben függ a kiindulási centroidok meghatározásától, ezért javasolt az algoritmus többszöri futtatása oly módon, hogy a véletlenszám-generátor részére meghatározott paraméter értékét folyamatosan változtatjuk. Az eredményül kapott csoportosítások közül azt érdemes végeredménynek tekinteni (főként akkor, ha csak tréning adathalmazzal dolgozunk), amelynél a négyzetes 180
189 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) ábra. A WEKA rendszerben végzett csoportosítás eredménye ábra. Eredmények grafikus megjelenítése 181
190 4.9. GYAKORLATI ALKALMAZÁSOK SZOFTVERES MEGVALÓSÍTÁSAI hibaösszeg a legkisebb Csoportosítás a Hierarchical Clustering Explorer használatával A Hierarchical Clustering Explorer (HCE) egy rendkívül hatékony szoftver, amely a vizsgált objektumok különféle módon történő egyesítő hierarchikus csoportosítását teszi lehetővé. A szoftver aktuális verziója (HCE 3.0) számos vizuális lehetőséget kínál a felhasználónak az adatok és az eredmény részletes elemzéséhez. A HCE szabadon letölthető akadémiai és kutatási célokra a honlapról. A Hierarchical Clustering Explorer kategorikus és folytonos értékek kezelésére is alkalmas. A csoportosítás alapját adó tulajdonságértékeket, az attribútumok nevét és listáját a felhasználónak egy könnyen elkészíthető txt fájlban kell definiálnia. Az alkalmazás bemutatására jelen esetben is az IRIS adatsort használjuk, melynek HCE számára előkészített formája az irishce.txt fájlban letölthető a könyv weboldaláról. A felhasználónak az adatsor betöltése során lehetősége nyílik a rendelkezésre álló adatokat bizonyos szempontok alapján szűrni, illetve némely adattranszformációs lépést (normalizáció és logaritmikus transzformáció) is elvégezhet. Az adatok betöltését követően a csoportosítási paraméterek beállítása következik. Ennek kapcsán a felhasználó megadhatja, hogy a rendszer mely attribútumokat vegye figyelembe a csoportosítás során, definiálhatja a csoportok közti távolság kiszámításának módját, illetve megadhatja a hasonlóság/különbözőség mértékének számítási módszerét is. A HCE 3.0-ban a csoportok közti távolságok kiszámításához az alábbi lehetőségek közül választhatunk: egyszerű kapcsolódás, teljes kapcsolódás, átlagos kapcsolódás, centroid kapcsolódás, medián kapcsolódás és Shneiderman-féle 1-ről az 1-re kapcsolódás (Shneiderman s 1by1 linkage). A szoftverben speciálisan használt Shneidermanféle 1-ről az 1-re kapcsolódás módszerének használata esetén a rendszer a következő iterációs lépésben nem minden esetben a két legközelebbi csoportot kapcsolja össze, hanem elsősorban az utolsó lépésben létrehozott új csoport méretének kiterjesztésére törekszik. A módszer formálisan a következőképpen írható le. Legyen C n 1 az utolsó lépésben újonnan egyesített csoport. Legyen C m a C n 1 -hez legközelebbi klaszter, C p a C m -hez legközelebbi klaszter és ε egy tetszőleges küszöbérték. Amennyiben a 4.52 logikai formula igaz értéket vesz fel, akkor az algoritmus nem a két legközelebb álló csoportot egyesíti, hanem C n 1 és C m csoportok összevonását hajtja végre. d (C n 1,C m ) d (C m C p ) < ε (4.52) A csoportok távolságának kiszámításához használt különbözőségi mérték számítási módját szintén a felhasználó határozhatja meg. Ezen távolságszámítási módszerek a következők lehetnek: Euklideszi távolság, Manhattan távolság, Pearson korrelációs 182
191 4. FEJEZET: CSOPORTOSÍTÁS (KLASZTEREZÉS) együttható, egyszerű egyezés. Amennyiben a felhasználó ettől eltérő hasonlóság, illetve különbözőség számítási módszert szeretne alkalmazni, akkor erre is lehetősége nyílik egy más forrásból származó hasonlósági mátrix betöltése által. A példaalkalmazás bemutatásához jelen esetben az Euklideszi távolságok alapján számított centroid kapcsolódás módszerét választottuk, illetve mivel az irishce.txt példafájl tartalmazza az osztálycímkéket is, ezért ezt az attribútumot természetesen kizártuk a csoportosításból. A HCE a csoportosítás eredményét dendrogramon szemlélteti. A dendrogram leveleinél az objektumok találhatók, mely objektumok tulajdonságértékeit a szoftver ún. szín mozaikon ábrázolja. A szín mozaik egy grafikus megjelenítése a tulajdonságértékeknek oly módon, hogy az egyes tulajdonságértékekhez a rendszer különféle színeket rendel. Ezáltal a felhasználó ránézésre, a konkrét érték ismerete nélkül is el tudja dönteni, hogy két objektum egy adott tulajdonságon milyen mértékben különbözik egymástól. Természetesen a vizuális megjelenítés mellett a felhasználó az egyes tulajdonságok konkrét értékeit is megtekintheti (az objektumok felett mozgatva az egeret). A dendrogramon az ún. minimális hasonlósági korlát mozgatásával a felhasználónak lehetősége nyílik arra, hogy vágási szinteket határozzon meg. A vágási szintek beállításához a rendszer információt szolgáltat az aktuális vágáshoz tartozó csoportok számáról, a csoportok közti minimális hasonlóság aktuális értékéről, valamint arról is, hogy hány objektum került a csoportokba, illetve hány kívülálló objektum található az aktuális csoportosítás mellett. Mindemellett a felhasználó az Evaluation kartonlapon tájékozódhat a csoportokon belüli, illetve csoportok közti átlagos távolság értékéről is. A fenti paraméterek beállításával elvégzett csoportosítás eredményét szemléltető dendrogramot, a hozzá kapcsolódó szín mozaikot jelmagyarázattal együtt, illetve egy lehetséges vágási szintet a ábra mutatja be: Az ábráról leolvashatjuk, hogy választott vágási szint mellett 3 csoport jött létre, köztük a minimális hasonlóság 0,819, és jelen értékek mellett a rendszer 1 objektumot nem sorolt be egyetlen egy csoportba sem. Érdekes lehetőség a HCE 3.0-ban, hogy a rendszer egyidejűleg képes ugyanazon objektumok különféle csoportosítására is. Ebben az esetben két eltérő csoportosítási módot határozhatunk meg, s az eredményablakban mindkét dendrogram megjelenik, melyeken nyomon követhetők, hogy az egyes objektumok a két csoportosítást tekintve hol, melyik csoportba tartoznak, illetve az azonos csoportok közti hasonlósági szinthez tartozó vágások milyen eltérő eredményekhez vezetnek. Mint már említettük, a Hierarchical Clustering Explorer számos grafikus lehetőséget biztosít az adatok és az eredmény részletes áttekintésére. A felhasználónak lehetősége nyílik az adatokat táblázatos, scatterplot formában megtekinteni, illetve az egyes tulajdonságértékek áttekintésére használhat doboz diagramot is. Bár, mint a HCE neve is mutatja, az alkalmazás elsősorban hierarchikus csoportosítás elvégzésére alkalmas, a fejlesztők mintegy kiegészítésképpen beépítették a szoft- 183
192 4.9. GYAKORLATI ALKALMAZÁSOK SZOFTVERES MEGVALÓSÍTÁSAI ábra. A HCE 3.0 eredményablaka verbe a k-átlag csoportosítási módszert is. Következményképpen a felhasználó a csoportosítást a k-átlag módszerrel is elvégezheti, illetve lehetősége nyílik ezen eredmény és a rendszer által támogatott tetszőleges hierarchikus csoportosítási eredmény összehasonlítására is. 184
193 5. fejezet Osztályozási feladatok Az osztályozás az adatbányászat egyik leggyakrabban alkalmazott és legnagyobb szakirodalommal rendelkező területe. A fejezet célja, hogy ismert és jól használható módszereket adjon az osztályozási feladatok megoldására. Ennek megfelelően részletesen tárgyaljuk majd a döntési fák generálását, a Bayes-modellen és a k-legközelebbi szomszédon alapuló osztályozási technikákat. Minden esetben kidolgozott példákkal segítjük az alapvető elvek könnyebb megértését. Az egyes módszerek bemutatása után az adatbányászat talán legkényesebb kérdését, az osztályozási modellek értékelését tárgyaljuk. Továbbá a fejezetet színesíti egy rövid esettanulmány is, melyet a DSS Consulting Kft. bocsátott rendelkezésünkre, a lehetséges alkalmazási területek illusztrálásaként Mik az osztályozási feladatok? Az 1. fejezetben már említettük, hogy az adatbányászat két fő feladata, hogy 1. a meglévő adatok alapján a különböző jelenségeket minél jobban le tudjuk írni (modellezés), illetve 2. előre tudjuk jelezni az egyes jelenségek jövőbeli viselkedését. Az osztályozás éppen ezért az adatbányászat egyik legfontosabb és legjobban használható formája, hiszen nem csak jelenségek leírására, hanem előrejelzésre is használható. Az osztályozási feladatoknál a különböző mintákat előre definiált osztályokba soroljuk. Azaz az osztályozás egy olyan összefüggés tanulását takarja, amely alkalmas arra, hogy az ismert változók alapján az adatbázisban szereplő egyes minta elemeket (rekordokat) osztályokba sorolja. Az előre definiált osztályokat annak az attribútumnak az értékei határozzák meg, mely értékek szerint adatainkat osztályozni szeretnénk. Ezt 185
194 5.1. MIK AZ OSZTÁLYOZÁSI FELADATOK? a kiválasztott attribútumot, vagy más néven ismérvet (változót) osztálycímkének nevezzük. Az osztálycímke mindig kategorikus, azaz véges számú különböző értéket vehet fel. Az olvasó számára a csoportosítás és az osztályozás első hallásra nagyon hasonlónak, szinte azonosnak tűnhet. Ez nem meglepő, hiszen a köznapi szóhasználatban e két szó szinte szinonimaként szerepel. Fontos megemlíteni azonban, hogy az adatbányászat területén két, egymástól eltérő módszerről van szó. Az osztályozás jellemzője, hogy megadjuk azt az ismérvet (osztálycímke), amely alapján szeretnénk megkülönböztetni az egyes mintákat (rekordokat). Az osztálycímke kiválasztásával előre meghatározzuk azt, hogy összesen hány darab osztály van, hiszen tudjuk, hogy az osztálycímke kategorikus. Tehát ismertek az osztályok, és azt szeretnénk tudni, melyik minta (rekord) melyik osztályba tartozik. Például, ha az osztálycímke az egyes ügyfelek hitelképessége, akkor ez azt jelenti, hogy az ügyfeleket hitelképességük alapján szeretnénk osztályozni. A kapott osztályozási modell segítségével olyan kérdésekre kaphatunk választ, mint például, hogy mi jellemzi a jó hitelképességű ügyfeleket (leíró modellezés) vagy például egy új ügyfél a hitel visszafizetés szempontjából jó ügyfél lesz-e vagy sem (előrejelzés). Erre természetesen az ügyfél ismert tulajdonságai alapján tudunk következtetni. Az adatok csoportosításánál (klaszterezés) viszont nem ismerjük előre a csoportokat, sőt gyakran azt sem tudjuk, hány csoport jellemzi az adatokat. A klaszterezés tulajdonképpen olyan osztályozást jelent, ahol ismeretlen az osztálycímke. A feladat pedig az, hogy az ismert adatok alapján jellemző csoportokat tudjunk megkülönböztetni. Az egyik legismertebb példa az ügyfélszegmentáció, amikor is arra vagyunk kíváncsiak, hogy az ügyfeleket milyen tipikus csoportokba tudjuk besorolni jellemző tulajdonságaik alapján. Esetlegesen megadjuk azt is, hogy hány csoportot szeretnénk létrehozni. Ennek megfelelően az osztályozást felügyelt, a csoportosítást felügyelet nélküli tanulásnak is szokás nevezni. Az osztályozási modell felügyelet alatt áll olyan értelemben, hogy a modell tanítása során pontosan tudjuk, hogy az egyes tanuló minták melyik osztályba tartoznak. Ezzel ellentétben a csoportosításnál nem ismertek előre a csoportok. Öszszefoglalva tehát a csoportosítást adataink szegmentálására, míg az osztályozást előre meghatározott attribútum szerinti osztályozásra és előrejelzésre használhatjuk. Az osztályozás alapelve tehát, hogy az egyes mintákat az ismert vagy előrejelzett osztálycímke értékek szerint sorolhatjuk különböző osztályokba. Ez azt is jelenti, hogy az osztályozási feladatok minden esetben visszavezethetőek valamilyen szeparációs problémára. Egyszerűen a mintákat az ismert változók értékei alapján ábrázoljuk, és az osztálycímke értékeknek megfelelően megpróbáljuk őket elválasztani. Ennek szemléltetésére tekintsük a következő példát. 186
195 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK Kor (év) Jövedelem (eft/hó) Vásárol Nem Nem Nem táblázat. Példa adatok osztályozáshoz 5.1. ábra. A példa adatok ábrázolása 5.2. ábra. Egyszerű lineáris szeparáció 5.1. Példa. Az 5.1. táblázatban rendelkezésre álló adatokat szeretnénk osztályozni. Osztálycímkének a Vásárol attribútumot választjuk, ami azt jelenti, hogy az adott ügyfél megvásárol-e egy bizonyos terméket vagy sem. Ez az ismérv kétféle értéket vehet fel: igen vagy nem. Az osztálycímke mellett csupán két attribútum kor és jövedelem szerepel még a példában a könnyebb, kétdimenziós ábrázolás érdekében. Az adatokat az osztálycímke értékétől függően ábrázoltuk az 5.1. ábrán. Azokat a személyeket, akik megvásárolták a terméket, üres, a többieket pedig egy-egy kitöltött körrel tüntettük fel. A legegyszerűbb esetben lineáris szeparációval osztályozhatunk. Ez azt jelenti, hogy az egyes mintákat egy egyenessel választjuk el úgy, hogy a létrejövő két osztály minél homogénebb legyen az osztálycímke értékeket tekintve. Az 5.2. ábrának megfelelően a következő szabályszerűséget írhatjuk fel: Ha (Kor > 40), akkor Vásárol = Igen 187
196 5.1. MIK AZ OSZTÁLYOZÁSI FELADATOK? 5.3. ábra. Szakaszonként lineáris szeparáció 5.4. ábra. Optimális osztályozás Az ilyen és ehhez hasonló szabályokat osztályozási szabályoknak nevezzük. Az előző felosztást tekintve látható, hogy ennél pontosabb osztályozást is kaphatunk, ha az elválasztást az 5.3. ábrának megfelelően szakaszonként lineáris szeparációval végezzük el. Ez esetben a következő osztályozási szabályokhoz juthatunk: Ha (Kor > 40) ÉS (Jövedelem>120000), akkor Vásárol = Igen Ha (Kor < 40) VAGY (Jövedelem<120000), akkor Vásárol = Nem A példa adataink tökéletes osztályozásához pedig valamilyen bonyolultabb görbére van szükségünk. Az 5.4. ábrán a rendelkezésre álló minták egy lehetséges szeparációját láthatjuk, amely optimális osztályozást eredményez. Ennél az egyszerű példánál is tapasztalhatjuk, hogy az egyes mintákat annál pontosabban tudjuk osztályozni, minél komplexebb a mintákat elválasztó görbe, vagy magasabb dimenziószám esetén az n dimenziós elválasztó felület. Az osztályozási feladatok során tehát az egyes mintákat valamilyen módon szeparáljuk, így az osztályozás alkalmazásával lehetséges megállapítani, hogy a rendelkezésre álló paraméterek miként határozzák meg azt, hogy az adott elem melyik osztályba tartozik. Ennek eredményét tudjuk megfogalmazni osztályozási szabályok formájában. Az osztályozás során célunk az, hogy a különféle módszerek segítségével olyan osztályozási szabályokat állítsunk fel, melyek a lehető legpontosabban szeparálják adatainkat a megfelelő osztályokba. Ezáltal, ha ismert az osztálycímke, akkor le tudjuk írni, miért 188
197 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK is került a minta az adott osztályba, ismeretlen osztálycímke esetén pedig előre tudjuk jelezni, hogy az adott minta melyik osztályba fog kerülni. A gyakorlatban számos helyen használunk különféle osztályozási módszereket, algoritmusokat mind leíró, mind prediktív típusú adatbányászati feladatok megoldása során. A következőkben felsorolunk néhány lehetséges gyakorlati alkalmazást, ahol osztályozással találkozhatunk. Ezek a problémák osztályozási feladatként is értelmezhetőek. Például egy vállalat ismeri a vásárlóinak bizonyos jellemzőit (nem, kor, jövedelem). Ezeket a vásárlókat három osztályba osztja úgy, mint kis, közepes és nagy fogyasztó. Ebben az esetben az osztályozás segítségével megállapíthatjuk, milyen paraméterek határozzák meg azt, hogy egy adott fogyasztó melyik osztályba tartozik. Ezáltal előre jelezhető az is, hogy egy új ügyfél nagy valószínűséggel melyik osztályba fog tartozni. Továbbá a vállalat ki tudja választani a potenciális ügyfelek azon célcsoportját, akik majd várhatóan nagyfogyasztók lesznek. Ezután őket célozza meg direkt marketinggel, hogy legyenek a cég ügyfelei. Az osztályozás felhasználható például adócsalás vagy biztosítási csalás felderítésére is. Az APEH például az ügyfelek adatai alapján osztályozási szabályokat tárhat fel annak érdekében, hogy könnyebben megtalálja a potenciális adócsalókat. Hasonló jól ismert példa a hitelkockázat becslése is. Egy pénzintézet felépíthet egy olyan modellt, melynek segítségével osztályozni tudja az ügyfeleket a hitelfolyósítás kockázatának függvényében. A modell felhasználásával az új ügyfelek esetén a pénzintézet mérlegelni tud, folyósítja-e a hitelt vagy sem. A felsoroltak mellett az osztályozás számos további alkalmazása lehetséges. Például: ügyfélmegtartás modellezése és lojalitásnövelés (ld. 10. fejezet), kéretlen levelek osztályozása és kiszűrése, biztosítási kockázatbecslés és díjszabás kialakítása, hálózati betörés detektálása, meghibásodás bekövetkezésének előrejelzése stb. Az osztályozási módszerek néhány speciális és napjainkban rendkívül dinamikusan fejlődő alkalmazási területével szövegbányászat, orvosi alkalmazások, weblog elemzés a könyv egy-egy fejezete részletesen foglalkozik. A fejezet további részében az adatbányászatban leggyakrabban alkalmazott osztályozási módszereket ismertetjük, kidolgozott példákkal segítve a könnyebb megértést Az osztályozási módszerekről Az elmúlt évek során számos osztályozási módszer látott napvilágot. Ezek alapját szinte kivétel nélkül valamilyen gépi tanulási vagy statisztikai módszer képezi. Az osztályozási technikákat alapvetően két csoportba oszthatjuk: modellalapú (paraméteres) eljárások modell független (nem paraméteres) eljárások 189
198 5.1. MIK AZ OSZTÁLYOZÁSI FELADATOK? A modellalapú módszerek csoportjába tartozik a legtöbb osztályozási módszer. Például a döntési fákat generáló algoritmusok és a Bayes-modell alapú osztályozás is. A nem paraméteres eljárások közül a legismertebb a k-legközelebbi szomszéd elvén alapuló osztályozás. Az itt felsorolt osztályozási technikákat a fejezetben részletesen tárgyaljuk. Ezen népszerű módszerek mellett számos adatbányászati technika létezik még, melyeket használhatunk osztályozási feladatok megoldására. Ezek közül a nemlineáris regressziót és a neurális hálókat a következő fejezetben ismertetjük. Általánosságban elmondható, hogy a modell alapú osztályozási módszereket akkor tudjuk hatékonyan alkalmazni, ha az osztályokat jól el tudjuk egymástól határolni, azaz az egyes osztályokba tartozó minták az n dimenziós térben egy-egy középpont körül csoportosulnak. Ha viszont a minták szabálytalan alakban rendeződnek, akkor a nem paraméteres módszerek jobb eredményre vezethetnek. A továbbiakban felsorolunk néhány tulajdonságot, melyek alapján össze lehet hasonlítani a különféle osztályozási módszereket és a módszerek által előállítható modelleket. Ezek a jellemzők nem fontossági sorrendben következnek, hiszen azt mindig az adott alkalmazás dönti el, hogy mit tartunk fontosnak és mit kevésbé. Pontosság: Az osztályozási modellek talán legfontosabb tulajdonsága a becslési pontosság, ezzel részletesen az 5.5. részben foglalkozunk. Értelmezhetőség: alatt azt értjük, hogy a kapott modell összefüggései az emberek számára mennyire érthetőek. Más megfogalmazásban az értelmezhetőség a modellben rejlő tudás kinyerésének nehézségét jellemzi. Robosztusság: Egy osztályozási modellt akkor nevezünk robosztusnak, ha még gyenge minőségű (zajos, hiányos) adatok mellett is képes elfogadható becslési pontosságot adni. Behangolási idő: Ez a paraméter azt tükrözi, hogy az osztályozási modellt milyen költségek mellett lehet felépíteni. Szokás még gyorsaságnak is nevezni. A skálázhatóság tulajdonsága pedig azt jelenti, hogy még nagy adathalmazok esetén is hatékonyan tudunk előállítani, értelmezni és alkalmazni osztályozási modelleket Az osztályozási feladatok lépései A számos osztályozási módszer mindegyikére igaz, hogy legalább két lépésből áll. 190 Az első lépés a modellkészítés vagy más néven szabálygenerálás. Először is meg kell határoznunk az osztálycímkét. Ez a gyakorlatban azt jelenti, hogy kiválasztunk egy attribútumot, melynek értékei szerint szeretnénk osztályozni adatainkat. Az osztálycímke kiválasztásával azzal a feltételezéssel élünk, hogy az attribútumok függnek az osztálycímkétől. Hiszen ha az egyes ismérvek függetlenek lennének az osztálycímkétől, akkor az új minták ismeretlen osztálycímkéjének értékét
199 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK 5.5. ábra. Az osztályozás lépései 191
200 5.1. MIK AZ OSZTÁLYOZÁSI FELADATOK? nem tudnánk előrejelezni. Ez az osztályozás alapvető feltételezése. Az osztálycímke kiválasztása után a modell elkészítéséhez, más néven betanításához az ún. tanuló mintákat használjuk fel. A tanuló minták a rendelkezésre álló adatok egy olyan részhalmazát jelentik, ahol minden egyes rekord esetén ismert az osztálycímke értéke. Ezekkel az adatokkal tanítjuk tehát a modellt valamilyen osztályozási algoritmus szerint. A kiválasztott osztályozási algoritmussal a tanuló minták függvényében egy osztályozási modellt készítünk el. Az így kapott modellt értelmezve az ún. osztályozási szabályokhoz jutunk. Az osztályozási szabályok egyszerű ha-akkor típusú szabályokként fogalmazhatóak meg úgy, hogy az osztálycímke értékét határozzuk meg a többi attribútum értékének függvényében. Például egy osztályozási szabály lehet a következő: ha valaki 40 év feletti és magas jövedelmű, akkor nem tartozik a potenciális adócsalók osztályához. A második lépés a modell ellenőrzése, melynek során az első lépésben elkészített modell pontosságát ellenőrizzük. A teszt minták esetén a tanuló mintákhoz hasonlóan szintén ismert az osztálycímke értéke. Ezért tudunk tesztelni, hiszen a teszt minták segítségével ellenőrizzük azt, hogy az osztályozási modell az egyes mintákat jó osztályokba sorolja-e, illetve milyen pontossággal tudja a mintákat helyes osztályokba sorolni. Pontosság alatt azt értjük, hogy az osztályozási modell a teszt halmaz elemeit milyen arányban tudta megfelelően osztályozni. A tanulás és tesztelés (validálás) iteratív folyamat, melynek során célunk az, hogy lépésről-lépésre növeljük a modell pontosságát, és eredményként egy, az alkalmazás szempontjából elfogadható pontosságú modellt kapjunk. Ezt a modellt szokás behangolt modell -nek is nevezni. Az ismert osztálycímkéjű mintákkal tudjuk tehát a modellt tanítani és tesztelni is. Létezik néhány jól ismert módszer, melynek segítségével ki tudjuk választani, hogy a minták közül melyekkel fogjuk tanítani, illetve tesztelni az osztályozási modellt. Ezeket a módszereket az részben ismertetjük. 192 A harmadik lépés a modell felhasználása. Ha a tanulás és tesztelés iteratív folyamataként rendelkezünk egy megfelelő pontosságú osztályozási modellel, akkor használhatjuk azt előrejelzésre is. Az osztályozás segítségével tett előrejelzés az új minta ismeretlen osztálycímkéjének meghatározását jelenti a többi, ismert attribútum értékének függvényében. Mivel az osztálycímke értéke kategorikus, ezért osztályozás segítségével kizárólag diszkrét, kategorikus értékek becslése végezhető el. Ha valamilyen folytonos értéket szeretnénk előrejelezni (pl. egy tőzsdeindex értékének előrejelzése), akkor valamilyen regressziós technikát alkalmazunk. A regressziós technikákat részletesen a következő fejezetben tárgyaljuk.
201 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK Egy osztályozási feladat végrehajtásának lehetséges lépéseit az 5.5. ábrán foglaltuk össze. Fontos megemlíteni, hogy a tesztelést nem minden esetben hajtjuk végre. Ennek oka lehet például az, hogy kevés adat áll rendelkezésre. Az osztályozási algoritmus segítségével ez esetben is készíthetünk modellt, azonban ennek minősége tesztelés hiányában gyenge lehet. Ha vannak teszt minták, akkor célszerű ellenőrizni a modell pontosságát. Az ehhez kapcsolódó technikákkal részletesen az 5.5. fejezetben foglalkozunk Döntési fák Az osztályozási feladatok esetén a legismertebb eszköz a döntési fa, illetve az e fát generáló algoritmusok. A döntési fa (ld. pl ábra) egy fa formájú folyamatábra, mely segítségével fentről lefele haladva sorozatos döntéseken keresztül juthatunk a megfelelő következtetésre. A gyökérből indulva a fa köztes csomópontjain egy-egy kérdés (teszt) szerepel, mely általában egy változóra vonatkozik. A kérdésre adott válaszok során egészen a fa valamelyik leveléig jutunk. Döntésünket ennek a levélnek a címkéje határozza meg, hiszen a döntési fa esetén a levelek az osztályok címkéit tartalmazzák. Egy ismeretlen osztálycímkéjű minta esetén a döntési fát könnyen használhatjuk előrejelzésre is, csupán az egyes csomópontokban szereplő kérdésekre kell válaszolnunk, és egy levélhez jutunk, melynek értéke megadja a kérdéses osztálycímke értékét. A döntési fákból könnyen nyerhetünk ha-akkor típusú osztályozási szabályokat. Ezen szabályok összességét szabálybázisnak nevezzük. Minden döntési fa egy szabálybázist határoz meg. A szabálybázis minden szabálya a fa gyökerétől egy-egy levél felé haladó útvonal alapján jön létre úgy, hogy a szabály feltételi részében a fa adott útvonalban szereplő csomópontjaiban lévő feltételeket ÉS kapcsolattal kombináljuk, míg a szabály következményi részét a fa adott levele definiálja. A döntési fa segítségével tehát egy bonyolultabb döntést egyszerű döntések sorozatára bonthatunk fel Példa. A fent leírtak világosabb bemutatása céljából tekintsünk egy örökké aktuális példát, az adócsalást. Mindannyian tudjuk, hogy a sok adót visszaigénylők jelentős részét behívja az APEH adategyeztetésre. Ennek oka, hogy köztük rejlenek meg a potenciális adócsalók. Bár az APEH is rendelkezik korszerű adattárház és adatbányászati technikákkal, mi csak tekintsük példaként az 5.2. táblázatban lévő mesterséges adatokat. A táblázat első sora azon attribútum megnevezéseket jelöli, melyek értékeit tartalmazza a táblázat. Ebben a példában a Visszatérítés, a Családi állapot, és az Adóköteles jövedelem változók a bemeneti attribútumok, míg az Adócsaló kimeneti attribútum, a diagnózis, melyet a bemeneti változók alapján fel kívánunk állítani. A táblázat a 193
202 5.2. DÖNTÉSI FÁK Eset Visszatérítés Családi állapot Adóköteles jövedelem Adócsaló 1 Igen Nem házas 2250eFt Nem 2 Nem Házas 2000eFt Nem 3 Nem Nem házas 1700eFt Nem 4 Igen Házas 2200eFt Nem 5 Nem Nem házas 1950eFt Igen 6 Nem Házas 1600eFt Nem 7 Igen Nem házas 3200eFt Nem 8 Nem Nem házas 1850eFt Igen 9 Nem Házas 1750eFt Nem 10 Nem Nem házas 1900eFt Igen 11 Igen Nem házas 3100eFt Nem 12 Nem Házas 1950eFt Nem 13 Igen Házas 1900eFt Nem 14 Igen Nem házas 1850eFt Igen 15 Nem Házas 2500eFt Nem 16 Nem Nem házas 1700eFt Nem 5.2. táblázat. Példa adattáblára második sorától a különböző eseteket (rekordokat) tartalmazza. Ezekből az adatokból az 5.6. ábrán látható döntési fát lehet előállítani. A példaként bemutatott döntési fa a következő négy szabályt definiálja: 1. Akinek kevés jövedelme van (kevesebb, mint 1.8MFt/év a példa kedvéért), nem adócsaló (nincs miért kockáztatni). 2. Aki nagyon jól keres (2MFt/év felett), az nem kockáztat. 3. Aki közepes jövedelemmel rendelkezik és házas, annak már rendezettek a pénzügyi dolgai. 4. Aki közepes jövedelemmel rendelkezik, és nem házas, úgy érzi, neki érdemes próbálkoznia. Az ilyen típusú szabályok és fák generálásnak módját részletesen az fejezetben tárgyaljuk. Megnézzük azt is, hogy az 5.2. táblázat adataiból hogyan jutottunk az 5.6. ábrán látható döntési fához. 194
203 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK 5.6. ábra. Adatokból generált döntési fa adócsalás felderítésére A példa kapcsán is láthatjuk, hogy a döntési fák egyik nagy előnye, hogy az osztályozási szabályok kinyerése és értelmezése még laikus számára is könnyen elvégezhető. Előrejelzés (prediktív modellezés) esetén pedig azt is láthatjuk, hogy mi alapján határozza meg az új minta osztálycímkéjének értékét a döntési fa, tehát hogy milyen szabályok vezetnek a végső döntéshez. A gyakorlatban sokszor a döntési fák egy speciális változatát, az ún. bináris döntési fákat használjuk. A bináris döntési fa egy olyan döntési fát jelent, ahol minden csomópontnak két gyermeke van. A bináris döntési fák használata nem jelent korlátozást, mivel tetszőleges nem bináris döntési fa (több mint kettő gyermek is lehetséges csomópontonként) egyszerűen átalakítható binárissá. Az 5.7. ábra az 5.6. ábrán bemutatott nem bináris döntési fa bináris változatát mutatja. A bináris döntési fák használata tovább egyszerűsíti a fa bejárását és a kinyert osztályozási szabályok értelmezését, hiszen a köztes csomópontokban szereplő kérdések vagylagosak (pl. házas vagy nem házas). A döntési fák népszerűségüket számos további előnyös tulajdonságuknak köszönhetik. Ezek közé tartozik a skálázhatóság, ami az jelenti, hogy nagyszámú adatminta esetén is hatékonyan alkalmazhatunk döntési fákat. Továbbá előnyös az is, hogy a döntési fákat generáló algoritmusok automatikusan felismerik a lényeges változókat. Ez annyit jelent, hogy a fontos változókat a gyökérhez közel, a kevésbé fontosakat pedig a levelekhez közelebb teszteli a döntési fa. Ezáltal ki tudjuk választani az adott kérdés szempontjából releváns változókat. Előfordulhat az is, hogy bizonyos változók nem is szerepelnek a döntési fában. Ez azt jelenti, hogy az adott döntés szempontjából a 195
204 5.2. DÖNTÉSI FÁK 5.7. ábra. Nem bináris döntési fa átalakítása binárissá változó értékéből nem nyerhető információ, illetve a többi változó értékének ismerete elegendő a döntési fa felépítéséhez Döntési fák elkészítése A döntési fák elkészítése két lépésből áll. 196 Az első lépés a fa konstruálása. Kezdetben az összes minta (adatpont) a fa gyökeréhez tartozik. A fa generálása egy partíciós folyamat, mely az egyes csomópontokban rekurzív módon osztja fel egy-egy megfelelően kiválasztott jellemző változó mentén az adatok halmazát. Minden csomópontban olyan kérdést teszünk fel, mely az adott csomóponthoz tartozó adatpontokat úgy osztja fel, hogy a következő szinten az adatok homogenitása növekedjen. A rekurzív felosztás akkor fejeződik be, ha a következő feltételek közül legalább egy teljesül: 1. egy csomópontba tartozó minták közül mindegyik azonos osztályba tartozik 2. nincs már több változó, ami alapján tovább tudnánk osztani az adatokat 3. már az összes adatpontot osztályba soroltuk (a keletkezett csomóponthoz nem tartozik adatpont) 4. a döntési fa mélysége elért egy előre meghatározott maximális értéket
205 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK 5.8. ábra. Az S adathalmaz entrópiája A fa generálásának a második lépése a fa tisztítása. részletesen az fejezetben tárgyaljuk. A döntési fák tisztítását A fa építésével kapcsolatban már csak egyetlen megválaszolatlan, ámde a leglényegesebb kérdés maradt. Miként választjuk ki, hogy az adott csomópontban mely változó alapján végezzük az adatok felosztását (azaz a tesztet)? E kérdésre két elterjedt válasz van. Az információnyereség elve alapján vagy az ún. Gini index alapján. Ezeket az elveket a következő két részben részletesen tárgyaljuk Az információnyereség elve A könnyebb megértés érdekében tételezzük fel, hogy egy S adathalmazt pozitív, P, és negatív, N, címkével ellátott osztályokba szeretnénk sorolni. Tehát most csupán két értéket vehessen fel az osztálycímke. A pozitív minták (P) arányát jelölje p +, míg p a negatív mintákét (N). Például ha piros és kék golyókat akarunk szétválogatni, akkor célszerű p + -al jelölni a piros golyók arányát. Azaz, ha p + = 0.3 (30% - kék golyók), akkor p = 0.7 (70% piros golyók). Az S adathalmaz entrópiája az S tisztátalanságát (rendezetlenségét) jelöli, melyet a következő képlet szerint számítunk ki: I(S) = (p + log 2 p + + p log 2 p ) (5.1) E képlet az információelmélet szerint a minták szétválogatásához szükséges kód hosszával arányos. Egy p valószínűségű üzenet kódolásához optimálisan log 2 (p) bit szükséges, de számunkra elegendő az, ha tudjuk, hogy ez az összefüggés egy jól értelmezhető függvényt definiál, melynek maximuma 0.5-nél van, azaz ott, ahol a pozitív és a negatív minták száma az adott S adathalmazban megegyezik. 197
206 5.2. DÖNTÉSI FÁK 5.9. ábra. Példa jellemző változó kiválasztására Tételezzük fel, hogy van egy változónk (attribútumunk), A, mely szerint a mintákat S 1,S 2,...,S v halmazokba tudjuk osztani (particionálni). Lehet ez az attribútum például a kívánt golyók mérete, mely szerint lehet kis, közepes és nagy méretű golyó. Ha S i p i mintát tartalmaz a P, és n i mintát az N esetekből, akkor a várható információmennyiség ahhoz, hogy e mintákat osztályba soroljuk, a következő összefüggéssel adható meg: E(A) = v i=0 p i + n i p + n I(p i,n i ) (5.2) Az A csomópontban lévő teszt információnyereségét pedig a következő képlet alapján számoljuk: G(A) = I(p,n) E(A) (5.3) Valószínűleg ezek az egyenletek megfelelően elrémisztették az olvasót. Pedig a dolog nem is annyira ördöngös. Ennek bizonyítékaként tekintsük a következő példát, ahol az 5.9. ábrán látható két döntési lehetőség közül azt kell választani, melynek nagyobb az információtartalma. Kiindulásként ahogy látható is mindkét fa tetején a teljes adathalmaz megtalálható. Az első esetben A 1, míg a második esetben A 2 attribútum szerint osztályozunk. Számítsuk ki, melyik esetben jutunk nagyobb információnyereséghez! Ehhez először meghatározzuk a teljes adathalmaz rendezetlenségét. ( 29 I(S) = I([29+,35 ]) = 64 log log ) = 0.99 (5.4) Az 5.3. táblázatban ismertetett számítások jól mutatják, hogy az A1-gyel jelölt felosztási mód információs nyeresége nagyobb. Tehát célszerűbb a döntési fában ezt a felosztást alkalmaznunk. Az információnyereség elvét használja az egyik legismertebb döntési fa előállítására 198
207 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK I([21+,5 ]) = 0.71 I([18+,33 ]) = 0.94 I([8+,30 ]) = 0.74 I([11+,2 ]) = 0.62 ( ( E(A 1 ) = I([21+,5 ])+ E(A 2) = 51 ) 64 I([18+,33 ])+ ) I([8+,30 ] 13 = I([11+,2 ] = 0.87 G(S,A 1 ) = I(S) E(A 1 ) = 0.27 G(S,A 2 ) = I(S) E(A 2 ) = táblázat. A két döntési lehetőség információs nyereségének számítása használható algoritmus, az ID3 (Interactive Dichotomizer 3) 1, illetve ennek továbbfejlesztett változatai, a C4.5 és a C5.0. A C4.5 legújabb ingyenesen elérhető, kutatási célokra használható verziója a C4.5 Release 8, melyet a Weka rendszerben is implementáltak J48 néven. A C5.0 az algoritmus-család egy kereskedelmi változata, melyről bővebb információ a következő címen érhető el: Az ID3 algoritmus az 1960-as években jelent meg. Azóta a továbbfejlesztett változatai a C4.5 és C5.0 algoritmusok a legismertebb és legszélesebb körben alkalmazott osztályozási algoritmusokká váltak. Mindezt előnyös tulajdonságaiknak köszönhetik. Ezek közé tartozik, hogy a C4.5 és a C5.0 az eredeti ID3 algoritmussal szemben nemcsak kategorikus, hanem numerikus értékeket is képesek kezelni, az értékek automatikus diszkretizálásával. Továbbá megengedik a hiányzó értékeket, és lehetőséget adnak a változók súlyozására is. A felsorolt algoritmusok a döntési fa egyes csomópontjaiban a minták felosztásához mindig azt az attribútumot választják ki, mely az információnyereséget az adott csomópontban maximalizálja. A csomópontokban való lokális optimumok megkeresése nem minden esetben jelenti a globális optimum megtalálását, ezért ezeket az algoritmusokat mohónak nevezzük Példa. Miután tisztáztuk a döntési fák felépítésénél használt információs nyereség lényegét, térjünk vissza az eredeti, adócsalás felderítésére vonatkozó példánkhoz. A példa célja, hogy az információnyereség elvét felhasználva bemutassa, hogy az 5.2. táblázat adataiból hogyan is lehet előállítani az 5.6. ábrán szereplő döntési fát. A példa adatokból kiindulva tudjuk, hogy: 1. Az osztálycímke az Adócsaló attribútum. 2. A táblázat összesen 16 rekordból áll. 1 interaktív felosztó 199
208 5.2. DÖNTÉSI FÁK ábra. Visszatérítés szerinti felosztás 3. Ebből 4 pozitív (adócsaló) és 12 negatív (nem csaló) rekord áll rendelkezésre. Először is számoljuk ki a teljes adathalmaz rendezetlenségét. ( ) 4 I(S) = I([4+,12 ]) = 16 log log = Ezután az információnyereség elvét felhasználva meghatározzuk, hogy melyik attribútummal érdemes elkezdeni a döntési fa felépítését. A három lehetséges változó, aminek segítségével elkészíthetjük az első felosztást a Visszatérítés, a Családi állapot és a Jövedelem. Kiszámítjuk egyenként az információnyereség (G) értékeket, és ahol a legnagyobb értéket kapjuk, azt az attribútumot fogjuk választani. Kezdjük mindjárt az ábrának megfelelően a legelső attribútummal, a Visszatérítés-sel! Láthatjuk, hogy a Visszatérítés attribútum segítségével a kiinduló adathalmazt két részre tudjuk felosztani. Egy pozitív és öt negatív mintánk van, azok közül, akiknek volt visszatérítése, míg a visszatérítéssel nem rendelkezők körében ez az arány 3:7. A 1 -gyel jelölve a Visszatérítés attribútumot a következő számításokat végezzük el. ( I([1+,5 ]) = 1 6 log log ) = 0.65 és I([3+,7 ]) = ( ) E(A 1 ) = I([1+,5 ])+ 16 I([3+,7 ]) = és G(S,A 1 ) = I(S) E(A 1 ) = A kapott információnyereség tehát Hasonló számításokat fogunk elvégezni a másik két attribútum szerint is. Megfigyelhető, hogy a házasok körében már egy homogén adathalmazhoz jutunk. Továbbá megjegyezzük, hogy a 0 log 2 0 értéke megállapodás szerint nulla. Ezáltal tehát homogén adathalmaz esetén a rendezetlenség (I) értéke mindig nulla, ami pusztán szemléletből is elfogadható. Így a számítások a következőképpen alakulnak: 200
209 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK ábra. Családi állapot szerinti felosztás ( ) 0 I([0+,7 ]) = 7 log log ( I([4+,5 ]) = ábra. Jövedelem szerinti felosztás 4 9 log log = 0 log log 2 1 = 0 ) = E(A 2 ) = ( 9 16 I([4+,5 ]) = és G(S,A 2) = I(S) E(A 2 ) = Végezetül a harmadik attribútum a Jövedelem, mely szerint elvégezhetjük az első felosztást a készülő fában. A Jövedelem ismérv értékeit az egyszerűség kedvéért három kategóriába soroljuk. Miszerint: 1. Az 1.8MFt vagy annál kisebb évi kereset alacsonynak számít. 2. Közepes az a jövedelem, ami 1.8 és 2MFt között van. 3. A 2MFt vagy annál nagyobb évi kereseteket pedig a magas kategóriába soroljuk. Az ábra tanúsága szerint az alacsony és magas jövedelműek körében máris homogén részhalmazokhoz jutunk az adócsalás tekintetében, ezért csupán a közepes jövedelemmel rendelkezők között szükséges kiszámítani a rendezetlenséget. 201
210 5.2. DÖNTÉSI FÁK ábra. Döntési fa a rekurzió első lépése után ( ) 4 I([4+,2 ]) = 6 log log = E(A 3 ) = ( 6 16 I([4+,2 ]) = 0.344,vagyis G(S,A 3) = I(S) E(A 3 ) = A legnagyobb információnyereséget a Jövedelem attribútummal való felosztással kaptuk, ezért az első lépésben a döntési fa a az ábrának megfelelően néz ki: Az alacsony és magas jövedelműek körében tehát azt kapjuk, hogy az osztálycímke értéke Nem. A következő lépésben már csak a közepes jövedelemmel rendelkezőket kell megvizsgálnunk. Összesen 6 minta tartozik ide, amiből 4 pozitív és 2 negatív. Az aktuálisan vizsgált adathalmaz esetén újra meghatározzuk a rendezetlenség értékét. ( ) 4 I([4+,2 ]) = 6 log log = Majd újra vizsgáljuk a lehetséges attribútumokat, hogy a felosztás során melyikkel jutnánk nagyobb információnyereséghez. Ez jelenti az eljárás rekurzivitását. A jól ismert értékek számítása után megkapjuk, hogy a Visszatérítés attribútummal mekkora információnyereséghez ( juthatunk ) ebben a csomópontban: I([1+, 1 ]) = 1, 3 illetve I([3+,1 ]) = 4 log log = Az I([1+, 1 )] érték könnyen számolható, mivel p + = p = 0.5 esetén az I függvény a maximális értékét veszi fel: E(A 1 ) = ( I([3+,1 ]) = 0.874, vagyis G(S,A 1) = I(S) E(A 1 ) = A példában az egyszerűség kedvéért ismétlődést nem engedünk meg a csomópontokban való változók szerinti felosztás esetén. Azaz a Jövedelem szerinti felosztást még egyszer 202
211 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK ábra. Visszatérítés szerinti felosztás köztes csomópontban ábra. Családi állapot szerinti felosztás köztes csomópontban nem vizsgáljuk. Tehát már csak a Családi állapot által nyerhető információnyereség nagyságát kell meghatároznunk: I([0+,2 ]) = 0 és I([4+,0 ]) = 0, E(A 2 ) = 0, tehát G(S,A 2 ) = I(S) E(A 2 ) = A Családi állapot-tal való felosztással eredményeként a második lépésben két homogén részhalmazhoz jutottunk, ezért nem meglepő, hogy az így kapott információnyereség nagyobb, mint a Visszatérítés szerinti felosztás esetén. Az első lépésben már megkaptuk az osztálycímkét az alacsony és a magas jövedelműek esetén, a második lépésben pedig a közepes jövedelemmel rendelkezőket sikerült homogén osztályokba sorolni az adócsalás tekintetében. Ennek megfelelően a teljes döntési fát az 5.6. ábrán láthatjuk. A döntési fából nyerhető osztályozási szabályokat pedig az 5.2. fejezetben leírtak szerint kapjuk Példa. A most következő példában az adatbányászat egyik legnépszerűbb ún. benchmark teszt adatsorát, az IRIS adatsort vizsgáljuk, mellyel már számos osztályozási al- 203
212 5.2. DÖNTÉSI FÁK ábra. A teljes döntési fa 204
213 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK goritmust is összehasonlítottak. Az osztályozási feladat az, hogy 3 különböző írisz fajt iris setosa, iris versicolor és iris virginica jellemző tulajdonságaik alapján osztályozni tudjunk. Az osztálycímke ennek megfelelően az írisz fajok neve lesz. A feladatot a WEKA-ban oldjuk meg. Az osztálycímkét kiválasztva láthatjuk, hogy minden osztályba minta tartozik. Ha a Visualize all feliratú nyomógombra kattintunk, akkor pedig egy összefoglaló ábrát (5.17. ábra) kapunk arról, hogy az egyes attribútumok milyen értékeket vesznek fel, illetve ezen értékeknek milyen az osztályonkénti eloszlása. Az egyes attribútumok értékeinek vizsgálata után válasszuk ki a Classify kartonlapot az adatok osztályozásához. A Weka alapértelmezetten mindig az utolsó változót tekinti osztálycímkének, ez jelen esetben megfelelő. Ezután a Choose feliratú gombra kattintva választhatjuk ki a rendelkezésre álló osztályozási módszereket. A példában a döntési fát generáló algoritmusok közül a J48-at használjuk (weka -> classifiers -> trees -> j48). A J48 mint ahogy már korábban említettük a C4.5-ös algoritmus egy Java nyelven implementált változata. Az algoritmus lefuttatása előtt még két teendőnk van. Először is a kiválasztott J48 algoritmust paramétereznünk kell. A legfontosabb paraméterek a következők: C - a fa tisztításához kapcsolódó konfidencia, értéke 0 és 1 közötti szám lehet. Az alapértelmezett érték 0.25, mely sok esetben megfelelő. Minél kisebb értéket állítunk be, annál drasztikusabb a fa metszése. M - a minták minimális száma a leveleknél. A paraméterhez tartozó alapértelmezett érték 2, ami azt jelenti, hogy a döntési fában minden levélhez legalább két mintának kell tartoznia. U - nyesetlen (unpruned) fa generálása, vagyis a fametszés kikapcsolása. B - csak bináris felosztást engedünk meg a döntési fa felépítésénél. A paramétereket jelölő betűk előtt mindig egy-egy jelet kell használnunk, majd pedig a betűjel után adhatjuk meg a paraméter értékét, ha ez szükséges. Tehát például az alapértelmezett beállítások szerint az algoritmust a következő paranccsal futtatjuk: J48 C0.25 M2. A paraméterek megfelelő megválasztása után meg kell határoznunk, hogy a rendszer az osztályozási modell értékeléséhez milyen módszerrel válassza ki a teszt mintákat. Ezt a Test options nevű panelen tehetjük meg. A Weka-ban a következő négy lehetőség közül választhatunk 1. Use training set - a rendszer a tanuló mintákat használja a teszteléshez. Supplied test set - külső forrásból származó teszt minták használata. 1 Ezeket a technikákat az részben tárgyaljuk. 205
214 5.2. DÖNTÉSI FÁK ábra. Az attribútumok osztályonkénti eloszlása Cross-validation - n-szeres kereszt-validálás, az n értéke a Folds mezőben állítható be. Percentage split - az ismert minták százalékos felosztása tanuló és teszt mintákra. Az alapértelmezett érték 66%, ami azt jelenti, hogy a teszt minták az ismert minták 34%-át teszik ki. A százalékos érték tehát a tanuló minták arányát adja meg. A példában a 10-szeres kereszt-validálást választottuk, majd a Start nyomógombra kattintva lefuttattuk az algoritmust. Az képernyőkép ennek eredményét mutatja. Az osztályozás eredményeképp láthatjuk, hogy a tesztelés során a modell összesen 144 mintát helyesen, 6-ot pedig hibásan osztályozott. Ez 96%-os pontosságot jelent, ami egy meglehetősen magas érték. Ezt tükrözik a keveredési mátrix elemei is. Az eredmények értelmezése után tekintsük meg a generált döntési fát is. Ehhez kattintsunk a jobb egérgombbal az eredménylistára, és válasszuk a Visualize tree menüpontot. A döntési fában téglalapok jelölik az egyes leveleket. Az osztálycímke feltüntetése mellett egy vagy két számot láthatunk. Például Iris-setosa (50.0), azt jelenti, hogy a levélhez tartozó 50 minta mindegyikének azonos az osztálycímke értéke, mely jelen esetben Iris-setosa. Iris-versicolor (48.0/1.0) pedig azt jelenti, hogy a levélhez tartozó 48 mintának egy kivételével Iris-versicolor az osztálycímke értéke. A döntési fában rejlő tudást könnyen megfogalmazhatjuk, ha-akkor típusú osztályozási szabályok formájában is. Az írisz adatok esetén a szabályok a következőek. 206
215 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK ábra. Az osztályozás eredménye ábra. Döntési fa az írisz adatok osztályozására 207
216 5.2. DÖNTÉSI FÁK Ha petalwidth <= 0.6 akkor osztály= Iris setosa Ha petalwidth > 1.7 akkor osztály= Iris virginica Ha 0.6 < petalwidth <= 1.7 és petallength <= 4.9 akkor osztály= Iris versicolor Ha 0.6 < petalwidth <= 1.5 és petallength > 4.9 akkor osztály= Iris virginica Ha 1.5 < petalwidth <= 1.7 és petallength > 4.9 akkor osztály= Iris versicolor Gini index Az ID3 algoritmus-család mellett a döntési fák előállításához gyakran használjuk az ún. CART-metodológiát. A CART szó a Classification And Regression Trees algoritmuscsalád rövidítése, amit osztályozó és regressziós fáknak fordíthatunk. A kifejlesztéskor az elsődleges cél az volt, hogy a módszert felhasználva még rossz minőségű (zajos, hiányzó) adatok esetén is megfelelő pontosságú osztályozási modellt kapjunk eredményül. A célkitűzés meglehetősen jól sikerült, a CART-metodológiát kis módosításokkal számos adatbányászati szoftver használja a döntési fák előállításához. Az aktuális kereskedelmi változatról bővebb információt a következő weboldalon találhatunk: A két említett algoritmus-család közt számos eltérés van, ezek közül a két leglényegesebb a következő. A CART eljárás a döntési fa felépítésénél az egyes csomópontokban mindig bináris döntéseket használ, míg az ID3 algoritmus esetén a döntési fa adott csomópontja annyi felé ágazik el, ahány különböző értéke van a felosztásnál kiválasztott attribútumnak. A másik fontos talán a leglényegesebb eltérés pedig az, hogy az algoritmusok az adott csomópontban miként választják ki azt a változót, melynek értéke szerint érdemes elvégezni a tesztet, azaz a minták felosztását. Nos, amint láttuk, az ID3 algoritmus és továbbfejlesztett változatai az információnyereség elvét használják fel, ezzel szemben a CART metodológia a Gini-index számítását veszi alapul. Ebben a részben megnézzük, hogyan is lehet felépíteni egy döntési fát a Giniindex értékek felhasználásával. A Gini-index számításának elve tehát a következő. Legyen T egy adathalmaz, mely N mintát tartalmaz. Ezt az N mintát n különböző osztályba sorolhatjuk. Ekkor a definíció szerint a T adathalmaz Gini-indexe az 5.5. összefüggés alapján számolható: 208 gini(t ) = 1 n p 2 j, (5.5) j=1
217 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK ahol p j : a j. osztály relatív előfordulását jelöli a T halmazban. A kérdés már csak az, hogyan használhatjuk fel ezt a döntési fák felépítésénél. A döntési fák egyes csomópontjaiban azt az attribútumot szeretnénk kiválasztani, melynek segítségével a felosztás során az egyes ágakba kerülő minták homogenitása az osztálycímke értékek szempontjából a lehető legnagyobb mértékben növekszik. A legegyszerűbb esetben n = 2, azaz az aktuálisan vizsgált T adathalmazt két diszjunkt halmazra osztjuk fel, ezeket jelölje T 1 és T 2. A két részhalmaz elemeinek száma rendre N 1 és N 2 legyen. Ekkor a vizsgált ismérvvel történő felosztás Gini-indexét a következő összefüggés szerint számíthatjuk ki: gini split (T ) = N 1 N gini(t 1) + N 2 N gini(t 2), (5.6) ahol a gini(t 1 ) és a gini(t 2 ) értékeket az 5.5. képlet alapján kaphatjuk meg. Ezek az értékek értelemszerűen a felosztás során kapott részhalmazok Gini-indexét jelentik. Egy adott attribútum szerinti felosztást szokás még kettéosztásnak, hasításnak is nevezni. Az angol nyelvű szakirodalomban szereplő szokásos elnevezés a képletben is használt split. A döntési fa felépítéséhez tehát az egyes csomópontokban minden attribútum szerinti felosztáshoz meg kell határozni a Gini-index értéket. Ha ezt megtettük, akkor az információnyereség elvétől eltérően azt az attribútumot választjuk a felosztáshoz, melyhez tartozó Gini-index érték a legkisebb. Példaként az adócsalás felderítéséhez kapcsolódó adatainkból 2 a Gini-index felhasználásával is felépíthetünk egy döntési fát, amely az ábrának megfelelően néz ki. Láthatjuk, hogy a döntési fa szinte teljesen megegyezik azzal, amit korábban az információnyereség elvét felhasználva kaptunk. A különbség csupán annyi, hogy jelen esetben, az adatokban rejlő tudást a CART metodológiának megfelelően egy bináris döntési fa reprezentálja. Ennél az egyszerű példánál nem meglepő, hogy különböző módszerekkel azonos eredményt kapunk, hiszen kevés változó és rekord áll rendelkezésre. Természetesen egy komplex osztályozási feladat esetén a különböző módszereket felhasználva más és más döntési fákhoz juthatunk A felépített fa tisztítása Mint ahogy azt az fejezetben említettük, a döntési fa generálásának második lépése a fa tisztítása vagy más néven fametszés. E folyamat során az algoritmus törli azokat az ágakat, melyek valószínűleg csak a túltanítás miatt keletkeztek. A döntési fa túltanítása alatt azt értjük, hogy a modell túlságosan is illeszkedik a tanuló mintákhoz. Mindez azért nem előnyös, mert a modell egy bizonyos mértékű 2 Lásd 5.2. táblázat adatai 209
218 5.2. DÖNTÉSI FÁK ábra. A teljes döntési fa illeszkedésen túl már csak a tanuló mintákban jelen lévő hibákat, zajt és egyéb olyan sajátosságokat fog megtanulni, melyek csak a tanuló mintákra igazak. Az ismeretlen minták osztályozásánál ez gyenge pontossághoz fog vezetni. A fa tisztítására tehát azért van szükség, mert nem szeretnénk, hogy bizonyos ágak zajt tükrözzenek, hiszen ez a pontosság csökkenésével és a fa méretének növekedésével jár. A döntési fák tisztítása kapcsán alapvetően két elvárásunk van: Végeredményben minél kisebb méretű, azaz minél könnyebben érthető és kezelhető döntési fát kapjunk. Minél több, potenciálisan hasznos információt tudjunk kinyerni adatainkból. Könnyen belátható, hogy ez a két elvárás egymással ellentétes. Célunk csak az lehet, hogy tetszőleges adathalmaz esetén megtaláljuk az optimumot, azaz egy olyan 210
219 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK ábra. Döntési fák túltanítása döntési fát, mely kezelhető méretű (egyszerű), és a lehető legkevesebb információveszteséggel jár (általános, nem csak a tanuló minták esetén pontos). Ez nem triviális feladat, ezért nem meglepő, hogy jelenleg nem ismert olyan fametszést megvalósító eljárás, mely tetszőleges adathalmaz esetén megtalálná az említett optimális döntési fát. Ugyan az optimum megtalálása nem biztosított, azonban tanulmányok igazolják, hogy célszerű a döntési fákat tisztítani. Ezt támasztja alá az ábra is, ahol az x tengelyen a tanuló minták számát, az y tengelyen pedig az osztályozási hibát jelöljük. Az ábrán látható monoton csökkenő görbe a tanuló mintákra vonatkozik. Azt mutatja, hogy minél több ismert mintával (illetve minél több iterációval) tanítunk egy modellt, az annál pontosabban (egyre kisebb hibával) fogja leírni a tanuló mintákat. Túltanítással elérhető akár az is, hogy a modell 100%-os pontossággal osztályozza a tanuló mintákat. Ez azonban az ismeretlen (teszt) minták esetén valószínűleg gyenge pontosságot eredményez. Ezt szemlélteti a másik görbe, melyen azt láthatjuk, hogy a teszt minták esetén mekkora hibával osztályoz a modell a tanuló minták számának függvényében. Túltanításról akkor beszélünk, ha ez a görbe a túl nagyszámú tanuló minta miatt túllép a minimum értékén. Az optimális döntési fa keresésekor pedig az a célunk, hogy a teszt minták esetén minél kisebb legyen az osztályozási hiba, vagyis a tárgyalt görbe minimumát keressük. Most már csak azzal a fontos kérdéssel kell foglalkoznunk, hogy miként lehet a túltanítást elkerülni, vagyis milyen módszereket és elveket tudunk felhasználni a döntési fák metszéséhez. A túltanítás elkerülésének alapvetően két megközelítése létezik. 211
220 5.2. DÖNTÉSI FÁK Az egyik az előmetszés (prepruning), melynek lényege, hogy korábban leállítjuk a fa felépítését. Ehhez különféle mértékeket használhatunk, mint például a statisztikai szignifikancia. A döntési fa generálásánál megállítjuk a további felosztást, ha az adott csomópontban a szétvágás jósága egy bizonyos érték alá esik. Ahol éppen megálltunk, az a csomópont egy levél lesz, melyhez tartozó osztálycímke érték lehet a mintákhoz tartozó osztálycímke értékek közül a leggyakoribb, vagy azok valószínűségi eloszlása. A másik megközelítési lehetőség az utómetszés (postpruning). Az eljárás során először felépítjük a teljes (tisztítatlan) döntési fát, majd eltávolítjuk a nem kívánatos ágakat. Ennek többféle technikája is létezik (ld. [72] könyv), lényegében az utómetszést úgy is értelmezhetjük, hogy a tisztítatlan fa egyes részfáit levelekkel helyettesítjük. Ezek után már csak azokat a részfákat kell megkeresnünk, melyeket szeretnénk eltávolítani. Egy szokványos megközelítés, hogy a fa egyes csúcsaiban kiszámoljuk a várható hibaarányt. Ezután kiszámítjuk abban az esetben is, ha lemetszenénk a csúcshoz tartozó részfát. Ha az utóbbi esetben kisebb hibát kapunk, akkor eltávolítjuk a vizsgált részfát. A várható hiba megbecslése statisztikai alapokon nyugszik, és tartalmaz némi heurisztikát is. A [72] könyv részletes információkat tartalmaz az utómetszési technikákról és a várható hiba becsléséről. A két módszert összehasonlítva az előmetszés hátrányaként említhetjük, hogy nehéz megtalálni azt az értéket, ami alatt már megállítjuk az egyes csomópontokban a további felosztást. Ha túl kicsi értéket adunk meg, akkor az optimálisnál nagyobb fát kapunk, ha viszont nagy értéket adunk meg, akkor viszont a drasztikus metszés miatt fontos információk veszhetnek el (early stopping). Előny viszont, hogy az előmetszés kevésbé számításigényes, és ezáltal gyorsabb az utómetszésnél. A két megközelítés közül a gyakorlatban általában az utómetszés ad megbízhatóbb eredményeket, ennek megfelelően a legtöbb döntési fát generáló algoritmus (az ID3 és a CART is) az utómetszést preferálja. A döntési fák tisztításának ismert módszereiről az érdeklődő olvasó egy összefoglalást találhat a [73] cikkben. Ajánljuk még a [74] cikket is, melyben különféle metszési eljárások összehasonlítása található. A döntési fák méretét tehát valamilyen metszési eljárással kontrolláljuk. A gyakorlatban emellett szokás még korlátozni a döntési fa mélységét is. Általában egy külön paramétereként adhatjuk meg a maximális famélységet. Ennek segítségével a tanuló mintáktól függetlenül meggátolhatjuk azt, hogy a döntési fa mélysége egy előre meghatározott értéknél nagyobb legyen. Ha a fa eléri ezt a bizonyos mélységet, akkor a program az adott csúcsnál jelen lévő minták arányában meghatározza az osztálycímke értéket. 212
221 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK 5.3. Bayes-modell alapú osztályozás Az fejezet már ismertettük, hogy a döntési fák által nyújtott klasszikus koncepció nézeten túl van a koncepcióknak egy valószínűségi nézetük is. Az ilyen jellegű tudás feltárására alkalmas valószínűségi elven alapuló tanulási módszerek valamilyen hipotézis valószínűségének kiszámításán alapulnak. E módszerek általában inkrementálisak, azaz minden új rekord lépésről-lépésre tudja növelni vagy csökkenteni az adott hipotézis valószínűségét. E módszerek másik fontos előnye, hogy az adatokból számított valószínűségek módosításával lehetőség van a felhasználók előzetes ismereteinek közvetlen alkalmazására. A valószínűségelméleti eszköztárnak a modell alkalmazásában is megvan a maga jelentősége. Mégpedig azért, mert a modell lehetőséget ad arra, hogy a modell következtetése egyszerre több, a valószínűségekkel súlyozott hipotézis eredményeképpen adódjon A naiv Bayes-osztályozás A Bayes-modell alapú osztályozás lényege a következő. Legyen C i az az esemény, hogy az adott objektum (x) az i. osztályba tartozik. Ekkor az osztályozási probléma ún. a posteriori valószínűségekkel fogalmazható meg. Definíció szerint P(C i x) jelöli a C i osztály x-et feltételező a posteriori valószínűségét. P(C i x) azt a valószínűséget jelenti, hogy a k db jellemzővel leírt x =<x 1,...,x k > objektum a C i osztály eleme. Azaz az osztályozást feltételes valószínűségek formájában adjuk meg. Minden osztálycímke érték esetén ki kell számítanunk az a posteriori valószínűségeket. A Bayes-osztályozás alapgondolata, hogy az x mintát abba az osztályba kell sorolni, melyre a P(C i x) valószínűség maximális. Például ha el szeretnénk dönteni, hogy alkalmas-e az időjárás a teniszezésre, akkor a következőket tesszük. Először is az ismert attribútumok alapján jellemezzük az időjárást (az x objektumot), melyről el akarjuk dönteni, megfelelő-e teniszezésre. Például: x =<Égbolt=napos, Hőmérséklet=meleg, Páratartalom=magas, Szél=igaz> Ezután kiszámítjuk a feltételes valószínűségeket az egyes osztályoknak megfelelően. Ez azt jelenti, hogy az i minden lehetséges értékére megadjuk a P(C i x) feltételes valószínűség értéket. Jelen esetben az osztálycímke az Alkalmas attribútum, mely két értéket vehet fel: igen vagy nem. Ennek megfelelően C 1 azt az osztályt jelöli, hogy alkalmas az időjárás teniszezésre, C 2 pedig azt, hogy nem. Azaz ebben az esetben csupán P(C 1 x) és P(C 2 x) kiszámítása szükséges. A feltételes valószínűségek kiszámítása után azt az értéket választjuk, ahol a P(C i x) maximális, azaz jelen esetben a két érték közül a nagyobbat. Ezáltal meghoztuk a döntést arra vonatkozóan, hogy alkalmas-e az idő teniszezésre vagy sem. 213
222 5.3. BAYES-MODELL ALAPÚ OSZTÁLYOZÁS Az osztályozási feladatok ezen megközelítését Bayes-osztályozásnak nevezzük, mivel a feltételes valószínűségeket a Bayes-tétel segítségével számítjuk ki. A Bayes-tétel a következőképpen adható meg: P(C i x) = P(x C i) P(C i ) P(x), (5.7) ahol P(C i ) az adott osztály feltétel nélküli valószínűsége, mely a C i osztályba tartozó tanuló minták relatív gyakoriságával egyenlő, P(x) az x előfordulási valószínűsége, minden osztály esetén azonos (fix érték), és P(x C i ) a x-nek C i -t feltételező valószínűsége, ami nem más, mint az x valószínűsége a C i osztályon belül. Ennek megfelelően, az adott minta abba az osztályba tartozik, melyre P(C i x) maximális. Ez azt jelenti, hogy P(x C i ) P(C i ) maximumát keressük, mivel tudjuk, hogy P(x) konstans minden osztály esetén. A P(C i ) értéke minden osztály esetén ismert, tehát az igazi probléma a P(x C i ) valószínűség meghatározása. Ahhoz, hogy ez a gyakorlatban könnyen kivitelezhető legyen, a következő naiv feltételezést tesszük: feltételezzük, hogy az egyes mintákat leíró jellemzők függetlenek egymástól. Ebben az esetben a P(x C i ) valószínűség felírható független események valószínűségének szorzataként. Miszerint, ha x=<x 1,...,x k >, akkor: P(x C i ) = P(x 1,...,x k C i ) = P(x 1 C i )... P(x k C i ) (5.8) Abban az esetben, ha az i. változó kategorikus típusú, akkor a P(x j C i ) valószínűséget a következőképpen számíthatjuk: P(x j C i ) = #x j #C i (5.9) Azaz egész egyszerűen az x j minta gyakoriságát osztjuk el a C i osztályhoz tartozó minták számával. A folytonos értékű változókról pedig feltételezzük, hogy normális eloszlásúak (tehát az attribútum értékeinek eloszlása a jól ismert Gauss görbének felel meg). Ha a k. attribútumot A k -val jelöljük, akkor a normális eloszlás jól ismert jelölésének megfelelően: A k N (m i,σ i ), ahol m i az i. osztályhoz tartozó minták várható értékét, σ i pedig az i. osztályhoz tartozó minták szórását jelöli. Ezeket az értékeket a jól ismert összefüggések alapján számíthatjuk ki: 214 m i = 1 N σ i = 1 N 1 N i=1 N i=1 x i (5.10) (x i m i ) 2 (5.11)
223 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK Égbolt Hőmérséklet Páratartalom Szél Alkalmas napos meleg magas hamis Nem napos meleg magas igaz Nem felhős meleg magas hamis Igen esős enyhe magas hamis Igen esős hűvös normális hamis Igen esős hűvös normális igaz Nem felhős hűvös normális igaz Igen napos enyhe magas hamis Nem napos hűvös normális hamis Igen esős enyhe normális hamis Igen napos enyhe normális igaz Igen felhős enyhe magas igaz Igen felhős meleg normális hamis Igen esős enyhe magas igaz Nem 5.4. táblázat. A példában felhasznált adatok táblázata Az egyes osztályok várható értékét és szórását ismerve a feltételes valószínűségek kiszámítása a következőképpen történik: P(x j C i ) = 1 2πσi exp (x j m i ) 2 (2σ 2 i ) (5.12) Megjegyezzük, hogy a gyakorlatban nem minden esetben megfelelő a normális eloszlás feltételezése. Ez esetben valamilyen a priori információ alapján tudjuk becsülni az eloszlást. Gyakori például a lognormális, a gamma és a Poisson-eloszlások használata Példa. Az 5.4. táblázatban összefoglalt esetek alapján szeretnénk egy olyan modellt generálni, mely használható annak a kérdésnek az eldöntésére, hogy az időjárás alkalmas-e teniszezésre vagy sem. Osztálycímkének az Alkalmas attribútumot választjuk. Ez a változó kétféle értéket vehet fel: igen vagy nem. Ennek megfelelően a táblázat alapján kiszámítjuk az összes lehetséges P(x j C i ) feltételes valószínűségértéket. Az 5.5. táblázat ezeket az értékeket tartalmazza. A feltételes valószínűségeken túl szükségünk van még a P(i) és a P(n) értékekre, azaz az egyes osztályok a priori valószínűségére. 3 3 Az egyszerűség kedvéért az igen-t i-vel a nem-et n-nel rövidítjük. 215
224 5.3. BAYES-MODELL ALAPÚ OSZTÁLYOZÁS Égbolt P(napos i)=2/9 P(felhős i)=4/9 P(esős i)=3/9 Hőmérséklet P(meleg i)=2/9 P(enyhe i)=4/9 P(hűvös i)=3/9 Páratartalom P(magas i)=3/9 P(normális i)=6/9 Szél P(igaz i)=3/9 P(hamis i)=6/9 P(napos n)=3/5 P(felhős n)=0 P(esős n)=2/5 P(meleg n)=2/5 P(enyhe n)=2/5 P(hűvös n)=1/5 P(magas n)=4/5 P(normális n)=2/5 P(igaz n)=3/5 P(hamis n)=2/ táblázat. Feltételes valószínűségek számítása P(i) = 9 14,illetve P(n) = 5 14 P(i) azt jelenti, hogy a 14 rendelkezésre álló mintából 9 esetben alkalmas az idő teniszezésre. Értelemszerűen P(n) értéke pedig a teniszezésre alkalmatlan esetek relatív gyakoriságát jelenti. A P(i) és P(n) értékeket a feltételes valószínűségek súlyozására használjuk. Ha feltételezzük azt, hogy az egyes osztályok valószínűsége egyenlő, azaz: P(C 1 ) = P(C 2 ) =... = P(C n ), (5.13) akkor ezen értékek akár el is hagyhatóak a számításnál. Általában viszont a tanuló minták egyes osztályokba tartozásának relatív gyakoriságát szokás használni, hiszen feltételezzük, hogy a tanuló minták jól modellezik adatainkat. Az 5.5. táblázat alapján és a P(i), P(n) valószínűségeket ismerve egy korábban elő nem forduló eset is egyszerűen osztályba sorolható. Például az x =<esős, meleg, magas, hamis> esemény alapján a következő valószínűségek számíthatók: P(x i) P(i) = P(esős i) P(meleg i) P(magas i) P(hamis i) P(i) = = P(x n) P(n) = P(esős n) P(meleg n) P(magas n) P(hamis n) P(n) =
225 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK = Mivel P(x n) értéke a nagyobb, ezért a példában szereplő eset a Nem alkalmas osztályba tartozik. Mindezt százalékos formában is megadhatjuk, miszerint: P(megyünk)= =36.66%, P(nem_ megyunk)= =63.34% Ekkor talán még szemléletesebb, hogy a negatív válasz mellett fogunk dönteni, hiszen annak statisztikailag nagyobb a valószínűsége. A könyv weboldalán elérhető egy Excel alapú eszköz, mely a naiv Bayes-osztályozást demonstrálja. A használathoz töltsük le a Bayes.xls nevű fájlt, majd indításkor engedélyezzük a makrók használatát, amennyiben ez szükséges. Az egyszerűség kedvéért az előző részben kidolgozott példa adatokat előre beírtuk a Munka1 nevű munkafüzetre. A paraméterek beállítása után a program a kidolgozott példában leírtaknak megfelelő számításokat végzi el. A naiv Bayes-osztályozó tehát a Bayes-tételen alapuló statisztikai osztályozó, melynek segítségével megbecsülhetjük egy adott minta valamely osztályba tartozásának valószínűségét. A naiv feltételezés sok esetben lehetővé teszi, illetve nagymértékben egyszerűsíti a számításokat. Elmondhatjuk, hogy a gyakorlatban meglepően jól használható, egyszerű módszerről van szó, még annak tudatában is, hogy a naiv feltételezés sok esetben nyilvánvalóan nem teljesül. Pontosság tekintetében a már ismertetett döntési fákhoz hasonló eredmények érhetőek el. Ha fennáll a naiv feltételezés, miszerint az attribútumok függetlenek egymástól, akkor pedig a legpontosabb osztályozást kapjuk a naiv Bayes-osztályozó felhasználásával. További előnyös tulajdonságként említhetjük meg, hogy a tanítási fázis komplexitása a rekordok, sőt a változók számának növekedésével is csupán lineárisan nő. Ez a gyakorlatban egy fontos szempont lehet. Hiányzó értékek esetén is használható a naiv Bayes-osztályozó. Ha a tanuló minták egyes értékei hiányoznak, akkor a P(x j C i ) feltételes valószínűségek számításánál nem vesszük figyelembe azt a mintát, ahol a hiányzó érték szerepel. Osztályozni kívánt minták esetén pedig az egyes osztálycímke értékek valószínűségeinek számításánál, a hiányzó értékekhez tartozó ismérveket elhagyjuk. Egész egyszerűen a P(x 1 C i )... P(x k C i ) szorzat annyival kevesebb tagból fog állni, ahány hiányzó értéket tartalmaz az ismeretlen minta. Bayes-osztályozás esetén gyakran találkozhatunk az ún. zéró-frekvencia, vagy más néven nullfrekvencia problémával. Ez azt jelenti, hogy ha valamelyik P(x j C i ) feltételes valószínűség értéke nulla, akkor az adott osztály a posteriori valószínűsége, P(x C i ) is nulla lesz, függetlenül a többi attribútum értékétől. Könnyen belátható, hogy ez nem 217
226 5.3. BAYES-MODELL ALAPÚ OSZTÁLYOZÁS vezet helyes osztályozáshoz. A probléma legegyszerűbben úgy oldható meg, hogy minden feltételes valószínűség értékhez hozzáadunk 1-et. Ezáltal nem nulla és egy, hanem egy és kettő közötti értékeket kapunk, így elkerüljük azt a problémát, hogy egy nulla értékű szorzótényező hatására egy adott osztály a posteriori valószínűsége nulla lesz Bayes-féle hihetőségi hálók A gyakorlatban a Bayes-osztályozásnál használt naiv feltételezés általában nem biztosított, hiszen az attribútumok rendszerint korrelálnak. A naiv Bayes-osztályozó ezen hátrányos tulajdonságát az ún. Bayes-féle hihetőségi hálók (vagy röviden Bayes-hálók) segítségével küszöbölhetjük ki. A Bayes-hálókat felhasználva az egyes attribútumok között függőségeket tudunk megadni, ezáltal tehát nem kell élnünk a naiv feltételezéssel. Az említett függőségeket, vagy más néven kapcsolatokat egy irányított és körmentes gráf definiálja, ahol a csúcsok az egyes attribútumokat, az élek pedig a függőségeket szimbolizálják. Ezt a gráfot nevezzük Bayes-hálónak. Mivel a gráf irányított, ezért szülő-gyermek kapcsolatokat tudunk értelmezni. Ha például A csúcsból él vezet B csúcsba, akkor A-t szülőnek, B-t gyermeknek nevezzük. A Bayes-hálók esetén az egyes változók csupán a szüleiktől függnek, minden más változótól feltételesen függetlenek. A háló szerkezete mellett minden változóra meg kell adni egy feltételes valószínűségi táblázatot, mely az adott változó és szüleinek minden lehetséges értéke esetén a feltételes valószínűség értékeket tartalmazza. Ezen értékek ismeretében pedig kiszámíthatjuk a k attribútum értékével jellemezhető x =<x 1,...,x k > esemény valószínűségét, az ún. együttes valószínűséget. P(x 1,...,x k ) = k i=1 P(x i Szülők(X i )) (5.14) Tehát egész egyszerűen figyelembe vesszük a szülőktől való függést ahelyett, hogy naivan függetlenséget feltételeznénk. Az eddigiek könnyebb megértéséhez tekintsük a következő példát Példa. Az egyszerűség kedvéért csupán négy változóval dolgozunk, melyeket az ábécé nagy betűivel jelölünk: A, B, C és D. Tegyük fel, hogy az első három attribútum két értéket vehet fel (igen és nem) a D pedig hármat (1, 2, 3). Továbbá a háló (irányított, körmentes gráf) szerkezete legyen az ábrán látható. Megfigyelhetjük, hogy C szülei A és B, illetve B gyermeke D, továbbá C és D feltételesen függetlenek. 218
227 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK ábra. Egyszerű Bayes-háló Példaként megadunk két lehetséges feltételes valószínűségi táblázatot. Ezek jelen esetben a C és D változóra vonatkoznak. B!B A,B A,!B!A, B!A,!B D= C D= !C D= A jelölésben egy kétértékű attribútum előtt akkor szerepel felkiáltójel, amikor az nem értéket vesz fel. A táblázat értékeit ennek megfelelően a következő példák szerint értelmezhetjük. P(C = igen A = nem,b = igen) = P(C!A,B) = 0.6 P(C = nem A = nem,b = igen) = P(!C!A,B) = 0.4 P(D = 2 B = igen) = P(D = 2 B) = 0.5 Most már mindent ismerünk ahhoz, hogy egy ismeretlen mintát osztályozni tudjunk. Az osztálycímkének a C attribútumot választjuk, az ismeretlen minta pedig legyen x =< A = nem,b = igen,d = 2 >. Ekkor, hasonlóan a naiv Bayes-osztályozáshoz, az osztálycímke értékékre egyenként kiszámoljuk az együttes valószínűségeket: P(!A,B,C,D = 2) = P(!A) P(B) P(C!A,B) P(D = 2 B) = 0.3 P(!A) P(B) P(!A,B,!C,D = 2) = P(!A) P(B) P(!C!A,B) P(D = 2 B) = 0.2 P(!A) P(B) Eredményként az ismeretlen x mintát abba az osztályba soroljuk, ahol a C attribútum értéke igen, mivel ott nagyobb az együttes valószínűség értéke. 219
228 5.3. BAYES-MODELL ALAPÚ OSZTÁLYOZÁS Megjegyezzük, hogy ebben a példában, ha csupán az ismeretlen minta osztálycímke értékét akarjuk meghatározni, és nincs szükségünk az együttes valószínűség értékére, akkor elegendő a P(C = igen!a, B) és P(C = nem!a, B) valószínűségek összehasonlítása. Ezt azért tehetjük meg, mivel jelen esetben az osztálycímke (a C-vel jelölt ismérv) a D attribútumtól független, azaz annak értéke az osztályozás szempontjából nem hordoz információt. Az előző példában a háló szerkezete ismert volt, továbbá feltételeztük, hogy minden változó megfigyelhető. A Bayes-hálók tanításának ez a legegyszerűbb esete, hiszen ekkor csupán a feltételes valószínűségi táblázat elemeit kell kiszámolni. Ezt pedig a naiv Bayes-osztályozásnál megismert módon tehetjük meg, mivel egyszerű gyakoriságokról van szó. A Bayes-hálók tanítása azonban általában nem ilyen egyszerű, hiszen gyakran: A háló szerkezete ismert, de vannak rejtett (nem megfigyelhető) változók, vagy A háló szerkezete sem ismert, és azt a megfigyelhető változókból kell felépíteni. A Bayes-hálók tanításának módszereit a könyvben terjedelmi okok miatt nem tárgyaljuk, az érdeklődő olvasó részletesen olvashat erről Heckerman [75] cikkében, továbbá ajánljuk a következő weboldalt, ahol számos Bayes-hálóval kapcsolatos cikk található. Ezen kívül a Bayes-hálók iránt érdeklődő olvasók figyelmébe ajánljuk a Microsoft egy ingyenesen elérhető termékét, a WinMine-t, mely a következő címről tölthető le: Ezen a honlapon számos információ mellett megtudhatjuk, hogy a program összesen 9 parancssorból futtatható fájlt tartalmaz. Továbbá rendelkezésre áll egy részletesen kidolgozott példa is, melynek segítségével lépésről lépésre tanulhatjuk meg a program kezelését. A példa minden egyes lépésében egy-egy parancssorból indítható fájl használatát ismerhetjük meg, képernyőképekkel illusztrálva. A Weka rendszerben is implementáltak különféle Bayes-hálókon alapuló osztályozási algoritmusokat. Ezekről részletesebb információ a következő weboldalon található: Összeségében elmondhatjuk, hogy a Bayes-hálók alkalmazása jelenleg az adatbányászat egyik legdivatosabb területe. Ez nem véletlen, hiszen a Bayes-hálók számos előnyös tulajdonsággal rendelkeznek. Ezek közé tartozik a módszer széles körben való 220
229 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK felhasználhatósága, kiemelkedő pontossága. A hálós ábrázolás segítségével pedig még igen nagyszámú változó együttes eloszlását is hatékonyan tudjuk értelmezni. A Bayes-hálók fő alkalmazási területe a döntéstámogatás és a különféle gépi tanulási módszerek. A Microsoft például nyomtatók hibadiagnosztikájánál (is) alkalmaz Bayes-hálókat, mégpedig úgy, hogy a rendszer az ismert adatok és körülmények függvényében a hiba legvalószínűbb okát határozza meg automatikusan Példa. A Bayes-hálók egy másik jól ismert alkalmazási területe az ügyfelek hitelvisszafizetés szerinti osztályozása. Ehhez kapcsolódik a következő esettanulmány, melyet a hazai adatbányászati tanácsadó piac egyik prominens képviselője, a DSS Consulting Kft. bocsátott a rendelkezésünkre. A cég számos sikeres projekt megvalósításával büszkélkedhet, de emellett jelentős erőforrásokat áldoz az adatbányászati kutatás-fejlesztésre is, melynek egyik eredménye a bemutatott probléma megoldásához használt, bayesi valószínűségi hálókra épülő Bayes Generation adatbányászati elemző szoftver. A példában szereplő modell attribútumai csak részben egyeznek meg a valóságban alkalmazott attribútumokkal, illetve adatvédelmi szempontok miatt ezek eloszlását kismértékben megváltoztattuk. Az osztályozás során egy magyarországi banknál hitelt igényelő ügyfeleket vizsgálunk abból a célból, hogy meghatározzuk, várhatóan kik nem tudják visszafizetni az igényelt kölcsönt, azaz hitelkockázat szempontjából osztályozzuk az ügyfeleket. A tanuló minták olyan lezárt ügyletek adatait képezik, melyek esetében már ismert, hogy az ügyfél sikeresen visszafizette-e a kölcsönt vagy sem. Ezt az osztályozási modellt később előrejelzéshez alkalmazzuk annak eldöntésére, hogy az ügyfélnek folyósított kölcsön mekkora kockázatot rejt. Az osztálycímke tehát a STATUSZ attribútum, amelynek két értéke lehet: LEZART : a kölcsönt az ügyfél visszafizette, BEHAJTAS : az ügyfél nem fizetett, ezért behajtási státuszba került. Az ügyfelek jellemzésére akár több száz attribútum is rendelkezésünkre állhat, melyek közül jelen esettanulmányban az alábbiakat használjuk fel: Ügyfél életkora: KOR, Ügyfél háztartásában élők száma: HAZT _ELOK, Ügyfél háztartásában élő eltartottak száma: HAZT _ELO_ELTARTOT TAK, Saját lakásában él: SAJAT_LAKAS, 221
230 5.3. BAYES-MODELL ALAPÚ OSZTÁLYOZÁS ábra. A rendszer által felépített valószínűségi háló Mióta lakik jelenlegi lakcímén: MIOTA_LAKIK_IT T, Mióta dolgozik jelenlegi munkahelyén: MIOTA_DOLGOZIK_IT T, Fizetés módja: FIZET ESI_MOD, Hitel futamideje: FUTAMIDO, Hitel összege: HIT ELOSSZEG. A fenti attribútumok között található diszkrét (pl. fizetés módja) és folytonos (pl. életkor) is. A folytonos attribútumokat diszkrét kategóriákba kvantáljuk. Az esettanulmányban rekordot, azaz lezárult hitelügyletet vizsgálunk. Az osztályozási módszerek értékelésénél bemutatott százalékos módszernek megfelelően a rekordok 30%-át nem használjuk fel a modellalkotás során, hanem tesztadatként alkalmazzuk őket. Így képet kaphatunk arról, milyen pontossággal is működik modellünk. A maradék 70%-ot felhasználva a Bayes Generation rendszer felépíti az adatokra legjobban illeszkedő valószínűségi hálót, amely az ábrán látható. A gráf csúcsaihoz rendelt feltételes valószínűségi táblák közül vizsgáljuk meg az osztálycímkét, azaz a STATUSZ változót. A STATUSZ változó feltételes eloszlása a MIOTA_LAKIK_IT T és a MIOTA_DOLGOZIK_IT T attribútumok függvényében található meg a feltételes valószínűségi táblában, mely az ábrán látható. Az ábra alapján megállapítható, hogy a legnagyobb kockázat a lakcímén legfeljebb 1 éve élő, munkahelyén legfeljebb 3 éve dolgozó ügyfeleknél figyelhető meg, hiszen az ilyen ügyletek 25%-a behajtással végződik, míg a legrégebben jelenlegi lakcímén lakó és jelenlegi munkahelyén dolgozó ügyfeleknél ez az arány mindösszesen 5%. 222
231 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK ábra. A státusz változó feltételes eloszlása A Bayes-hálók egyik legelőnyösebb tulajdonsága értelmezhetőségük mellett a hiányos adatok kezelésében rejlik. A Bayes-hálóban alkalmazott következtető eljárás a nem ismert változókat a modellben szereplő további attribútumok alapján megbecsüli. Ezt kipróbálhatjuk a Bayes Generation rendszer what-if funkciójának segítségével, melyhez beállítjuk tehát, hogy egy olyan 18 és 31 év közötti ügyfélre vizsgáljuk a hitelkockázatot, aki legfeljebb 1 éve lakik jelenlegi lakcímén. A modell szerint egy ilyen ügyfél nagy valószínűséggel (65,8%) legfeljebb három éve dolgozik csak jelenlegi munkahelyén, ami jelentősen növeli a hitelkockázatot. A Bayes-háló szerint tehát az életkort is figyelembe véve a kölcsön vissza nem fizetésének már 21%-os a valószínűsége. Látható, hogy a legvalószínűbb érték minden esetben az, hogy az ügyfél visszafizeti a hitelt, hiszen a legrosszabb esetben is csak 25%-os a behajtás valószínűsége. Jelen esetben a bank számára az a fontos információ, hogy mely ügyfelek esetén nagyobb például a nem fizetés valószínűsége, mint 20%, mert lehet hogy már ez is nagyobb kockázat, mint amekkorát megéri számára felvállalni. Általában az ilyen modellek minősítésekor azt kell vizsgálni, hogy egy adott százalékos értéknél nagyobb nemfizetési valószínűség esetén elutasítva a hiteleket sikerült-e a jó ügyfelek nagy részét elfogadnunk, és a kockázatos ügyfelek nagy részét elutasítanunk. 223
232 5.4. A K-LEGKÖZELEBBI SZOMSZÉD TECHNIKA 5.4. A k-legközelebbi szomszéd technika Mi emberek gyakran úgy oldunk meg problémákat, hogy a múltban történt hasonló szituációkat keressük elő, és azok megoldását kis mértékben módosítjuk. Ezt az elvet esetalapú következtetésnek (case-based reasoning) nevezzük, és adatbányászati feladatok megoldása során is felhasználhatjuk. Mint ahogy látni fogjuk, az eset-alapú következtetés és a k-legközelebbi szomszéd technika alapgondolata azonos. A döntési fák és a Bayes-alapú osztályozás esetén is osztályozási modelleket építettünk fel, melyek segítségével leíró és prediktív típusú adatbányászati feladatokat tudtunk megoldani. A k-legközelebbi szomszéd elvén alapuló osztályozás az eddig ismertetett módszereknél sokkal egyszerűbb, és nem épít előre modellt a minták osztályozásához. A módszert k-nn algoritmusnak is szokás nevezni, ez az angol k-nearest neighbours elnevezésből ered. Tételezzük fel, hogy a tanuló mintákat az osztálycímkén kívül n különböző attribútum jellemzi. Ezek az attribútumok az egyszerűség kedvéért legyenek numerikusak, az osztálycímke pedig kategorikus. Ekkor minden tanuló mintát tekinthetünk egy-egy n dimenziós térbeli pontnak. A k-legközelebbi szomszédon alapuló osztályozási technika alapötlete az, hogy egy új minta osztályozásához megkeressük a minta k legközelebbi szomszédját az említett n dimenziós térben. Ha ezeket megtaláltuk, akkor az ismeretlen mintát abba az osztályba soroljuk, amely a k szomszéd között a leggyakoribb. Az eset-alapú következtetés analógiájával élve azt is mondhatjuk, hogy jelen helyzetre a módszer a legközelebbi (leghasonlóbb) múltbéli esetek alapján választja ki a megoldást. A legegyszerűbb esetben k = 1, ami azt jelenti, hogy az ismeretlen minta abba az osztályba fog kerülni, amelyikbe a legközelebbi szomszéd is tartozik. Ezt a módszert 1-NN algoritmusnak is nevezzük. Továbbá ha k > 1, és az osztálycímke csak két értéket vehet fel (pl. igen, nem), akkor a k értékének szokás páratlan értéket adni, így minden esetben kialakul egy többség a k-legközelebbi szomszéd osztálycímke értékei közt, amit az előrejelzéshez fel tudunk használni. Ezek után már csak azt kell tudnunk, hogyan találjuk meg egy új minta k legközelebbi szomszédját. Az elképzelt n dimenziós térben a pontok közti távolságot leggyakrabban az Euklideszi-távolsággal számítjuk. A távolság mértéket szokás még az ún. Manhattan-távolsággal is definiálni (ld fejezet). Ha n > 1, azaz több ismérv is van, akkor az értékeket normalizálni kell ahhoz, hogy az egyes attribútumok azonos súllyal számítsanak a távolságok kiszámításakor. Az értékeket általában a fejezet szerint normalizáljuk. A k-nn módszer bemutatására tekintsünk egy egyszerű példát. 224
233 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK Kor (év) Jövedelem (eft/hó) Vásárol Nem Nem Nem Igen Igen Nem 5.6. táblázat. Ismert minták 5.8. Példa. Az ismert mintákat az 5.6. táblázat tartalmazza. Ezek az adatok már szerepeltek a fejezet elején az 5.1. táblázatban, most a számítások egyszerűsítésének érdekében csupán 6 mintát vizsgálunk. Tegyük fel, hogy az új ügyfél kora 45 év, jövedelme 122 ezer forint. Ezen információk ismeretében a k-nn technika segítségével előrejelzést szeretnék adni arra vonatkozóan, hogy az említett ügyfél megvásárolja-e a kérdéses terméket. Az és Az ábrán az ismert mintákat az osztálycímke értékektől függően üres (vásárol) és teli (nem vásárol) karikákkal, míg az új ügyfelet egy x-szel jelöltük. A feladat megoldásához először is meg kell találnunk a k-legközelebbi szomszédot. Mielőtt azonban a konkrét távolság értékeket kiszámolnánk, az egyes attribútumhoz tartozó értékeket normalizálnunk kell. Ezek után már minden adott ahhoz, hogy megkeressük az új ügyfél k-legközelebbi szomszédját. A távolságok számításánál a d i érték mindig az i. minta és az ismeretlen osztálycímkéjű rekord Euklideszi távolságát jelenti. Ezek alapján tehát: d 1 = 0.77 d 2 = 0.897, illetve d 3 = d 4 = d 5 = 0.224, és végül d 6 = A d 1,...,d 6 távolságok közül a d 5 a legkisebb. Ha k = 1, vagyis 1-NN technikát alkalmazunk, akkor az új minta osztálycímke értékéül az 5. minta osztálycímke értékét választjuk. Ez azt jelenti, hogy mivel az 5. minta által reprezentált vásárló (46 éves, 132ezer Ft jövedelemmel) megvette a terméket, ezért az új ügyfél is meg fogja vásárolni a terméket az előrejelzésünk szerint. Mindezt az ábrán láthatjuk. Az 1-NN technikát alkalmazva tehát vásárol az ügyfél. Vizsgáljuk meg, vajon ugyanehhez az eredményhez jutunk-e k = 3 esetén is! A d 1,...,d 6 távolságok közül a három legkisebbet kell kiválasztanunk, ezek rendre d 3, d 5, d 6, vagyis a három legközelebbi szomszéd a 3., 5. és a 6. rekord. Az 5.6. táblázat adatai szerint a minták által reprezentált három 225
234 5.4. A K-LEGKÖZELEBBI SZOMSZÉD TECHNIKA ábra. Az eredmény k = 1 esetén ábra. Az eredmény k = 3 esetén ügyfél közül csak egy vásárol, a másik kettő pedig nem (3., 6. minta). Ezért k = 3 esetén azt mondjuk, hogy az új ügyfél nem fogja megvásárolni az adott terméket. A példa tanulsága, hogy a k-nn technikát alkalmazva fontos a k értékének megválasztása, az előrejelzés eredményének szempontjából. Gyakran célszerű többféle k érték esetén is értékelni az előrejelzés eredményét. Megjegyezzük, hogy k = 1 esetben szemléletes lehet egy új minta osztályozásánál az ún. Voronoi-diagram felrajzolása. A Voronoi-diagram komplex poligonokkal határolható Voronoi-cellákból áll. Minden egyes cella pontosan egy ismert mintát tartalmaz, ez a minta jellemzi az adott cellát. A Voronoi-cellák sajátossága, hogy a tér tetszőleges pontja mindig ahhoz az ismert mintához van a legközelebb, amelyik cellába tartozik. Ezáltal tehát, ha egy ismeretlen mintát elhelyezünk a Voronoi-diagramon, akkor rögtön látjuk, hogy melyik ismert mintához van a legközelebb, azaz ismerjük a legközelebbi szomszédját. Megfigyelhetjük, hogy az előző példában numerikus attribútumokat és kategorikus osztálycímkét használtunk, és a bevezetőben is ennek megfelelő feltételezéssel éltünk. Emellett a k-legközelebbi szomszéd elvén alapuló osztályozást könnyen kiterjeszthetjük kategorikus változók és folytonos értékű osztálycímke értékekre is. Két kategorikus érték eltérése esetén a távolságot általában a fejezet szerint definiáljuk. Folytonos értékek előrejelzése esetén pedig az ismeretlen minta osztálycímke értékét a k- legközelebbi szomszédhoz tartozó osztálycímke értékek átlaga határozza meg, tehát a k-nn módszer numerikus értékek előrejelzésére is használható. 226
235 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK ábra. Voronoi-diagram Hiányzó értékek kezelése esetén általában szokásos a legrosszabb esetet feltételezni. Ez azt jelenti, hogy a távolságok számításakor annál az attribútumnál, ahol hiányzó értékkel találkozunk, a lehetséges legnagyobb távolsággal számolunk. Például tegyük fel, hogy az adatok 0 és 1 közé vannak normalizálva, és egy ismert minta i. attribútumához tartozó értéke hiányzik. Továbbá az új minta i.-dik attribútum értéke legyen például 0.3. Ekkor az i.-ik ismérvhez tartozó távolság 0.7 lesz. A k-nn algoritmus alapelvét megismerve rögtön eszünkbe juthat két probléma. Az egyik az, hogy az alap módszer szerint a normalizálás miatt minden attribútum ugyanolyan fontos. A gyakorlatban ez szinte soha nem teljesül. Elvárásunk lehet tehát az, hogy bizonyos esetekben egy fontosabb ismérvben való kisebb eltérés nagyobb távolságot eredményezzen, mint egy kevésbé fontos paraméterben való nagyobb eltérés. Ezt a legegyszerűbben úgy oldhatjuk meg, hogy a priori információk ismeretében súlyozzuk a paramétereket fontosságuk szerint. A másik probléma a k-nn módszerrel az, hogy alapesetben mind a k szomszédot ugyanolyan fontosnak tekinti az ismeretlen minta osztálycímkéjének meghatározásához, holott a távolabbi szomszédok kevésbé, a közelebbiek pedig jobban hasonlítanak az új mintához. Könnyen belátható, hogy valószínűleg pontosabban tudjuk osztályozni az új mintákat, ha a szomszédokat a távolságukkal fordított arányban súlyozzuk. A súlyokat ennek megfelelően a következő összefüggéssel szokás számolni: w = 1 d(y,x i ) 2 (5.15) 227
236 5.5. OSZTÁLYOZÁSI MODELLEK PONTOSSÁGA Ezt a módszert távolság-súlyozott k-nn osztályozásnak nevezzük. A módszer legnagyobb hátránya mégis az, hogy nem készít semmilyen modellt vagy szabályt, amely az előző tapasztalatokat összegezné. Az előrejelzés a rendelkezésre álló összes korábbi adaton alapul, ezért nem tudjuk megmondani, hogy melyik attribútum milyen mértékben befolyásolja az osztályozás eredményét. A k-nn módszer előnye viszont az egyszerűsége, és az, hogy könnyen értelmezhető kategorikus és folytonos értékű attribútumok és osztálycímke értékek esetén is. A k-nn módszer gyakran meglepően pontos. A k > 1 esetben pedig még a zajos és hiányzó értékeket is jól kezeli. (Az 1-NN módszer nem meglepő módon zajérzékeny.) A Weka-ban elérhető IBk (instance-based k) algoritmus a k-legközelebbi szomszéd elvén alapul. A k értékét a -K kapcsolóval adhatjuk meg, az alapértelmezett érték 1. További érdekes lehetőség a -X kapcsoló, melynek használatakor a program optimalizálja a k értéket (1 és a -K -nál megadott érték között) úgy, hogy a pontosság a lehető legnagyobb legyen. A k-nn módszer kevés szoftverben implementált. Ennek fő oka az, hogy a módszer nem skálázható. A legközelebbi szomszédok megkereséséhez minden mintát a memóriában kell tárolni, hiszen egy új minta osztályozásához az összes szomszédtól való távolságot ki kell számolni. A gyakorlatban ez nagy adathalmazok esetén nehézségeket okozhat. Egy komplexebb osztályozási módszer megfelelő paraméterezés mellett általában jobb pontosságot ad, illetve gyorsabb nagyszámú rekord esetén Osztályozási modellek pontossága A fejezet eddigi részében az osztályozási feladatok három lépése közül az elsővel, az osztályozási modellek készítésével foglalkoztunk. Ismertettünk néhány módszert, melyek felhasználásával osztályozási modelleket tudunk előállítani. Ebben a részben megvizsgáljuk, hogyan lehet mérni egy osztályozási modell becslési pontosságát. A modell pontosságának (teljesítményének) kiértékelése talán a legkényesebb lépése az adatbányászatnak. Az osztályozás helyességét a modell által előzőleg nem ismert teszt minták segítségével tudjuk vizsgálni. A modell pontosságának értékelése tehát azon alapszik, hogy a teszt minták valós osztálycímke értékeit összehasonlítjuk az osztályozási modell által a teszt mintákra számított osztálycímke értékekkel. Mindezt az 5.7. táblázatban látható keveredési mátrixban tudjuk összegezni. A legegyszerűbb esetben a keveredési mátrix 2x2-es, azaz a mintákat két osztályba soroljuk, vagyis az osztálycímke két értéket vehet fel, például igen - nem, csaló - nem csaló, alacsony - magas, stb. A két osztályt most általánosan pozitív és negatív osztálynak nevezzük. Ekkor a mátrix elemeinek jelentése a következő: 228 a - azon negatív minták száma, melyeket helyesen negatív osztályba soroltunk.
237 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK Negatív Pozitív Negatív a b Pozitív c d 5.7. táblázat. Keveredési mátrix C 1 C 2 C 3 C 4 C C C C táblázat. Példa keveredési mátrix b - azon negatív minták száma, melyeket hibásan pozitív osztályba soroltunk. c - azon pozitív minták száma, melyeket hibásan negatív osztályba soroltunk. d - azon pozitív minták száma, melyeket helyesen pozitív osztályba soroltunk. Összefoglalva tehát tetszőleges méretű keveredési mátrix fő diagonálisában található értékek jelen esetben a és d a helyesen osztályozott példányszámokat mutatják osztályonként. A mátrix többi eleme a példában b és c pedig azon teszt minták számát tartalmazza, melyeket a modell hibásan más osztályba sorolt. A modell annál pontosabb, minél több teszt mintát sorol a helyes osztályba. Becslési pontosság alatt a modell által helyesen osztályozott teszt minták arányát értjük. A modell pontossága tehát egy 0 és 1 közötti érték, melyet szokás százalékos formában is megadni. A keveredési mátrix segítségével könnyen számítható a modell becslési pontossága: a fő diagonál értékeit összeadjuk, és elosztjuk a teszt minták számával. Pontosság = a + d a + b + c + d (5.16) Az elmondottak szemléltetésére tekintsünk egy példát. Tegyük fel, hogy egy osztályozási modell keveredési mátrixa az 5.8. táblázatnak megfelelő. Ekkor a modell pontosságának számítása: Pontosság= = = 89.42% Megjegyezzük, hogy a gyakorlatban az osztályozási modellek becslési pontossága szinte soha nem 100%. Ha ilyen esettel találkozunk, akkor vagy mesterségesen kitalált adatokról van szó, vagy nagyon kevés rekord alapján készült az osztályozási modell. 229
238 5.5. OSZTÁLYOZÁSI MODELLEK PONTOSSÁGA A pontosság növelésének lehetőségei Alapvető igazság, hogy az osztályozás annál pontosabb, minél több tulajdonságot, attribútumot tudunk figyelembe venni. Emellett azonban az osztályozási módszerekről általában elmondható, hogy érzékenyek az attribútumok számára. Ha túl sok jellemző változó és kevés adat áll rendelkezésre, akkor rendszerint az osztályozási modell pontossága kicsi. Ez esetben, ha az adatok számát nem tudjuk növelni, akkor célszerű az attribútumok számát csökkenteni. Ezt alapvetően kétféle módon tehetjük meg: Száműzzük a redundáns ismérveket, azaz például a születési év és az életkor közül csak az egyiket szerepeltetjük. Kihagyjuk azokat az attribútumokat, melyek az osztályozás szempontjából nagy valószínűséggel nem relevánsak. Tehát például egy hitelbírálat esetén az ügyfél szemének színe valószínűleg nem befolyásolja a hitel visszafizetés kockázatát. Mindemellett a nem releváns változók elhagyásával célszerű óvatosan bánni, hiszen az adatbányászat feladata éppen az, hogy új, eddig ismeretlen összefüggéseket tárjunk fel a rendelkezésre álló adatokból Egyéb mérőszámok Az osztályozási modell jellemzésére a pontosság mellett definiálhatunk még néhány mérőszámot, ezek értékeit szintén a keveredési mátrix elemeinek ismeretében számíthatjuk. True positive rate (TP) : A helyesen osztályozott pozitív minták aránya. Az angol nyelvű szakirodalomban találkozhatunk ezzel az értékkel sensitivity néven is, magyarul érzékenységnek szokás fordítani. Például adócsalás felderítése esetén ez a mérőszám megmutatja, hogy a tényleges adócsalókat milyen arányban találta meg a modell. A d c+d. b a+b. kiszámítás a következő: T P = False positive rate (FP) : a hibásan osztályozott negatív minták aránya. Példánknál maradva FP azon ügyfelek arányát adja meg, akik nem csaltak, de a modell gyanúsítja őket. Az érték szintén egyszerűen számítható a keveredési mátrix elemeinek ismeretében: FP = Néhány szélsőséges osztályozó esetében könnyen megadható TP és FP értéke. Ezt az 5.9. táblázatban foglaltuk össze: True negative rate (TN) : A helyesen osztályozott negatív minták aránya. Szokás még angolul specificity-nek, vagy magyarul sajátosságnak is nevezni: T N = a a+b. False negative rate (FN) : A hibásan osztályozott pozitív minták aránya, mely a következő összefüggés alapján számolható ki: FN = 230 c c+d.
239 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK TP FP Osztályozó jellemzése 1 0 tökéletes 0 1 teljesen hibás 1 1 minden mintát a pozitív osztályba sorol 0 0 minden mintát a negatív osztályba sorol 5.9. táblázat. Néhány speciális (TP,FP) pár Nem Igen Nem Igen táblázat. Keveredési mátrix - biztosítási csalás Egyszerűen belátható, hogy a következő összefüggések is fennállnak:fp = 1 T N, illetve T P = 1 FN. Precision (megbízhatóság) : A helyesen pozitív osztályba sorolt minták aránya, azaz itt az összes mintát figyelembe vesszük. Ha például az osztályozás célja adócsalás felderítésére irányul, akkor ez a mérőszám azt mutatja meg, hogy a modell által meggyanúsított ügyfelek közül milyen arányban vannak tényleges adócsalók. A megbízhatóság számítása nem tévesztendő össze az képletben megadott pontosság számításával: P = d b+d. A keveredési mátrix és az képlet szerint számolható pontosság számos esetben jól használható a modell értékeléséhez, azonban mindig érdemes belegondolni, mit is tükröznek a keveredési mátrix elemei. Ennek szemléltetésére és a definiált mérőszámok használatára tekintsük a következő egyszerű példát Példa. Képzeljünk el egy biztosítótársaságot, mely adatbányászati eszközökkel szeretné kiszűrni az ügyfelek közül azokat, akik biztosítási csalást követtek el. A példa kedvéért tételezzük fel, hogy 1000 ügyfél adatai állnak rendelkezésre, melyből 5 esetben történt csalás. A társaság munkatársai a csalók kiszűrésére elkészítenek egy osztályozási modellt, és az táblázatnak megfelelő keveredési mátrixot kapják. A keveredési mátrix szerint a modell a 995 becsületes ügyfél mindegyikét jól osztályozta, viszont mind az 5 csalót helytelenül a becsületesek közé sorolta. Ez tehát egy nagyon rossz minőségű modell, hiszen segítségével egyetlen biztosítási csalást elkövető ügyfelet sem tudtunk kiszűrni. Ennek ellenére a pontosság értékét kiszámítva meglepő eredményhez jutunk. Pontosság= = = = 99.5% 231
240 5.5. OSZTÁLYOZÁSI MODELLEK PONTOSSÁGA A pontosság azt tükrözi, hogy szinte tökéletes az osztályozás, azonban a keveredési mátrix elemeit értelmezve könnyen belátható, hogy az osztályozási modell a gyakorlatban használhatatlan lenne. A tanulság tehát az, hogy a pontosság csupán egy paraméter, mely önmagában kevés ahhoz, hogy az osztályozási modellt értékelni tudjuk. A pontosság mellett mindig érdemes a keveredési mátrix elemeit is értelmezni. Az ilyen és ehhez hasonló problémákat megoldhatjuk úgy is, hogy az képletben definiált pontosság helyett más pontosság-mértékkel jellemezzük az osztályozási modellt. Célunk az, hogy a pontosság értéke 0 legyen, ha a modell minden pozitív mintát hibásan osztályozna. Ezt legegyszerűbben úgy érhetjük el, ha a TP értékét szorzótényezőként szerepeltetjük. Ekkor, ha TP értéke nulla, akkor a szorzat is nulla lesz. Az előbbiekben megfogalmazott elvárásnak megfelelnek a következő képletek szerint definiált geometriai középérték számításán alapuló mértékek és az ún. F-mérték is: g mean1 = T P P, g mean2 = T P T N, F = (β2 + 1) P T P β 2 P + T P (5.17) Az F-mérték β paraméterét a P és TP értékek súlyozására használjuk. Definíció szerint a β értéke tetszőleges 0 és + közötti szám lehet. Az osztályozók pontosságának vizsgálatakor meg kell említenünk az ún. prediktív modellek értékelését is. Ehhez számos alapelv és technika kapcsolódik, melyeket például a marketing területén gyakran alkalmaznak. Függetlenül attól, hogy milyen technikát alkalmazunk a prediktív modellek értékelésekor, célunk minden esetben az, hogy valamilyen módon az egyes modellek előrejelzésének hatékonyságát számszerűsítsük. A prediktív modellek értékelésének megismeréséhez ajánljuk a [72] könyvet és a könyvünk honlapján lévő linkeket, ahol sok más információ mellett egy ide kapcsolódó kidolgozott példát találhatunk Tanulás és tesztelés Az osztályozási modellek pontosságának részletezésekor egy fontos kérdést nem említettünk. Mégpedig azt, hogy a rendelkezésre álló ismert osztálycímkéjű minták közül hogyan választjuk ki, hogy mely mintákkal fogjuk tanítani, illetve tesztelni a modellt. Ez azért fontos, mivel a modell pontossága erősen függhet az ellenőrző (teszt) minták megválasztásától. A következőkben röviden ismertetjük az ellenőrző minták kiválasztásának leggyakrabban használt módszereit. 232
241 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK Egyszerű technikák A legegyszerűbb esetben a tanuló mintákkal tesztelünk. Ez azt jelenti, hogy felépítünk egy modellt a tanuló minták segítségével, és ugyanazokat a mintákat használjuk a teszteléshez is. Könnyen belátható, hogy ez az elv túlságosan is optimista, hiszen a modell valószínűleg elég pontos lesz, ha ugyanazokkal az adatokkal teszteljük, melyekkel felépítettük. Éppen ezért ezt a módszert a gyakorlatban csak akkor célszerű követni, ha kevés rekord áll rendelkezésre, és a tanító minták számát nem szeretnénk tovább csökkenteni, mivel az még gyengébb minőségű modellhez vezetne. Egy sokkal jobb módszer a teszteléshez az, ha az ismert osztálycímkéjű adatokat két diszjunkt halmazra osztjuk fel. A felosztást véletlenszerűen végezzük el úgy, hogy az egyik részhalmaz elemei a tanuló minták lesznek, a másik részhalmaz pedig a teszt mintákat fogja tartalmazni. Általában a tanuló minták száma nagyobb, mint a teszt mintáké. Például az adatok kétharmada tanuló, egyharmada pedig teszt mintaként szerepel. A gyakorlatban ezt a felosztást általában százalékos értékek formájában adjuk meg, ezért a módszert százalékos felosztásnak nevezzük. Ezt a fajta felosztást szokás még visszatartó módszernek is nevezni. A tanuló és teszt minták ilyen elven való elosztása csak viszonylag sok ismert minta esetén használható jól. A gyakorlatban legalább néhány száz mintára szükség van ahhoz, hogy megfelelő minőségű modellt kapjunk. A százalékos felosztás elvének egy továbbfejlesztett változata az, hogy a fent említett módszer szerint összesen k alkalommal végezzük el a tanítást és tesztelést. Ennek következménye a véletlen kiválasztásnak köszönhetően az, hogy minden egyes alkalommal más és más minták kerülnek a tanító és a tesztelő minták részhalmazába. Összesen tehát k különböző pontosság értéket kapunk, mely értékek átlagát tekintjük a modell pontosságának. Ezt a módszert véletlenszerű mintavételezés módszerének nevezzük. Kereszt-validálás A gyakorlatban is jól ismert technika az ún. n-szeres kereszt-validálás, melynek lényege, hogy a rendelkezésre álló ismert osztálycímkéjű mintákat véletlenszerűen n darab azonos elemszámú halmazba osztjuk. Ezután az n halmazból 1-et kiválasztunk, melynek elemeivel tesztelni fogjuk a modellt. A maradék n 1 halmazt pedig a modell tanítására használjuk. Mivel n halmaz áll rendelkezésre, ezért a tanuló és teszt minták kiválasztását n-féleképpen tehetjük meg. Mind az n esetben felépítjük a modellt, és a tesztelések során kapott pontosságok átlagát vesszük, ez lesz a modell végső pontossága. A módszer szemléltetésére nézzünk egy egyszerű példát. Tegyük fel, hogy n = 4 halmazba osztjuk fel a mintákat. Ez esetben tehát 4 különböző osztályozási modellt építhetünk fel, minden esetben 3 halmaz elemeit használjuk tanításra, a maradék egy halmaz elemeivel pedig tesztelünk. Ekkor a modell pontosságát a négy különböző esetben számolt pontosság értékek (P 1,...,P 4 ) átlagaként számíthatjuk. Az adatbányászati 233
242 5.5. OSZTÁLYOZÁSI MODELLEK PONTOSSÁGA szoftvereknél általánosan elterjedt, hogy az n értéke alapértelmezetten 10, ami 10-szeres kereszt-validálást jelent. Ez nem csupán véletlen vagy megszokás, hanem igazolható tény, hogy a kereszt-validálás n = 10 esetén tudja a legjobban megbecsülni a modell tényleges pontosságát. A kereszt-validálás egy módosított változata az ún. rétegezett kereszt- validálás. Ez esetben a kezdeti n halmazt úgy alakítjuk ki, hogy a különböző osztályokba tartozó rekordok minden halmazba körülbelül hasonló eloszlásban kerüljenek. Tehát a mintákat nem véletlenszerűen tesszük az egyes halmazokba, hanem figyelünk arra, hogy az osztálycímke értékek eloszlása közel azonos legyen az n halmazban. A felsorolt módszerek közül a kereszt-validáláson alapuló tesztelés adja a legegzaktabb becslést a modell pontosságát tekintve, emellett használata ideális kis adathalmazok esetén. Hátrányaként említhetjük viszont, hogy számításigényes, mivel n-szer tanítja és teszteli a modellt. Leave-one-out Az n-szeres kereszt-validálás egy speciális esete, amikor az n értéke megegyezik az ismert minták számával. Ez azt jelenti, hogy a kereszt-validálás n lépésében mindig csak egyetlen mintával tesztelünk, az összes többivel pedig tanítunk. Ennek megfelelően a módszer angol elnevezése: leave-one-out. A technika előnye a kereszt-validálással szemben, hogy nincsen benne véletlenszerűség, hiszen minden lépésben csak egy teszt minta van, és mindegyik minta szerepel egyszer teszt mintaként. Ez tehát azt jelenti, hogy a leave-one-out módszer minden futtatáskor ugyanazt az eredményt adja. A módszer másik előnyeként említhetjük, hogy a kereszt-validálásnál pontosabb osztályozási modellhez juthatunk. Ennek oka az, hogy minden lépésben csak egy mintát veszünk ki a tanuló minták közül, ezáltal nagyobb számú rekord marad a modell tanításához. A kereszt-validálás és a leave-one-out technika hátrányos tulajdonsága, hogy az osztályozó algoritmust n-szer kell lefuttatni a pontosság becsléséhez. A kereszt-validálás esetén ez még nem olyan jelentős probléma, mivel n értéke kicsi, jellemzően 3, 5 vagy 10. A leave-one-out technika viszont nem alkalmazható nagyszámú minta esetén, mivel ahány ismert minta van, annyiszor kellene lefuttatni az algoritmust. Például minta esetén elfogadhatatlan, hogy az osztályozási algoritmust szer kelljen lefuttatni, szemben az eredeti kereszt-validálás 10 iterációjával. A leave-one-out technika másik jelentős hátránya, hogy az algoritmus minden futtatásakor csupán egy teszt minta áll rendelkezésre. Ennek az a következménye, hogy sohasem lesz reprezentatív a teszt minták halmaza, mivel egy-egy mintával nem lehet megvalósítani, hogy minden osztály képviselve legyen. 234
243 5. FEJEZET: OSZTÁLYOZÁSI FELADATOK Bootstrap Egy másik, szintén jól ismert tesztelési technika a bootstrap névre hallgat. A módszer lényege nagyon egyszerű. Tegyük fel, hogy n számú ismert minta áll rendelkezésre, és az egyes mintákat a sorszámuk alapján azonosítjuk. A tanuló minták kiválasztásához generálunk 1 és n között n darab véletlen számot az ismétlődések megengedésével. Azokkal a mintákkal fogjuk tanítani a modellt, melyek sorszáma bekerült az n elemű halmazba. A teszt mintákat pedig azok a minták fogják alkotni, melyek sorszáma az ismétlődés megengedése miatt nem található meg az n elemű halmazban. A leírtak bemutatására tekintsünk egy egyszerű példát. Tegyük fel, hogy n = 10, azaz 10 ismert mintánk van. Ekkor legyen a generált számsor a következő: 8,3,3,10,2,7,8,10,9,5. Ez azt jelenti, hogy az első, negyedik, hatodik mintával tesztelni fogjuk az osztályozási modellt, mivel ezen minták sorszáma nem szerepel a generált számsorban. Az összes többi mintát (rendre 2., 3., 5., 7., 8., 9., 10.) pedig tanuló mintaként kezeljük. A valószínűségszámítás segítségével könnyen kiszámíthatjuk, hogy a bootstrap technika az ismert mintákat milyen arányban osztja fel tanuló és tesztelő mintákra. Annak valószínűsége, hogy egy adott mintát egy véletlen szám generálásakor nem választunk ki: 1 1 n. Tehát például n=10 esetén 90% a valószínűsége annak, hogy egy adott mintát nem választunk ki. Mivel n véletlen értéket generálunk az ismétlődés megengedésével, ezért (1 1 n )n a valószínűsége annak, hogy egy minta az n lépés elteltével sem kerül a tanuló minták halmazába. Mivel ez minden ismert mintára fennáll, ezért a teszt minták számának várható értéke: ( n 1 1 n (5.18) n) Például 150 ismert minta esetén várhatóan 55 minta kerül a teszt minták közé, mivel: 150 ( ) Továbbá a minták számának növekedtével könnyen belátható, hogy ( lim 1 1 n = e n) (5.19) Ez azt jelenti, hogy a bootstrap technikát alkalmazva statisztikailag a minták 36.8%- a teszt, míg 63.2%-a tanuló mintaként fog szerepelni, ezért a technikát a szakirodalomban bootstrap-nek is szokás nevezni. Megjegyezzük, hogy a tanuló minták viszonylag alacsony aránya gyenge pontosság értékeket eredményezhet, ha a teszteléshez csak a teszt mintákat használjuk. Ez esetben a pontosság megállapítására a tanuló minták által kapott pontosság értékeket is fel szokás használni az alábbi összefüggés szerint. Pontosság= Pontosság(teszt minták) Pontosság(tanuló minták) 235
244 5.5. OSZTÁLYOZÁSI MODELLEK PONTOSSÁGA Ezenkívül a bootstrap technika esetén is alkalmazható az a módszer, hogy többször hajtjuk végre a tesztelést, és a pontosság értékeket átlagoljuk annak érdekében, hogy minél jobban meg tudjuk becsülni a modell tényleges pontosságát. Függetlenül attól, hogy milyen tesztelési technikát alkalmazunk, minden esetben kerüljük a modell túltanítását, mivel az ismeretlen minták osztályozásánál ez gyenge pontossághoz fog vezetni. Összességében elmondhatjuk, hogy az osztályozási módszerek között nincsen univerzális. Nem ismert olyan módszer vagy algoritmus, mely minden szempontból jobb lenne a többinél, illetve tetszőleges osztályozási modellhez készíthető olyan teszt adathalmaz, melynek elemeit a modell csak gyenge pontossággal képes osztályozni. 236
245 6. fejezet Gyakori elemhalmazok és asszociációs szabályok feltárása Napjainkban szinte kivétel nélkül minden terméket, szolgáltatást egyedi kóddal látunk el, amelynek segítségével a kereskedelmi tranzakciókat (vásárlásokat) számítógépeken tároljuk. A tárolt vásárlói tranzakciók elemzése, a köztük megbújó összefüggések feltárása, majd tudássá alakítása segíthet a vásárlói szokások megértésében. Az így kinyert tudás üzletstratégiába való beépítésével profitnövekedés érhető el. Ha például tudjuk, hogy az A termék vásárlása esetén a B terméket is előszeretettel választják a vásárlók, akkor a B termék A mellé helyezésével növelhető előbbi eladása. Egy másik stratégia lehet a két termék egymástól távol való helyezésével egyéb termékek vásárlásának ösztönözése. Az ilyen és ezekhez hasonló üzletstratégiákhoz elengedhetetlen a vásárlói szokások megismerése. Ez az igény hívta életre a gyakori elemhalmazok és a köztük fennálló összefüggések (asszociációs szabályok) kutatását. Az elemhalmazok természete (adattípusa) és a kifejlesztett módszerek, algoritmusok alkalmazási területe azonban nem korlátozódik csak a vásárlói szokások kutatására. Éppúgy alkalmazhatók banki ügyfelek számlamozgásainak vizsgálatára, mint gyakran előforduló molekulaszerkezetek azonosítására rákkeltő anyagokban, vagy hasonló szabályzással rendelkező gének kimutatására. További alkalmazási terület lehet a komplex ipari technológiák, rendszerek elemzése, illetve a feltárt szabályszerűségek felhasználása a rendszermodellezésben. A fejezetben a gyakori elemhalmaz keresés alapjainak és a különböző keresési eljárások (algoritmusok) részletes ismertetése mellett bemutatjuk az asszociációs szabályok előállítási módszerét, továbbá megvizsgáljuk a feltárt szabályok korlátait és a különböző érdekességi mutatókat. 237
246 6.1. ALAPFOGALMAK Kosár Termékek 1 tej, kenyér, sör, tojás 2 kenyér, pelenka, tojás, sör 3 tej, kenyér 4 tej, pelenka, szalonna, sör 5 tej, kenyér, pelenka, sör 6.1. táblázat. Vásárlói kosarak 6.1. Alapfogalmak Jelölje E = {e 1,e 2,...,e m } egy adatbázisban előforduló elemek halmazát. Az E halmaz részhalmazait elemhalmazoknak nevezzük. Ha egy elemhalmaz k darab elemet tartalmaz, akkor k-elemhalmaznak hívjuk. Legyen T = {t 1,t 2,...,t n } tranzakciók (rekordok) halmaza, ahol minden t i E, i n. Azt mondjuk, hogy egy X E elemhalmaz előfordul a t i tranzakcióban, ha X t i. A T tranzakciók azon számát, amelyekben az X elemhalmaz előfordul, az X elemhalmaz gyakoriságának nevezzük, és a következő képlettel számoljuk: gyakoriság(x) = {t i X t i, t i T } (6.1) A gyakorlatban sokszor százalékos formában adjuk meg a gyakoriságot, azaz az előfordulás és a tranzakciók számának hányadosaként: gyakoriság(x) = {t i X t i, t i T } T (6.2) A gyakoriság tehát nem más, mint a P(X) valószínűség. Az X elemhalmazt gyakorinak hívjuk, ha a tranzakciók felhasználó által megadott számában (százalékában) előfordul. Ezt az ún.minimális gyakoriságot vagy gyakoriságküszöböt σ-val jelöljük. Azaz X gyakori, ha gyakoriság(x) >= σ (6.3) Illusztrációként tekintsük a 6.1. táblázatot, amely egy egyszerű vásárlói adatbázist mutat, ahol minden egyes tranzakció egy vásárlói kosarat tartalmaz. A táblából könynyen kiolvashatjuk, hogy E = {tej, kenyér, pelenka, tojás, sör, szalonna} az elemek (termékek) halmaza. A 2-elemű {pelenka, sör} elemhalmaz gyakorisága 3 (60%), mert a második, negyedik és ötödik tranzakció is tartalmazza mind a két terméket. A gyakori elemhalmazok hiányossága, hogy az elemhalmazban szereplő elemek közti kapcsolatot nem mutatják. Az elemek közti kapcsolatok kifejezésére az asszociá- 238
247 6. FEJEZET: GYAKORI ELEMHALMAZOK ÉS ASSZOCIÁCIÓS SZABÁLYOK FELTÁRÁSA ciós szabályok szolgálnak. Asszociációs szabálynak az X Y (6.4) implikációt nevezzük, ahol X és Y elemhalmazok és X,Y E, X Y =. Asszociációs szabályok kinyerésekor arra keressük a választ, hogy a tranzakciók hány százaléka tartalmazza Y elemhalmazt, ha X elemhalmazt is tartalmazza. Ennek meghatározására az ún. bizonyosság mutatót használjuk, és a következőképpen számoljuk: bizonyosság(x Y ) = gyakoriság(x Y ) gyakoriság(x) (6.5) Egy szabály bizonyossága tehát nem más, mint a P(Y X) feltételes valószínűség. Példaként számoljuk ki a pelenka sör szabály bizonyosságát: bizonyosság(pelenka sör) = gyakoriság(pelenka sör) gyakoriság(pelenka) = 3 = 0,75 (75%) 4 A kapott eredményt úgy értelmezzük, hogy a vásárlók 75 százaléka a pelenka mellé sört is tett a kosarába. Ha egy asszociációs szabály bizonyossága nem kisebb, mint egy, a felhasználó által megadott minimális bizonyosság vagy bizonyosság-küszöb (γ), akkor azt mondjuk, hogy a szabály kielégíti a minimális bizonyosság követelményét. Egy szabályt érvényes asszociációs szabálynak nevezünk, ha kielégíti mind a minimális gyakoriság, mind a minimális bizonyosság követelményét, azaz gyakoriság(x Y ) σ és bizonyosság(x Y ) γ (6.6) Az érvényes asszociációs szabályok feltárása kétlépéses feladat: az első lépésben megkeressük a gyakori elemhalmazokat, míg a másodikban a feltárt gyakori elemhalmazokból előállítjuk az érvényes asszociációs szabályokat. Egy harmadik lépés lehet az ún. érdekességi mutatók használata a szabályok rangsorolásához, érdekességük megállapításához. Erre a lépésre akkor van szükségünk, ha az előállított érvényes szabályokat fontossági sorrendbe akarjuk rendezni, az érdekteleneket, redundánsokat kiszűrni. A leggyakrabban használt főbb érdekességi mutatókat a fejezetben tárgyaljuk Gyakori elemhalmazokat feltáró algoritmusok jellemzői A következőkben az asszociációs szabálykeresés hatékonyságát legjobban befolyásoló lépéssel, a gyakori elemhalmazok feltárásával foglalkozunk. A probléma rövid bemutatása után különböző algoritmikus stratégiákat ismertetünk, majd a módszereket 239
248 6.2. GYAKORI ELEMHALMAZOKAT FELTÁRÓ ALGORITMUSOK JELLEMZŐI szemléltető nevezetesebb algoritmusokat mutatjuk be. Mielőtt azonban elmélyednénk a különböző stratégiákban, vizsgáljuk meg, miért nem triviális feladat a gyakori elemhalmazok megtalálása. { } {a} {b} {c} {d} {a,b} {a,c} {a,d} {b,c} {b,d} {c,d} {a,b,c} {a,b,d} {a,c,d} {b,c,d} {a,b,c,d} 6.1. ábra. Az {a}, {b}, {c} és {d} elemek keresési tere és az Apriori-elv. Ha {b,c,d} elemhalmaz gyakori, akkor az összes rész-elemhalmaza is gyakori. Tegyük fel, hogy az adatbázisunk mindössze 4 elemet tartalmaz, jelöljük őket a, b, c és d-vel. A 4 elem összes lehetséges kombinációja 2 4 1, nem számítva az üres halmazt (6.1. ábra). A feladat első látásra egyszerű: olyan algoritmust kell kifejlesztenünk, amely a jelöltekről eldönti, hogy gyakoriak-e vagy sem (a nem gyakori jelölteket ritkának is szokták nevezni). A legegyszerűbb megoldás természetesen az, hogy megvizsgáljuk az összes jelöltet, és megállapítjuk, hogy gyakoriak-e, azaz gyakoriságuk eléri-e a gyakoriság-küszöböt. 15 jelölt esetében ez nem is tűnik nehéz feladatnak. De ha már 20 elemünk van, akkor több mint 1 millió jelöltet kellene előállítanunk és átvizsgálnunk. A gyakorlatban a legkisebb adatbázisok is legalább 100 különböző elemet tartalmaznak ( a jelöltek száma), így ez az algoritmus lassan dolgozna. Hogyan tudunk tehát minél kevesebb jelöltet megvizsgálni úgy, hogy közben az összes gyakorit megtaláljuk? A bemutatásra kerülő algoritmusok mindegyike felhasznál egy fontos anti-monoton tulajdonságot, amely kimondja, hogy ha egy elemhalmaz nem gyakori, akkor az elemhalmazt egy új elemmel bővítve a kapott elemhalmaz sem lesz gyakori. Az állítást megfordítva kapjuk, hogy ha egy elemhalmaz gyakori, akkor az összes rész-elemhalmaza is gyakori. Utóbbi állítást Apriori-elvnek is nevezzük (ld. a kijelölt részt a 6.1. ábrán). 240
249 6. FEJEZET: GYAKORI ELEMHALMAZOK ÉS ASSZOCIÁCIÓS SZABÁLYOK FELTÁRÁSA Az algoritmusokat két szempont szerint csoportosíthatjuk, nevezetesen a gyakori elemhalmazok keresési módszere és gyakoriságuk számlálásának technikája alapján Jelölt keresési módszerek A keresési módszeren a jelöltek keresési terének bejárási módjait értjük. Megkülönböztetünk szintenként (breadth-first search) és mélységben (depth-first search) haladó eljárásokat. A szintenként haladó algoritmusok jellemzője, hogy szintről szintre (a legkisebb méretű elemhalmazokból kiindulva a legnagyobb méretűekig) állítják elő a jelölt elemhalmazokat, és határozzák meg azok gyakoriságát. Azaz a k-dik szinten lévő k-elemű jelölteket a (k-1)-dik szinten elhelyezkedő (k-1)-elemű elemhalmazokból állítják elő. Az 6.1 ábrán az első szinten elhelyezkedő {a}, {b}, {c} és {d} elemeket vizsgálják meg, mielőtt a második szintre lépnének ({a,b}, {a,c},... ). Szemben a szintenként haladó módszerrel, a mélységben haladó algoritmusok mélységben mindig egy elemet az előzőhöz adva haladnak. Azaz, az 6.1. ábrán a jelöltek előállítása és gyakoriságuk vizsgálata a következő sorrendben történik: {a}, {a,b}, {a,b,c}, {a,b,c,d}, {a,b,d}, {a,c}, {a,c,d}, {a,d}, {b}, {b,c}, {b,c,d}, {b,d}, {c,d} és {d} Gyakoriság számlálási technikák Az algoritmusok másik osztályozása a jelöltek gyakoriságának számlálási technikája alapján lehetséges. Megkülönböztetünk vízszintesen növelő (horizontal counting) és függőlegesen összevonó (vertical intersecting) módszereket. Amíg a vízszintesen növelő algoritmusok egy jelölt gyakoriságát tranzakcióról tranzakcióra (rekordról rekordra) növelik, addig a függőlegesen összevonó módszerek a tranzakció azonosítók (transaction identifiers, vagy tids) összevonásával állapítják meg. Egy jelölt tranzakció azonosítói azok a tranzakció azonosítók, amelyekben a jelölt elemhalmaz előfordul. Példaként vegyük az {a,b} elemhalmazt. Ha ismerjük az {a} és {b} elemek gyakoriságát, akkor az {a,b} elemhalmaz gyakoriságát megkapjuk az {a} és {b} elemek tranzakció azonosítóinak összevonásával, azaz {a, b}.tids = {a}.tids {b}.tids (6.7) Gyakoriság({a, b}) = {a, b}.tids (6.8) 241
250 6.3. NEVEZETESEBB ALGORITMUSOK BEMUTATÁSA Vízszintesen növelő Függőlegesen összevonó Apriori, AprioriTID Szintenként haladó Apriori-Hibrid Partition DIC, DHP Mélységben haladó FP-growth ECLAT 6.2. táblázat. Elemhalmazokat feltáró algoritmusok csoportosítása 6.3. Nevezetesebb algoritmusok bemutatása Ebben a fejezetben csoportosítunk és bemutatunk néhány nevezetes gyakori elemhalmazt feltáró algoritmust. A 6.2. táblázat mutatja az algoritmusok neveit a megfelelő keresési módszer/számlálási technika csoportba való besorolással. Jól látható, hogy a legtöbb algoritmus szintenként haladó kereső módszert és vízszintesen növelő számlálási technikát alkalmaz Szintenként haladó algoritmusok Először a szintenként haladó algoritmusokat ismertetjük. Az ilyen tulajdonsággal rendelkező algoritmusok többsége a vízszintesen növelő számlálási technikát részesíti előnyben, mint például az Apriori és gyorsítási változatai, valamint a DIC és DHP. A fejezet végén a hasonló kereső módszert, de a függőlegesen összevonó technikát megvalósító partíciós algoritmus müködését szemléltetjük. Az Apriori algoritmus Az Apriori módszert egymástól függetlenül két kutatócsoport szinte egy időben publikálta, és népszerűsége a mai napig töretlen egyszerűsége és hatékonysága miatt. Nevét a korábban már említett Apriori-elvről kapta, amely kimondja, hogy a (k+1)-elemű jelölteket a k-elemű elemhalmazokból állítjuk elő; azaz egy korábbi ismeretet (a k-elemű elemhalmazokat) használ fel az újabb szinten lévő jelöltek (a (k+1)-elemű jelöltek) előállítására. Az Apriori iteratív algoritmus, amely szintenként (kisebb méretű elemhalmaztól a legnagyobbig) határozza meg a gyakori elemhalmazokat. Az algoritmusnak minden 242
251 6. FEJEZET: GYAKORI ELEMHALMAZOK ÉS ASSZOCIÁCIÓS SZABÁLYOK FELTÁRÁSA egyes szinten két fázisa van: jelölt generálás és gyakoriság ellenőrzés. Az első fázisban Tid Tranzakciók Jelöltek Gy. J 10 a, c, d 1 {a} b, c, e 1. olvasás {b} a, b, c, e {c} 0.75 Gy 1 40 b, e {d} 0.25 {e} 0.75 {e} 0.75 Gy 2 J 2 J 2 jelöltek elõállítása Gyakoriak {a, c} Gy Jelöltek J 3 {b, c, e} 3. olvasás Jelöltek {a, b} Gy 3 Gy {b, c} 0.50 {a, c} 0.50 {b, e} 0.75 {a, e} 0.25 {c, e} 0.50 {b, c} 0.50 {b, e} 0.75 {c, e} 0.50 Gyakoriak Gy. {a} 0.50 {b} 0.75 {c} 0.75 Jelöltek {a, b} {a, c} 2. olvasás {a, e} {b, c} {b, e} {c, e} Gyakoriak Gy. {b, c, e} 0.50 jelöltek elõállítása 6.2. ábra. Az Apriori algoritmus működése. Gyakoriság-küszöb = 2 (50%). az előző szinten talált gyakori (k-1)-elemhalmazokból állítjuk elő a k-elemű jelölteket. Az új jelöltek előállítását a következő egyszerű illesztési művelettel végezzük: két gyakori (k-1)-elemhalmaz összeilleszthető, ha a lexikografikusan rendezett első k-2 elemük megegyezik, és az utolsó elemük különböző. Illusztrációként tekintsük a következő egyszerű példát: legyen a két gyakori elemhalmazunk {sör, pelenka, tej} és {sör, pelenka, kenyér}. A két elemhalmaz összeilleszthető, mivel az első 2 elemük megegyezik, míg az utolsó különbözik. Az új jelölt ezért a {sör, pelenka, tej, kenyér} lesz. A második fázisban beolvassuk az adatbázist tranzakcióról tranzakcióra, és növeljük azon jelöltek gyakoriságát, amelyek az adott tranzakcióban szerepelnek. Az algoritmus működése véget ér, ha nem tud új jelöltet előállítani, vagy az előállított jelöltek között egy sem éri el a felhasználó által beállított gyakoriság-küszöböt. Az Apriori algoritmus működését a 6.2. ábra szemlélteti. Adatbázis kivonatolása - az AprioriTID algoritmus A jelöltállítás az AprioriTID algoritmus esetében is az Apriori-elv alapján történik, azonban a gyakoriság számolásakor az eredeti adatbázist csak az első lépésben, az egy elemű jelöltek gyakoriságának meghatározásához használjuk fel. A kettő vagy annál hosszabb jelöltek gyakoriságát módosított adatbázisokban számoljuk, amelyek előállításához felhasználjuk a már korábban illusztrált Apriori tulajdonságot. Az adat- 243
252 6.3. NEVEZETESEBB ALGORITMUSOK BEMUTATÁSA bázisokban a tranzakciók azonosítóval vannak ellátva, innen ered az algoritmus elnevezése is: tid (transaction identifier), azaz vásárlási azonosító. Ez alapján, amennyiben egy adott vásárlói kosár nem tartalmaz k méretű gyakori elemhalmazt, akkor abban a kosárban k+1 méretű gyakori elemhalmaz sem fordulhat elő. A k méretű gyakori elemmin. gyakoriság: 2 db D C 1 L 1 D 1 C {1} {2} {3} {4} {5} {1} {2} {3} {5} {1} {3} 2 {2} {3} {5} 3 {1} {2} {3} {5} 4 {2} {5} {1,2} {1,3} {1,5} {2,3} {2,5} {3,5} L 2 D 2 C 3 L 3 D 3 {1,3} {2,3} {2,5} {3,5} {1,3} 2 {2,3} {2,5} {3,5} 3 {1,3} {2,3} {2,5} {3,5} 4 {2, 5} {2,3,5} 2 {2,3,5} L =L 1 L 2 L 3 = { {1}, {2}, {3}, {5}, {1,3}, {2,3}, {2,5}, {3,5}, {2,3,5} } 6.3. ábra. Az AprioriTID algoritmus halmazok ismeretében, a k méretű elemhalmazokat tartalmazó adatbázisból kihagyjuk a nem gyakori elemhalmazokat, továbbá azon tranzakciókat is, amelyek nem tartalmaznak egyetlen gyakori k-elemhalmazt sem. Így hozzuk létre a k+1 elemű elemhalmazokat tartalmazó adatbázist. A módszer főként nagy adatbázisoknál hatékony (több tízezer tranzakció és több ezer termék). Ekkor a gyakori elemhalmazok megkeresése a hagyományos Apriori algoritmussal sok ideig eltarthat. Az AprioriTID alkalmazásával azonban nagyban lecsökkenhet az adatbázis mérete a jelöltállítás során, ezáltal csökkenthető a keresési idő is. Az 6.3. ábrán egy példa látható, ahol a kezdeti adatbázist D jelöli. Keresési feltételként a minimális gyakoriság értéke kettő előfordulás legyen. Első lépésben megkeressük, melyik elem milyen gyakorisággal fordul elő a D adatbázisban. A számlálás eredményét C 1 tartalmazza, melynek első oszlopában az egy elemű elemhalmazok, második oszlopában pedig azok előfordulási gyakorisága található. A gyakori egy elemű elemhalmazokat L 1 -ben tároljuk, majd az itt nem szereplő elemhalmazokkal (ld. a {4}-es elemet) tisztítjuk a D-t, előállítva a D 1 adatbázist. A továbbiakban ebből az adatbázisból kell generálni a két elemű elemhalmazokat, majd számlálni azok gyakoriságát (C 2 ). A több elemű elemhalmazok esetén hasonlóan kell eljárni, mindaddig míg találunk gya- 244
253 6. FEJEZET: GYAKORI ELEMHALMAZOK ÉS ASSZOCIÁCIÓS SZABÁLYOK FELTÁRÁSA kori elemhalmazt. Az összes gyakori elemhalmazt (L) a különböző hosszúságú gyakori elemhalmazok uniójával kapjuk meg. Hibrid módszer - az Apriori-Hibrid algoritmus Mivel a különböző méretű gyakori elemhalmazok keresési ideje eltérő, így a hatékonyság érdekében a keresés egyes fázisaira érdemes olyan algoritmusokat használni, melyek az adott méretű elemhalmazokat gyorsabban találják meg. A teljesítmények összehasonlítására szintetikus adathalmazokat érdemes használni. Az IBM Almaden kutatóközpontban kifejlesztett Quest Synthetic Data Generator nevű programmal lehet előállítani különböző összetételű, bonyolultságú teszt adathalmazokat. Az adathalmazok elnevezésében szereplő jelölések: T a tranzakciók átlagos mérete, I a lehetséges legnagyobb gyakori elemhalmazok átlagos mérete, D a tranzakciók száma. A T10.I4.D100K szintetikus adathalmazra összehasonlítva az Apriori és az AprioriTID algoritmusok futási idejét megállapítható, hogy míg az Apriori a kisebb (1-3) elemű gyakori elemhalmazokat gyorsabban találja meg, addig a nagyobb elemhalmazoknál több nagyságrenddel az AprioriTID a gyorsabb módszer. Más adathalmazok esetén is hasonló viselkedést tapasztalhatunk. Ennek hátterében az áll, hogy mivel a jelöltállítás módszere a két algoritmus esetében megegyezik, így ugyanazokat az elemhalmazokat számlálják. A későbbi fázisokban, a nagyobb elemhalmazok esetén a jelöltek száma lecsökken. Az Apriori algoritmus még ekkor is az eredeti adatbázisban végzi a keresést, ezzel szemben az AprioriTID a már tisztított (így kisebb) adathalmazon. E jellemzők figyelembe vételével a két módszer ötvözése az ún. Apriori-Hibrid algoritmus, amely a kezdeti lépéseknél az Apriori, a későbbieknél pedig az AprioriTID algoritmust használja. A két módszer közti váltás helyes időpontját egy adott adathalmaz esetén különböző heurisztikákkal becsülhetjük. Például adott k-méretű elemhalmazok keresésénél, ha megszámláltuk azok előfordulásáit, a gyakoriságokkal megbecsülhető, hogy milyen méretű lenne a tisztított adathalmaz (elfér-e a memóriában). Az adathalmaz mérete a következőképpen számolható: c C k gyakoriság(c) + D (6.9) ahol c a C k jelölthalmaz egy jelöltje, gyakorisg(c) a jelölt gyakorisága, a D pedig a tranzakciók száma. Amennyiben a becsült méret elég kicsi ahhoz, hogy a tisztított adatbázis elférjen a memóriában, továbbá ha az adott lépésben kevesebb a gyakori jelölthalmazok száma, mint az előzőben, akkor váltunk át az AprioriTID algoritmusra. Az imént ismertetett heurisztikán kívül, természetesen más heurisztikák alkalmazása is megoldást jelenthet, például egy több merevlemezes számítógép esetén, ahogy a tisztított adathalmaz kisebb lett az eredeti adathalmaznál, egyből átválthatunk az AprioriTID-re. 245
254 6.3. NEVEZETESEBB ALGORITMUSOK BEMUTATÁSA Dinamikus elemhalmaz számolás - a DIC algoritmus Apriori DIC Tranzakciók 1- elemhalmaz 2 - elemhalmaz 3 - elemhalmaz Tranzakciók 1- elemhalmaz 2 - elemhalmaz 3 - elemhalmaz 3 kör 1.5 kör 6.4. ábra. Az Apriori és a DIC algoritmus működési elve A gyakori elemhalmazok megtalálásához a klasszikus Apriori algoritmus szintről szintre haladva állít fel jelölteket, majd végzi azok szűrését a keresési feltétel (minimális gyakoriság) alapján. Az algoritmusnak annyiszor kell átnéznie az adatbázist, amennyi a jelölt halmazok maximális mérete. Ha a C k jelölthalmaz elemeinek gyakoriságát szeretnénk meghatározni, k esetben kell végigmenni az adatbázison. A keresés teljesítményét két tényező határozza meg: egyrészt a szükséges körök száma (hogy hányszor kell végigmenni) az adatbázison, másrészt azok hatékonysága. Mindez felveti a dinamikus elemhalmaz számlálási módszerek alkalmazhatóságát. A DIC (dynamic itemset counting, dinamikus elemhalmaz számlálás) algoritmus előnye, hogy a jelölt állításhoz és a gyakori termékhalmazok megkereséséhez kevesebbszer kell átnézni az egész eredeti adatbázist, mint az Apriori algoritmus esetében. A DIC algoritmus működésének alapja hasonló egy vonat közlekedéséhez: végighalad az útvonalon, vagyis az adatokon úgy, hogy közben M tranzakciónként megáll (az M egy paramétere az algoritmusnak), ahol az utasok fel-le szállhatnak. A vonat utasainak az elemhalmazokat tekintjük. Amikor egy adott elemhalmaz a vonaton utazik, azt vizsgáljuk, hogy szerepel-e az adott tranzakcióban vagy sem, tehát megszámláljuk az előfordulási gyakoriságát az út során. Amikor a vonat eléri a tranzakciós adatbázis végét (azt mondjuk, hogy ment egy kört az adatbázison), az adatbázis elejére kell mennie a következő kör megkezdéséhez. A vonat-hasonlat az Apriori algoritmus esetében a következőképpen fest. Egy adott méretű elemhalmaznak a kör elején fel, illetve a kör 246
255 6. FEJEZET: GYAKORI ELEMHALMAZOK ÉS ASSZOCIÁCIÓS SZABÁLYOK FELTÁRÁSA végén le kell szállnia: az 1-elemű elemhalmazoknak az első körben, a 2-elemű elemhalmazoknak a második körben, és így tovább (ld. 6.4 ábra). A DIC algoritmusnál viszont amint nyilvánvalóvá válik egy adott k-méretű elemhalmazról, hogy gyakori, rögtön elkezdjük felhasználni a már megtalált k-méretű gyakori elemhalmazokkal együtt a k + 1-méretű jelöltek generálásához. Például egy 3-elemű részhalmaz gyakoriságát már akkor elkezdjük számlálni, amint kiderül, hogy minden 2-elemű részhalmaza gyakori. Nem szükséges tehát az első körben előállítani az összes 2-elemű elemhalmazt, illetve azokból kiválasztani a gyakoriakat, hanem párhuzamosan vizsgálható a 3-elemű elemhalmazok gyakorisága is. Tekintsünk egy tranzakciót tartalmazó adatbázist. Az M paraméter értéke legyen Ekkor az 1-elemű elemhalmazok gyakoriságát az egész adatbázis vizsgálatával határozzuk meg. A 2-elemű elemhalmazok számlálását viszont már az első tranzakció átvizsgálása után elkezdjük. A 3-elemű gyakori elemhalmazok számlálása pedig a dik tranzakció után kezdődik. Tegyük fel, hogy nincsen szükségünk 4-elemű elemhalmazokra. Így, amint első alkalommal az adatbázis végére érünk, az 1-elemű elemhalmazok számlálása befejeződik. Majd az adatbázis elejére ugorva számláljuk a 2-, illetve a 3-elemű elemhalmazokat. Ekkor az első tranzakció után az 1-elemű, majd tranzakció után már a 2-elemű elemhalmazok számlálása is befejeződik. Az adatbázison így csak 1,5-szer kellett végigmenni (1,5 kör) az összes gyakori elemhalmaz megkereséséhez, szemben a hagyományos Apriori algoritmussal, ahol elemhalmaz hosszúságonként (szintenként) haladva háromszor kellene végigmenni (3 kör) mind a tranzakción. E példát tekintve is belátható, hogy a módszer olyan esetekben hatékony (szemben az Apriorival), ha a tranzakciók száma viszonylag nagy. Direkt hash-elés és tisztítás - a DHP algoritmus A hagyományos Apriori alapú algoritmusok a jelöltállítás során - alacsony gyakoriságküszöb mellett - az első iterációs lépésekben nagyon sok jelöltet generálhatnak. Általános tapasztalat, hogy a legnagyobb számban a 2-elemű jelöltek fordulnak elő, a több elemű jelöltek száma pedig már kevesebb. Ha megvizsgáljuk a 2-elemű jelöltek, illetve a 2-elemű gyakori elemhalmazok számát, észrevehető, hogy számos esetben hamis jelöltek szerepelnek a jelölthalmazokban, amelyek (feleslegesen) tárolókapacitást kötnek le, továbbá növelik a keresési időt is. A jelöltállításon alapuló algoritmusok teljesítményében tehát a szűk keresztmetszetet a 2-elemű jelöltek nagy száma jelenti. A DHP (Direct Hashing and Pruning) algoritmus előnye, hogy a hash alapú jelöltállítás alkalmazásával lényegesen csökken a 2-elemű jelöltek száma. Az algoritmus működését, a jelöltállítás módját a következő példa segítségével mutatjuk be (6.5. ábra). Tekintsük a már korábbi példában (6.3. ábra) is használt D tranzakciós adatbázist, a minimális gyakoriság pedig 2 előfordulás (50 %) legyen. Az 1-elemű jelölteket a C 1 247
256 6.3. NEVEZETESEBB ALGORITMUSOK BEMUTATÁSA tartalmazza. Az algoritmus az első lépésben a gyakoriság meghatározásánál, a számlálás hatékonyságának érdekében egy hash-fát használ. A hash-fa levelei tartalmazzák a jelöltek listáját és gyakoriságuk számlálóját, a hash-fa belső pontjai pedig a hash-táblák. A hash-fában gyorsan megtaláljuk egy tranzakció által tartalmazott jelölteket. Az algomin. gyakoriság: 2 db Elemek D C 1 sorszáma: D 2 1 {1} {3} {4} 2 {2} {3} {5} 3 {1} {2} {3} {5} 4 {2} {5} {1} {2} {3} {4} {5} L 1 {1} {2} {3} {5} {1} {2} {3} {4} {5} {1,3} {1,4} {3,4} 2 {2,3} {2,5} {3,5} 3 {1,2} {1,3} {1,5} {2,3} {2,3} {2, 5} {3,5} 4 {2,5} H 2 hash-tábla L 1 xl 1 C 2 {1,2} 1 {1,3} {3,5} {2,5} {1,3} 2-elem {1,3} 3 {2,3} {3,5} {2,3} {2,5} {3,4} elemhalmazok {1,5} 1 {2,5} {1,4} {1,5} {2,3} {2,5} {1,2} {1,3} {2,3} 2 {3,5} számláló {2,5} hash-érték {3,5} Hash fv.: h(e 1,e 2 ) = ( (index(e 1 ))*10 + (index(e 2 ) ) mod ábra. A DHP algoritmus jelöltállítása ritmus (az adatbázison végighaladva) ellenőrzi, hogy az aktuális elem létezik-e már a hash-fában vagy sem. Amennyiben az elem még nem szerepel a fában, úgy azt felveszi, és a számlálóját egyre állítja, viszont ha már létezik, akkor a számlálóját megnöveli eggyel. Az 1-elemű elemhalmazok gyakoriságának meghatározása után, tranzakciónként haladva az elemekből az összes lehetséges 2-elemű elemhalmazt előállítjuk (D 2 ), illetve hash-eljük a H 2 hash-táblába. A hash-elés a következő hash-függvény alapján történhet: hash(e 1,e 2 ) = ((index(e 1 ))10 + (index(e 2 ))mod7 (6.10) ahol index(e i ) a 2-elemű elemhalmaz i-edik elemének sorszáma, a mod7 pedig a modulo függvényt jelenti, mégpedig a 7-tel való osztás maradékát (például (12)mod7 = 5). A hash-tábla ún. vödröket tartalmaz, a vödrök számát a modulo függvény határozza meg (jelen esetben ez 7, minden maradék érték megcímkéz egy vödröt, vagyis külön vödör van a 0 maradékot adó elemhalmazoknak, az 1 maradékot adóknak stb.). Minél nagyobb méretű egy hash-tábla, annál kevesebb lesz benne az ütközés (amikor az elemek hash-címe azonos), továbbá ritkábban fordulhat elő, hogy egy nem gyakori elemhalmazt azonos vödörbe hash-elünk egy gyakorival. Rosszul megválasztott hash-függvény esetén az is megeshet, hogy sok nem gyakori 248
257 6. FEJEZET: GYAKORI ELEMHALMAZOK ÉS ASSZOCIÁCIÓS SZABÁLYOK FELTÁRÁSA elemhalmaz kerül egy vödörbe, így a vödör gyakori lesz. Azonban ügyelni kell a hashtábla méretére is, nem lehet túl nagynak választani, hiszen mind a hash-táblát, mind pedig a jelölteket (és számlálóikat) tárolnunk kell a memóriában. Egy 2-elemű elemhalmaz hash-elésénél annak a vödörnek a számlálóját növeljük, amelyikbe hash-eltünk. Ugyanabba a vödörbe természetesen több különböző elemhalmazt is hash-elhetünk. Az utolsó tranzakciót is megvizsgálva, a k-dik vödör számlálójának értéke meg fog egyezni azon 2-elemű elemhalmazok gyakoriságának összegével, amelyek hash-értéke k. Vagyis egy 2-elemű elemhalmaz csak abban az esetben gyakori, ha olyan vödörbe hash-eltük, amelynek számlálója meghaladja a minimális gyakoriságot (a példában a 2-őt). A {1,0,1,0,1,0,1} bit vektor alkalmazásával az L 1 xl 1 halmazból (vagyis az összes lehetséges elempárból) kiszűrhetőek a nem gyakori 2-elemű elemhalmazok. Így a DHP csak a C 2 -ben tárolt 2-elemű jelölteteket állítja elő (összesen négyet), amelyek mindegyike gyakori, szemben az Apriori algoritmussal, amely a D adatbázis esetén hat darab jelöltet állít elő. A DHP algoritmus az adatbázis méretét csökkentheti a tranzakciók tisztításával, másrészt teljes tranzakciók törlésével is. Ha egy tranzakció tartalmaz (k + 1)-elemű gyakori elemhalmazokat, akkor az ezekben szereplő bármely elem legalább k esetben előfordul a k-elemű jelölthalmazokban C k -ban. Egy elem akkor hagyható el t tranzakcióból, ha az elem legalább k esetben nem fordul elő a k-elemű jelölthalmazokban a t tranzakciónál. A partíciós algoritmus Tegyük fel, hogy egy adathalmaz esetén adott a lehetséges gyakori elemhalmazoknak egy viszonylag kis (néhány ezer elemhalmazt tartalmazó) halmaza. Ekkor az elemhalmazok gyakoriságának kiszámításához elegendő lenne egyszer végighaladni az adatbázison, így meghatározhatóak a gyakori elemhalmazok is. E módszer természetesen csak akkor működik, hogy ha az adott halmaz tartalmazza az összes aktuális gyakori elemhalmazt. A megvalósításhoz a partíciós algoritmus az adatbázist kétszer vizsgálja meg. Az első körben az összes lehetséges gyakori elemhalmaznak egy halmazát generálja. Ez a halmaz egy szuperhalmaza a lehetséges gyakori elemhalmazoknak, vagyis előfordulhat, hogy nem tartalmazza az összes gyakori elemhalmazt (statisztikailag az elsőfajú hiba), viszont nem tartalmazhat olyan elemhalmazt, mely valójában nem gyakori (hamis jelöltek esete, ez másodfajú hiba lenne). Az adatbázis második átnézésekor pedig megszámláljuk a szuperhalmazban lévő elemhalmazok gyakoriságát. Ennek megfelelően az algoritmus kétfázisú. Az első fázisban logikailag diszjunkt halmazokra, partíciókra osztja fel az adatbázist, majd minden partícióra megkeresi az olyan elemhalmazokat, melyek az adott partíción gyakoriak. Az első fázis végén öszszeveti a gyakori elemhalmazokat, előállítva ezzel az összes lehetséges gyakori elemhalmaz egy halmazát. A második fázisban az Apriori algoritmust használva kiszámítja 249
258 6.3. NEVEZETESEBB ALGORITMUSOK BEMUTATÁSA az elemhalmazok gyakoriságát, és meghatározza a teljes adatbázison értelmezett gyakoriakat. A partíciók méretét úgy kell megválasztani, hogy minél kevesebb legyen a hamis jelölt az egyes partíciókban, viszont a méretük nem lehet túl nagy sem, hiszen ügyelni kell rá, hogy elférjenek a memóriában, így csak egyszer kelljen őket beolvasni minden fázisnál. Az egyes partíciók elemzését saját memóriával rendelkező feldolgozó Ady Endre Csáth Géza Dallos Sándor Tamási Áron Weöres Sándor A C D T W Horizontális adatbázis Vertikális adatbázis Tranzakciók Tranz Elemek Elemek A C T W C D W A C T W A C D W A C D T W C D T A C D T W ábra. Vízszintes és függőleges adatbázis sémák egységek is végezhetik, így párhuzamos számítással mindkét fázis gyorsítható Mélységben haladó algoritmusok A két legnevezetesebb mélységben haladó algoritmus, amely az összes gyakori elemhalmazt előállítja, az ECLAT és az FP-growth algoritmus. Míg előbbi a függőlegesen összevonó számlálási technikát alkalmazza, utóbbi a vízszintesen növelő módszert részesíti előnyben. A következőkben mindkét algoritmust ismertetjük. Függőlegesen összevonó algoritmus - az ECLAT algoritmus A legtöbb asszociációs szabálykereső algoritmusnál az elemezni kívánt adatokat horizontális adatbázis sémában tároljuk. A tranzakciók azonosítója azonban lehetővé teszi a vertikális tárolást is. A vertikális tárolásnál minden elemhez tartozik egy tid-lista, ahol azon tranzakciók azonosítóját tároljuk, amelyek tartalmazzák az adott elemet (6.6. ábra). 250
259 6. FEJEZET: GYAKORI ELEMHALMAZOK ÉS ASSZOCIÁCIÓS SZABÁLYOK FELTÁRÁSA Az ECLAT (Equivalence CLAss Transformation) algoritmus az eredeti adatbázist ilyen vertikális formátumba transzformálja. Így egy X elemhalmaz gyakoriságát könynyedén kiszámíthatjuk: az X bármely olyan Y, Z részhalmazaira, amelyekre teljesül: Y Z = X, képezzük a tid-listáik metszetét, és az eredő metszethalmaz nagysága adja meg a gyakoriságot. A gyakoriság számítási módszerére az 6.7. ábrán láthatunk egy ACDTW ACDT ACDW ACTW ADTW CDTW ACD ACT ACW ADT ADW ATW CDT CDW CTW DTW metszet (CD, CW) metszet (C, D) CDW CD CW AC AD AT AW CD CT CW DT A C D T W DW TW A C D T W kezdeti adatbázis ábra. Az elemhalmazok gyakoriságának kiszámítása tid-lista metszetekkel példát. Az ECLAT algoritmus egy jelölthalmaz előállításához csak két részhalmazt használ, de több jelöltet állít elő, mint a szintenként haladó Apriori algoritmus. Ennek oka, hogy e módszer nem használja ki teljesen az elemhalmazok monoton tulajdonságát, viszont egy előrendezés alkalmazásával a generált jelöltek száma csökkenthető. A rendezést minden rekurziós lépésben el kell végezni. Az algoritmus hatékonysága tovább javítható, ha a jelölt és prefixe (előtagja) tid-listájának a különbségét tároljuk el (különbségi lista), nem pedig a jelöltek tid-listáit, továbbá a két módszer ötvözése is növelheti a hatékonyságot. Jelöltállítás nélküli módszer - az FP-growth algoritmus Az adatbázis memóriában való tárolásához az FP-growth algoritmus a horizontális és vertikális adatbázis séma kombinációját használja. Ahelyett, hogy az adatbázisban minden elemre tárolná azok előfordulását, az aktuális tranzakciókat fa struktúrában tárolja. Minden elemhez tartozik egy láncolt lista, amely keresztülmegy az összes olyan tranzakción, amely tartalmazza az adott elemet. Ezt a struktúrát FP-fának (Frequent Pattern-tree) nevezzük. Az 6.8. ábrán egy példát láthatunk az FP-fa előállítására. Első 251
260 6.3. NEVEZETESEBB ALGORITMUSOK BEMUTATÁSA TID Elemek 1 f a c d g i m p 2 a b c f l m o 3 b f h j o 4 b c k s p 5 a f c e l p m n Minimális támogatottság: 3 Rendezett gyakori elemek f c a m p f c a b m f b c b p f c a m p F tábla f c a b m p f:4 c:3 a:3 m:2 root b:1 b:1 c:1 b:1 p:1 elem támogatottság csúcs link p:2 m: ábra. Példa tranzakciós adatbázis és FP-fa lépésként végignézzük egyszer az adatbázist, megkeresve a gyakori elemhalmazokat (a minimális gyakoriság három előfordulás), majd gyakoriság alapján csökkenő sorrendbe rendezzük őket: <f, c, a, b, m, p>. Ez a rendezés azért lesz fontos, mert minden út az FP-fában ezt a rendezést követi. A rendezés alapján tranzakcióként listázzuk a gyakori elemeket (ld ábra felső részén). A fa gyökere egy null elem legyen, majd haladjunk végig a már rendezett adatbázison, és tekintsük az első tranzakciót: <f, c, a, m, p>. Ezekből az elemekből építjük fel a fa első ágát oly módon, hogy az elemek lesznek a csúcsok, közöttük helyezkednek el az élek, a csúcsok számlálóját (az adott elem előfordulási gyakoriságát) pedig 1-re állítjuk be. A második tranzakciót tekintve látható, hogy az <f, c, a> előtag az első tranzakció kapcsán már fel van tüntetve a fában, így e meglévő úton a csúcsok számlálóját megnöveljük eggyel, majd az <a> csúcstól hozzuk létre az új <b> és <m> csúcsokat egy értékű gyakorisággal. Haladjunk tovább a következő tranzakciókra, és a már ismert módon terjesszük tovább a fát. A fa bejárásához egy ún. főtáblázatot készítünk, amely tartalmazza a gyakori elemeket és azok gyakoriságát, illetve minden elemhez tartozik egy láncolt lista (csúcs link, szaggatott vonal az 6.8 ábrán), amely az adott elem előfordulásaira mutat a fában. Az összes tranzakció feldolgozása után megkapjuk az adatbázis FP-fa struktúráját. Az FP-fa horizontálisvertikális tulajdonsága tehát, hogy a fa tartalmazza egyrészt minden elemre a láncolt lista segítségével azokat a tranzakciókat, melyekben az adott elem szerepel, másrészt a gyökér csúcstól haladva minden egyes ág tömörített formában tartalmazza a tranzakciók egy halmazát. Az FP-fa generálásától eltekintve az FP-growth algoritmus nagyban hasonlít az ECLAT algoritmushoz, azonban néhány plusz lépés is szükséges (mutatók 252
261 6. FEJEZET: GYAKORI ELEMHALMAZOK ÉS ASSZOCIÁCIÓS SZABÁLYOK FELTÁRÁSA Adathalmaz D FP-fa FP-fa / D T40I10D100K : K : K 89% : 449% BMS-Webview : 578K : 1 082K 37% : 187% 6.3. táblázat. Memória használat az ECLAT és az FP-growth algoritmusnál tárolása a következő csúcshoz, a szülő csúcshoz stb.), hogy a rekurziós lépések során fenntartsuk az FP-fa struktúrát. Az ECLAT algoritmusnál viszont csak a generált elemhalmazok előfordulásait kell számon tartani. Azonban éppen a tömörített tárolás miatt sokkal kevesebb memóriát vesz igénybe az FP algoritmus. Az eljárások hatékonysága nagyban függ az elemzett adatbázisok tulajdonságaitól. A két módszer összehasonlítása az 6.3. táblázatban látható. D jelöli az összes tömb teljes hosszát az ECLAT algoritmusnál, az FP-fa a csúcsok száma az FP-fában, az FP-fa / D pedig az alkalmazott tömörítési arány az FP-fánál az ECLAT-hoz képest. Minden mért érték mellett az alkalmazott adatstruktúra mérete (Kbyte-ban) is szerepel. A T40I10D100K egy szintetikus adathalmaz, mely tranzakciót és több mint féle elemet tartalmaz. A BMS-WebView-1 adathalmaz pedig egy webáruház forgalmának több hónapra vonatkozó adatait tartalmazza tranzakcióval és 498 elemmel. Az FP-fában a csúcsok száma lényegesen kisebb, mint az adatbázis mérete, azonban ha a csúcsok tárolásához szükséges helyet tekintjük, akkor megállapítható, hogy esetenként sokkal nagyobb memóriát igényel, mint az ECLAT algoritmusnál használt tömb struktúra. Az előzőekben bemutattuk a nevezetesebb gyakori elemhalmazokat feltáró eljárásokat. De vajon létezik-e a legjobb algoritmus, amely a többieknél bármilyen körülmények között hatékonyabban dolgozik? A kérdésre nehéz válaszolni. Az algoritmusok hatékonyságának összehasonlítására a futási időt és a memória-használatot szokás használni ban Floridában rendezték a gyakori elemhalmazokat feltáró algoritmusok első versenyét. Az eljárásokat különböző típusú adatbázisokkal és minimális gyakoriság értékekkel tesztelték. Az eredmények megerősítették azt a nézetet, hogy nem létezik bármely körülmények között a legjobb algoritmus. A módszerek hatékonyságát befolyásolja az adatbázis típusa (valódi vagy mesterségesen előállított, az adatok sűrűn vagy szellősen helyezkednek el a tranzakciókban, kicsi vagy nagy az adatbázis stb.) és a minimális gyakoriság értéke (a legtöbb algoritmus jól működött nagy küszöbszám esetén, de rosszul kisebbnél). Mivel minden kutató a saját maga által kódolt algoritmust nevezte a versenyre, ezért fontos tényező volt a programozási képesség is. Hiába működik az elméletben kitűnően egy eljárás, ha a gyenge implementáció miatt már a kódolás során 253
262 6.4. GYAKORI ELEMHALMAZOK KOMPAKT KÉPVISELETE elveszti hatékonyságát. A versenyre beküldött algoritmusok szabadon letölthetők a verseny honlapjáról a hatékonyság-elemzésekkel együtt (ld fejezet). { } { } {a} {b} {c} {d} {a} {b} {c} {d} {a,b} {a,c} {a,d} {b,c} {b,d} {c,d} 2 {a,b} {a,c} {a,d} {b,c} {b,d} {c,d} {a,b,c} {a,b,d} {a,c,d} {b,c,d} 2 {a,b,c} {a,b,d} {a,c,d} {b,c,d} {a,b,c,d} {a,b,c,d} 6.9. ábra. Maximális, illetve zárt gyakori elemhalmazok 6.4. Gyakori elemhalmazok kompakt képviselete A gyakori elemhalmazok feltárása során előfordulhat, hogy új információt nem vagy alig nyújtó, esetleg redundáns elemhalmazt nyerünk ki. Ha például egy gyakori 10- elemű elemhalmaz minden eleme csak együtt fordul elő az adatbázisban, akkor az elemhalmaz összes (2 10 1) részhalmaza gyakori, és gyakoriságuk megegyezik. Joggal vetődik fel a kérdés, hogy miként tudnánk az ilyen összetartozó elemhalmazokat kevesebb elemhalmazzal képviselni, a gyakori elemhalmazoknak olyan részhalmazát venni, amelyből az összes elemhalmaz kinyerhető. A gyakori elemhalmazok kompakt képviseletére a maximális és a zárt gyakori elemhalmazokat használjuk Maximális gyakori elemhalmazok Maximálisnak vagy nem bővíthetőnek azokat a gyakori elemhalmazokat nevezzük, amelyekhez egy újabb elemet adva már nem lesznek gyakoriak. A 6.9. ábra az {a,b,c,d} elemek keresési terét ábrázolja, ahol az adott minimális gyakoriság (szaggatott vonal) melletti maximális elemhalmazok vannak bekarikázva. A korábbi példákból már tudjuk, hogy a szaggatott vonal felett elhelyezkedő elemhalmazok a gyakoriak, míg az alatt a ritkák helyezkednek el. Az ábráról könnyen le lehet olvasni, hogy az {a,b}, {a,d} és {b,c,d} gyakori elemhalmazok maximálisak, mert ezekhez egy új elemet adva nem gyakori elemhalmazokat kapunk. Az összes gyakori elemhalmazt megkapjuk, ha a maximális elemhalmazok részhalmazait vesszük. A 254
263 6. FEJEZET: GYAKORI ELEMHALMAZOK ÉS ASSZOCIÁCIÓS SZABÁLYOK FELTÁRÁSA Gyakori elemhalmazok Zárt Nem bõvíthetõ ábra. Kapcsolat a gyakori, a zárt gyakori és a maximális gyakori elemhalmazok között. gyakorlatban a maximális elemhalmazokat hosszú elemhalmazok kinyerésére használják. Hátrányuk, hogy nem tartalmazzák a rész-elemhalmazok gyakorisági értékeit (egy újabb adatbázis beolvasás szükséges a megszámlálásukhoz), amelyek viszont az asszociációs szabályok előállítása során elengedhetetlenek. A következőkben a gyakori elemhalmazok olyan képviselőit mutatjuk be, amelyekből az adatbázis beolvasása nélkül is meghatározhatjuk a rész-elemhalmazok gyakoriságát Zárt gyakori elemhalmazok Zárt elemhalmazok azok a gyakori elemhalmazok, amelyekhez egy újabb elemet adva a kapott elemhalmaz gyakorisága különbözik az eredeti elemhalmaz gyakoriságától. A definíció megértéséhez a 6.9. ábrán (a jobb oldalon) minden egyes elemhalmaz fölött azok gyakoriságát is feltüntettük. Sötét karika jelzi a zárt elemhalmazokat, melyek a {c}, {a,b}, {a,d}, {b,d} és {b,c,d} elemhalmazok. Vegyük például a {b,d} gyakori elemhalmazt. A {b,d} zárt, mivel egy elemmel bővítve a kapott elemhalmazok ({a,b,d}, {b,c,d}) gyakorisága nem egyezik meg {b,d} gyakoriságával. Hasonlóan, {b,c} nem zárt, mert létezik egy olyan egy elemmel bővebb gyakori elemhalmaza ({b,c,d}), amelynek gyakorisága azonos. Korábban említettük, hogy a zárt elemhalmazok részhalmazainak gyakoriságához nem szükséges az adatbázis ismételt végigolvasása. Az ilyen elemhalmazok gyakoriságát megkapjuk, ha azok eggyel bővebb elemhalmazai közül kiválasztjuk azt a zárt elemhalmazt, amely gyakorisága a legnagyobb. Ennek gyakorisága lesz az elemhalmaz gyakorisága. Példaként tekintsük a {b} elemhalmazt. A {b}-hez egy elemet adva az {a,b}, {b,c} 255
264 6.5. ASSZOCIÁCIÓS SZABÁLYOK FELTÁRÁSA és {b,d} zárt elemhalmazokat kapjuk, melyek közül a legnagyobb gyakorisága a {b,d} elemhalmaznak van, azaz {b} gyakorisága megegyezik {b,d} elemhalmaz gyakoriságával. A ábra szemlélteti a zárt, maximális és az összes gyakori elemhalmazok között fennálló kapcsolatot, amely jól mutatja, hogy minden maximális elemhalmaz egyben zárt elemhalmaz is. Ez abból az egyszerű tényből következik, hogy a maximális elemhalmazok kielégítik a zártság fogalmát Asszociációs szabályok feltárása Asszociációs szabályok feltárása során egyrészt a gyakori elemhalmazokból érvényes szabályokat állítunk elő, másrészt az érvényes szabályokat rangsoroljuk fontossági sorrendjük szerint, érdekességi mutatók alapján Érvényes asszociációs szabályok előállítása Ahogy az 6.1. részben már bevezettük, érvényes asszociációs szabálynak azokat a szabályokat nevezzük, amelyek kielégítik mind a minimális gyakoriság, mind a minimális bizonyosság követelményeit. Mivel az asszociációs szabályokat a gyakori elemhalmazokból állítjuk elő, ezért ezek minimális gyakoriság követelményét nem kell vizsgálnunk. Az előállított szabály gyakorisága egyenlő az elemhalmaz gyakoriságával: gyakoriság(x Y ) = gyakoriság(x Y ) = P(X,Y ) (6.11) Egy asszociációs szabály kielégíti a minimális bizonyosságot, ha bizonyossági mutatója nem kisebb, mint a bizonyosság-küszöb (γ), azaz bizonyosság(x Y ) = gyakoriság(x Y ) gyakoriság(x) γ (6.12) A fenti alapfogalmak felhasználásával a következő egyszerű algoritmus állítja elő az érvényes szabályokat: 256 Minden Z gyakori elemhalmazt bontsunk fel Z összes lehetséges két diszjunkt és nem üres párjára, X Z-re (a szabály feltételére) és Y = Z \ X-ra (a szabály következményére). Azok az X,Y párok, amelyek kielégítik a minimális bizonyosság követelményét, érvényes szabályokat képeznek.
265 6. FEJEZET: GYAKORI ELEMHALMAZOK ÉS ASSZOCIÁCIÓS SZABÁLYOK FELTÁRÁSA Könnyen észrevehető, hogy minden egyes gyakori k-elemhalmazt 2 k 2 diszjunkt, nem üres párra lehet bontani (k a halmaz elemeinek számát jelöli). A felbontás illusztrálására a ábra a lehetséges párokat (szabályokat) mutatja a {sör, bor, pelenka} elemhalmazra. {sör, bor, pelenka} {sör, bor} => {pelenka} {sör, pelenka} => {bor} {bor, pelenka} => {sör} {sör} => {bor, pelenka} {bor} => {sör, pelenka} {pelenka} => {sör, bor} ábra. Lehetséges asszociációs szabályok a {sör, bor, pelenka} elemhalmazra. A fenti algoritmus hátránya, hogy ha egy vizsgált elemhalmaz elég nagy, akkor az eljárás nehézkesen dolgozik (egy 100 elemet tartalmazó gyakori elemhalmaz esetén szabály bizonyosságát kell kiszámítani). Az anti-monoton tulajdonság azonban itt is felhasználható. Legyen Z gyakori elemhalmazból generált két szabályunk X Z \ X és x Z \ x, amelyekre teljesül, hogy x X. Ha az X Z \ X szabály nem teljesíti a bizonyosság-követelményt, akkor az x Z \ x szabály sem (6.12. ábra) A szabályok korlátai Az érvényes asszociációs szabályokkal a gyakori elemhalmazokban szereplő elemek közti kapcsolatot vizsgáljuk. A vizsgálat során két mutatót számolunk, nevezetesen a szabály gyakoriságát és bizonyosságát. Egy szabályt érvényesnek nevezünk, ha mindkét számított mutató egy bizonyos minimális küszöböt elér. A fenti eljárás a következő korlátokkal, hibákkal rendelkezik: 1. A gyakoriság/bizonyosság mutatók által előállított érvényes asszociációs szabályok félrevezetők lehetnek: Mivel egy X Y szabály bizonyosságát a szabály következményének feltételes valószínűségével becsüljük (P(Y X)), a következmény gyakoriságát a számolás során nem vesszük figyelembe. Mindez félrevezető asszociációs szabályokhoz vezethet. Ennek bemutatására tekintsük a következő egyszerű példát. Tegyük fel, hogy 500 ember tea- és kávéfogyasztását 257
266 6.5. ASSZOCIÁCIÓS SZABÁLYOK FELTÁRÁSA { a,b,c,d} {a,b,c}=>{d} {a,b,d}=>{c} {a,c,d}=>{b} {b,c,d}=>{a} {a,b}=>{c,d} {a,c}=>{b,d} {b,c}=>{a,d} {a,d}=>{b,c} {b,d}=>{a,c} {c,d}=>{a,b} {a}=>{b,c,d} {b}=>{a,c,d} {c}=>{a,b,d} {d}=>{a,b,c} ábra. Illusztráció az anti-monoton tulajdonság felhasználására a szabályok generálásánál. Ha az {a, b, c} {d} szabály nem érvényes, akkor a bekeretezett szabályok sem. 258 szeretnénk elemezni és megvizsgálni, hogy vajon a tea fogyasztása mennyiben befolyásolja a kávé fogyasztását. A felmérésből rendelkezésre álló adatok a következők: teát a megkérdezett emberek 20, kávét 80, mindkettőt 15 százalékuk szokott rendszeresen inni. Az adatokból a tea kávé szabály bizonyosságára 0.75-öt (75%) kapunk. Ennek alapján azt mondhatjuk, hogy a teát rendszeresen fogyasztók 75 százaléka rendszeres kávéfogyasztó is. A tea kávé szabályról tehát megállapíthatjuk, hogy érvényes (legyen σ = 10%, γ = 70%). Azonban ha felfedezzük, hogy a megkérdezett emberek 80 százaléka csak a kávét részesíti előnyben, azt kapjuk, hogy a tea fogyasztása a kávé fogyasztását csökkenti (80 %-ról 75%-ra), azaz az előbb megállapított tea kávé érvényes asszociációs szabály félrevezető. 2. Túl sok az asszociációs szabály, az érvényes asszociációs szabályok többsége érdektelen: Ha a két küszöbszámot alacsonyra állítjuk, akkor sok érvényes, de nem érdekes asszociációs szabályhoz jutunk, a meglepő, érdekes szabályok pedig rejtve maradnak köztük. Ha viszont a küszöbszámot magasabbra állítjuk, akkor érdekes szabályokat törölhetünk. Az előállított szabályok között sok lehet a redundáns. Bár ez a zárt elemhalmazok használatával csökkenthető, a legtöbb érvényes szabály még így is érdektelen a bizonyosság mutató definíciójából adódóan. Lásd első pont.
267 6. FEJEZET: GYAKORI ELEMHALMAZOK ÉS ASSZOCIÁCIÓS SZABÁLYOK FELTÁRÁSA A fenti problémák jól mutatják az érdekességi mutatók szükségességét, amelyeket a következő fejezetben tárgyalunk Érdekességi mutatók - asszociációs szabályok kiválasztása Az egyik legfontosabb kutatási terület az asszociációs szabályok vizsgálatánál olyan mutatók meghatározása, amelyek a szabályokat rangsorba állítják különlegességük, érdekességük és használhatóságuk alapján. Az ilyen érdekességi mutatókat szubjektív és tárgyilagos mutatókra oszthatjuk. Amíg szubjektívnek a felhasználó által vezérelt és az adatterülettől függő mutatókat nevezzük, addig tárgyilagosnak az adat által vezérelt és az adatterülettől független mutatókat hívjuk. A szubjektív mutatók fenti tulajdonságaiból következik, hogy meghatározásukhoz előzetes ismeret szükséges az adatról, illetve annak felhasználási területéről. Ilyen mutatók alkalmazása során problémát jelenthet, hogy ami az egyik felhasználónak érdekes, az egy másiknak érdektelen. A fejezet további részében a nevezetesebb tárgyilagos mutatókat ismertetjük, amelyek csak a bemeneti adattól függnek, és minden felhasználónak ugyanazt a jelentést hordozzák. Asszociációs szabály függetlenségének vizsgálata - a Lift mutató A fejezetben láttuk, hogy nagy bizonyosság értékkel rendelkező asszociációs szabályok nem szükségszerűen érdekesek is, mivel a bizonyosság mutató a szabály következményének gyakoriságát nem veszi figyelembe. A Lift mutató ezt a hiányosságot pótolja, meghatározva a szabály bizonyosságának és a következmény gyakoriságának hányadosát: Lift(X Y ) = bizonyosság(x Y ) (6.13) gyakoriság(y ) Példaként számoljuk ki a tea kávé asszociációs szabály Lift mutatóját: Lift(tea kávé) = bizonyosság(tea kávé) gyakoriság(kávé) = = (6.14) Jól látható, hogy a mutató helyesen jelzi a tea és kávé fogyasztás közt fennálló negatív korrelációt, azaz megállapíthatjuk, hogy a tea fogyasztása negatívan befolyásolja a kávé fogyasztását. A szabály feltételét és következményét egymástól függetlennek nevezzük, ha Lift 259
268 6.5. ASSZOCIÁCIÓS SZABÁLYOK FELTÁRÁSA mutatójuk 1, azaz: Lift(X Y ) = bizonyosság(x Y ) = 1 gyakoriság(y ) gyakoriság(x Y ) = gyakoriság(x) gyakoriság(y ) P(X,Y ) = P(X) P(Y ) ami nem más, mint két esemény (X és Y ) függetlensége. A Lift mutatót szimmetrikus mutatónak nevezzük, mivel ugyanazt az értéket kapjuk az X Y és az Y X szabályokra. Ezért ez a mutató az elemhalmazok érdekességének számolására is használható (a bizonyosság mutató aszimmetrikus, ezért csak az asszociációs szabályokra alkalmazható). Kovariancia analízis - az RI mutató A kovariancia az egyik legegyszerűbb mutató a függőség megállapítására egy X Y szabály X feltétele és Y következménye között. Ha X és Y jóval többször fordulnak elő együtt, mint feltételezhetnénk függetlenség esetén, akkor a szabályt érdekesnek nevezzük. A mutatót az angol rule-interest kifejezésből szabály-érdekesség vagy RI mutatónak is hívjuk, és a következő képlettel határozzuk meg: RI(X Y ) = gyakoriság(x Y ) gyakoriság(x) gyakoriság(y ) (6.15) Korrelációs analízis - a φ-együttható A kovariancia hátránya, hogy az eloszlást nem veszi figyelembe. A statisztikában ezért gyakran a korrelációt használják két változó közti kapcsolat elemzésére: φ-együttható(x Y ) = RI(X Y ) gyakoriság({x}) gyakoriság({y }) 1 gyakoriság({x}) 1 gyakoriság({y }) (6.16) A korrelációs értékek -1 (negatív korreláció) és +1 (pozitív korreláció) közé esnek. A szabály feltétele és következénye egymástól függetlenek, ha φ-együtthatójuk közel esik nullához. 260
269 6. FEJEZET: GYAKORI ELEMHALMAZOK ÉS ASSZOCIÁCIÓS SZABÁLYOK FELTÁRÁSA Megnevezés Lift Képlet P(Y X) P(Y ) Szabály-érdekesség (RI) P(X,Y ) P(X)P(Y ) Korreláció (φ) Koszinusz (IS) Természetes tényező (F) P(X,Y ) P(X)P(Y ) P(X)(1 P(X))P(Y )(1 P(Y )) P(X,Y ) P(X)P(Y ) P(Y X) P(Y ) 1 P(Y ) Hozzáadott érték (AV) P(Y X) P(Y ) Jaccard (ζ) Klosgen (K) P(X,Y ) P(X)+P(Y ) P(X,Y ) P(X,Y )(P(Y X) P(Y )) 6.4. táblázat. Nevezetesebb érdekességi mutatók További érdekességi mutatók A 6.4. táblázatban összefoglalunk néhány nevezetes érdekességi mutatót. Jelenleg nem létezik olyan mutató, amely minden típusú adatra jól működik, ezért célszerű több érdekességi mutatót használni az asszociációs szabályok kiválasztásánál. A táblázatban helytakarékosság miatt a gyakoriság és bizonyosság helyett a valószínűségszámításban szokásos jelöléseket használjuk (ld alfejezet) A gyakori elemhalmazok és asszociációs szabályok különböző típusai A fejezet előző részeiben a gyakori elemhalmazokat és az asszociációs szabályokat olyan adatokra (elemekre) fogalmaztuk meg, amelyek mindössze két értéket vehetnek fel: 1, amikor egy tranzakcióban szerepelnek és 0 (vagy egész egyszerűen nem vesszük figyelembe őket), ha a tranzakcióban nem szerepelnek. A fejezet ebben a részében az olyan elemhalmazokról és asszociációs szabályokról lesz szó, ahol az elemek nem csak kétértékű (boole-féle), hanem mennyiségi (numerikus vagy kvantitatív) változók is lehetnek (életkor, fizetés, stb). Vizsgáljuk továbbá az olyan asszociációs szabályokat is, ahol a korábbi egyszintű helyett többszintű szabályok is kinyerhetők Mennyiségi asszociációs szabályok A gyakorlati adatbázisok boole-féle változók mellett mennyiségi attribútumokat is tartalmaznak. Az ilyen adatok közti összefüggések feltárása az utóbbi évek egyik legfon- 261
270 6.6. A GYAKORI ELEMHALMAZOK ÉS ASSZOCIÁCIÓS SZABÁLYOK KÜLÖNBÖZŐ TÍPUSAI TID Életkor Nem Fizetés (eft) 1 25 Férfi Férfi Nő táblázat. Példa adatbázis numerikus változókkal TID Életkor: Életkor: Életkor: Nem: Nem: Fizetés: Fizetés: Nő Férfi táblázat. Numerikus attribútumok leképezése boole-féle változókra tosabb kutatási területévé vált az adatbányászaton belül. A probléma egyik legkézenfekvőbb megoldása, hogy a mennyiségi attribútumokat leképezzük boole-féle változókra, majd az ezekre kifejlesztett gyakori elemhalmazokat és asszociációs szabályokat feltáró algoritmusokat alkalmazzuk. A leképezés a következőképpen történhet: ha a mennyiségi attribútum csak kevés különböző értékkel rendelkezik (az ilyen attribútumokat kategorikus attribútumoknak is nevezzük), akkor ezek mindegyikét megfeleltetjük egy külön változónak, azaz az új adatbázisunkban a mennyiségi attribútumból annyi új változót generálunk, amennyi értékkel az rendelkezik. A 6.5. táblázat egy példa adatbázist mutat három mennyiségi változóval. Mivel a Nem attribútum mindössze két különböző értékkel rendelkezik, ezért a két külön értéket két boole-féle változónak feleltetjük meg (6.6. táblázat). Ha egy mennyiségi attribútumnak több különböző értéke van, akkor az értékeket diszkrétizáljuk (particionáljuk), intervallumokba soroljuk, majd minden egyes intervallumot külön boole-féle változónak feleltetünk meg. Például a 6.5. táblázat Életkor és Fizetés attribútumának értékeit diszkrétizáltuk, majd három, illetve két boole-féle intervallumba soroltuk. A diszkrétizálást különböző osztályozási és klaszterezési eljárással végezhetjük (ld. az osztályozás és klaszterezés fejezeteknél). A fenti megoldás előnye, hogy nem kell új algoritmusokat kifejlesztenünk, a meglévőket használhatjuk az új leképezett adatbázisra. Hátránya, hogy az intervallumba sorolás során a következő problémák lépnek fel: 262
271 6. FEJEZET: GYAKORI ELEMHALMAZOK ÉS ASSZOCIÁCIÓS SZABÁLYOK FELTÁRÁSA 1. Egy intervallum minden egyes elemének ugyanakkora súlya (értéke) van. Példánkban egy 46 éves és egy 90 éves ember is 1 értékkel szerepel a harmadik intervallumban. Egy 90 éves ember azonban jóval idősebb, mint egy 46 éves, valahogy a köztük lévő életkor különbséget meg kellene különböztetnünk. 2. Éles határok problémája. Tegyük fel, hogy az életkor attribútum három intervallumának gyakoriságértékei 35%, 35% és 30% (6.13 ábra). Ha a gyakoriságküszöb nagyobb, mint 35 százalék, akkor egyik intervallumnak sincs elegendő gyakorisága, holott nagy gyakoriság értékek vannak a 20 és a 46 éveseknél. Ha a középső intervallumot egy kicsit ki tudnánk terjeszteni, akkor az (helyesen) gyakorivá válna. A fenti két problémát megoldhatjuk a fuzzy elmélet (logika) felhasználásával. Azaz ahelyett, hogy az intervallumok minden egyes eleméhez azonosan 1 értéket rendelnénk, fuzzy tagsági függvények felhasználásával fuzzy intervallumokat kapunk. Ez a megoldás azonban egy új problémát vet fel: mivel a fuzzy intervallum elemek különböző értékeket vesznek fel, nem tudjuk használni a korábban ismertetett gyakori elemhalmazokat feltáró algoritmusokat, új eljárásokra van szükségünk. Ennek ismertetése azonban meghaladja könyvünk kereteit, ezért az érdeklődő olvasóknak a fejezet végén található szakirodalmat ajánljuk (6.8. fejezet). Tranzakcók száma Életkor 20% 15% 10% 5% Gyakoriság ábra. Példa az éles határok problémájára Többszintű asszociációs szabályok A gyakorlati adatbázisokban előforduló sok száz, vagy akár ezer elem (termék) közötti összefüggés mellett, az üzletstratégiák kialakításához szükség van általánosabb szabályok felállítására is. Ilyen összefüggések feltárásához a többszintű (vagy hierarchikus) elemhalmazokat és asszociációs szabályokat használjuk. 263
272 6.6. A GYAKORI ELEMHALMAZOK ÉS ASSZOCIÁCIÓS SZABÁLYOK KÜLÖNBÖZŐ TÍPUSAI { } tejtermék édesség... tej sajt csokoládé keksz zsíros félzsíros... étcsoki tejcsoki ábra. Egy élemiszer-áruház lehetséges termékhierarchiája. Az 6.14 ábrán egy élelmiszer-áruház lehetséges 3 szintű termékhierarchiája látható. A hagyományos 1-szintű asszociációs módszer alkalmazása során csak a szintek közötti összefüggéseket fedezzük fel, azaz például a zsíros tej tejcsoki asszociációs szabályt. Sokszor azonban az ilyen alacsony szintű szabály nem elégíti ki a minimális gyakoriság kritériumát. Ha azonban a zsíros tejet általánosítjuk tejre, akkor feltárhatunk asszociációs szabályt a tej és a tejcsoki párra. Az ilyen, többszintű szabályok segítenek mind a részletes, mind az általános összefüggések feltárásában. Többszintű szabályok feltárására leggyakrabban a azonos minimális-küszöb és a különböző minimális-küszöb módszerét használják. A következőkben a két különböző módszer előnyeit és hátrányait ismertetjük röviden. Azonos minimális-küszöb használata A módszer a hierarchia minden szintjén ugyanazt a minimális gyakoriságot használja. Az ilyen keresés előnye, hogy a felhasználónak csak egyetlen minimális-küszöböt kell megadnia, továbbá különböző gyorsítási technikák is alkalmazhatók. Mivel minden egyes szint átlépése során tudjuk, hogy a termékcsalád gyakori-e vagy sem, a ritka termékcsaládokat nem kell tovább vizsgálnunk, ezen csoportok egyik terméke sem fogja a minimális gyakoriság feltételét kielégíteni. A módszer hátránya, hogy magas küszöbérték esetén nem jutunk el az alacsonyabb szintekig (csak általános szabályokat kapunk), alacsony küszöbérték esetén pedig sok felesleges összefüggést nyerünk ki. Különböző minimális-küszöb használata Minden szintnek külön minimális gyako- 264
273 6. FEJEZET: GYAKORI ELEMHALMAZOK ÉS ASSZOCIÁCIÓS SZABÁLYOK FELTÁRÁSA Program ARMADA Clementine Darwin DBMiner Analytical System Enterprise Miner Intelligent Miner Magnum Opus* Mantas PolyAnalyst STATISTICA Data Miner WEKA* XpertRule Miner URL táblázat. Adatbányászati szoftverek asszociációs szabálykeresésre risága van, és értelemszerűen ezek szintről szintre csökkenek. A módszer előnye, hogy mind az általános, mind a részletes összefüggések felfedezhetők vele, hátránya, hogy a felhasználónak minden szinthez be kell állítania egy küszöbértéket. Mindkét módszer esetén szükség van a felesleges szabályok szűrésére. Ennek bemutatására tekintsük a következő példát: tej csokoládé (gyakoriság = 6%, bizonyosság = 59%) zsíros tej csokoládé (gyakoriság = 3%, bizonyosság = 60%) továbbá tegyük fel, hogy a zsíros és a félzsíros tejet a vásárlók százalékban választják. Ebben az esetben a második szabályt feleslegesnek mondjuk, mert (1) bizonyosságaik közel azonosak, és (2) gyakoriságuk aránya megegyezik a tej és a zsíros tej gyakoriságának arányával. Azaz a masodik szabály nem hordoz semmilyen többletinformációt, és kevésbé általános, mint az első Gyakorlati példa Ebben a fejezetben asszociációs szabályok feltárására alkalmas eszközöket ismertetünk. A 6.7. táblázatban az ismertebb adatbányászati termékeket (és elérhetőségüket) mutatjuk be. Köztük éppen úgy megtalálhatók az egyszerűbb gyakori elemhalmazokat és asszociációs szabályokat feltáró programok, mint a többféle adatbányászati algoritmust 265
274 6.7. GYAKORLATI PÉLDA magukba foglaló integrált rendszerek. A Clementine egy jó példa ez utóbbira, számos beépített algoritmusával az asszociációs szabályok mellett többek között neurális hálózati, osztályozási és modellezési feladatokat is megoldhatunk. Gyakori elemhalmazok feltárására elsősorban a korábban már részletesen tárgyalt Apriori algoritmust kínálja, de megtalálhatók benne ugyanúgy a szabálygenerálási eljárások, mint a különböző érdekességi mutatók. A továbbiakban egy szabadon letölthető program, a Weka használatát mutatjuk be egy példán keresztül, majd a fejezet végén az igazán nagy adatbázisok elemzésére alkalmas, kutató célra készült programok használatát ismertetjük. A 6.7. táblázatban csillaggal jelölt programok használatát további kidolgozott példákkal illusztrálva a könyv weboldalán érheti el a kedves olvasó Szabálykeresés a Weka programmal A Weka program könnyen használható grafikus felhasználói felülettel és számos adatbányászati funkcióval (ld. korábbi fejezetekben) rendelkezik, azonban az asszociációs szabálykereső funkciója inkább a kisebb adatbázisok elemzésére, demonstrációs célokra alkalmas. A program elindítása után a GUI chooser ablak jelenik meg, ahol az Explorer-t választva érhetjük el az asszociációs szabálykereső funkciót. A Preprocess fülre kattintva készíthetjük elő az adatokat, itt tölthető be az elemezni kívánt adathalmaz. Az adatok betöltése után az Associate fülre kattintva beállíthatjuk, hogy az asszociációs szabálykereséshez milyen algoritmust használjunk. Az Apriori algoritmust választva ábra. Az Apriori algoritmus keresési paramétereinek beállítása a Wekában
275 6. FEJEZET: GYAKORI ELEMHALMAZOK ÉS ASSZOCIÁCIÓS SZABÁLYOK FELTÁRÁSA különböző keresési paramétereket állíthatunk be (ld ábra). Az egyes opciók a következők: delta ezzel a paraméterrel az algoritmus iteratív módon addig csökkenti a minimális gyakoriság értékét, amíg a szükséges számú szabályt (ld. lejjebb) nem kapjuk meg lowerboundminsupport a minimális gyakoriság alsó korlátja metrictype érdekességi mutató, azaz mely mutató alapján rangsoroljuk a szabályokat (pl. a bizonyosság, vagy a Lift mutató, ld képlet) minmetric a kiválasztott érdekességi mutató minimális értéke numrules a keresendő szabályok száma, itt adhatjuk meg, hogy hány szabályt keresünk removeallmissingcols beállíthatjuk, hogy az adathalmazban törölje a hiányzó értékekhez tartozó oszlopokat significancelevel szignifikancia szintje, szignifikancia teszt (kizárólag a konfidencia /bizonyosság mértéknél) upperboundminsupport a minimális gyakoriság felső korlátja A keresés elindítása (Start gomb) után a bal oldali ablakban (Result list) vannak feltüntetve a futtatott keresések, illetve azok futási ideje. Egy adathalmazra párhuzamosan több keresést is futtathatunk eltérő beállításokkal. A Result list ablakban az egyes futtatásokra kattintva a jobb oldalon, az a Associator output ablakban jelennek meg a futtatás tulajdonságai és a feltárt szabályok. A keresés eredményét fájlba menthetjük, ha az egér jobb gombjával rákattintunk az adott keresés nevére a Result list ablakban. Internetes kereskedelmi portál adatainak elemzése Konkrét példaként tekintsünk egy (angol nyelvű) internetes kereskedelmi portál (webáruház) valós forgalmi adatait tartalmazó "adatbázist", amely három adatfájlból áll. A látogatói információkat (a portál látogatóinak szokásait) két adatfájlban rögzítették. Az első fájl (leg-sessions.std, 7296 session rekorddal) a session szintű információkat (oldalak, termékek, termék kategóriák melyeket egy felhasználó egy böngészés (session) alkalmával megtekintett), a második fájl pedig (leg-visitors.std, 5824 látogatói rekorddal) a látogató-szintű információkat (oldalak, termékek, termék kategóriák amelyeket egy felhasználó több látogatás alatt tekintett meg) tartalmazza. A harmadik fájlban (legs.cod) vannak felsorolva az attribútumok (termék kategóriák, alkategóriák, 267
276 6.7. GYAKORLATI PÉLDA főoldalak, gyűjtemények, stb., összesen 253 db). A letölthető zip fájl tartalmazza a legsessions.arff fájlt is, így az összes adat egy arff fájlban is szerepel, amely használható a Wekában (az arff kiterjesztésű fájlok felépítéséről részletesen a könyv "Az adatok alapvető feldolgozása és feltárása" című fejezetében olvashatunk). A portálon értékesített termékeknek két fő típusa van, ennek megfelelően a termék katalógus (az összes termék nyilvántartása) is két fő részre osztható fel: I. /Products/LegCare (a LegCare termékek, illetve II. /Products/LegWare (a LegWare termékek). Minden egyes weboldal, mely a fenti kategóriákba tartozó terméket ismertet, a termék forgalmazójáról lett elnevezve (pl. eshave, Hanes, Conair, stb.). Mindegyik kategória különböző alkategóriákat, illetve egyedi termékeket is tartalmaz. Ez az osztályozási hierarchia lehetőséget biztosít a termékek más típusú kategorizálására is: márkanév, életmód alapján, vagy például a felhasználók érdeklődési körének megfelelően. A termékeknek egy további kategorizálása lehet a következő: gyűjtemények és áruféleségek. Az egyes felhasználók érdeklődési körét az oldalak elérési útja, illetve a könyvtárstruktúra vizsgálatával ismerhetjük meg, például: /Assortments/Main/LifeStyles/Sport, /Assortments/Main/LifeStyles/Work, /Assortments/Main/LifeStyles/family, stb. A kattintás-folyam adatok a felsőbbszintű oldalak elérését is tartalmazzák, például: main/assortment\.jhtml, main/departments\.jhtml, main/home\.jhtml, stb. Az ilyen jellegű adatok elemzésével lehet nyomon követni a látogatók útvonalát (lap-bejárási sorrendjét) a portálon belül. A kattintás-folyam adatokon felül a kategória és alkategória adatai is érdekes információt nyújtanak. Ha például egy felhasználó a látogatása során megtekint, mondjuk az "eshave" forgalmazótól egy legcare terméket, akkor a felhasználó session-je a következőket is tartalmazza: Kategória: hajnyíró gépek, illetve Alkategória: borotvák és borotválkozási szerek. A kategóriák azonban csak a legcare termékekről tartalmaznak információt. A legware termékekről a kiválasztott (megtekintett) termékek jellegzetes gyűjteményei hordoznak információt. Például: Gyűjtemény: Ünneplés, Gyűjtemény: Gyermek táncok, Gyűjtemény: Greg Norman golf gyűjtemény stb. A felhasználókról szerzett információk felhasználhatók a portál további fejlesztéséhez, az oldalak kialakításához, sorrendbe helyezéséhez, illetve személyes reklámanyagok terjesztéséhez stb., ezáltal elérve a fő célt: a profit növelését. Az információkat asszociációs szabályok formájában is feltárhatjuk. Hasznos és fontos összefüggéseket fedezhetünk fel a termékek, kategóriák, és a felhasználók által látogatott oldalak között. Keressünk a Weka programmal asszociációs szabályokat a session szintű adathalmazon! A Weka program elindítása után az Explorerben töltsük be a leg-sessions.arff fájlt. Az attribútumok nagy számát tekintve, a Weka attribútum szűrőjével kiválaszthatjuk, hogy mely attribútumok a fontosak számunkra, így a szabálykereső algoritmus csak a megjelölt attribútumokat veszi majd figyelembe. 268
277 6. FEJEZET: GYAKORI ELEMHALMAZOK ÉS ASSZOCIÁCIÓS SZABÁLYOK FELTÁRÁSA ábra. A fontos attribútumok kiválasztása a webáruház adatsornál Például ha csak a termékek, illetve a kategóriák, alkategóriák, gyűjtemények, árufajták, attribútumok közötti összefüggésekre vagyunk kíváncsiak, akkor kihagyhatjuk a különféle HTML oldalak attribútumait. Ehhez jelöljük be az elhagyni kívánt attribútumok mellett lévő jelölőnégyzeteket, majd pedig nyomjuk meg a Remove gombot (6.16. ábra). A következő lépésben válasszuk ki az asszociációs funkciót, azon belül az Apriori algoritmust, ahol a 6.8. táblázatban szereplő paramétereket állítsuk be. Fontos megjegyeznünk, hogy a Wekában a keresendő szabályok alapértelmezett száma 10, azonban erre az adatsorra ez nem lesz megfelelő, így e paraméter értékét inkább pár százra állítsunk be. A szabálykeresést a Lift mutató alapján végezzük el. Az eredményhalmazt megvizsgálva (6.17. ábra) láthatjuk, hogy a keresés előtt 300 szabályt jelöltünk meg, viszont a keresési feltételt csak 86 szabály teljesítette, melyek közül az első szabály (mutató értékek nélkül feltüntetve): Category: Hair Removal=Y /Products/Legwear=Y /Assortments/Main/BrandOrder=Y ==> Subcategory: Razors & Shaving Treatments=Y A fenti szabály azt mondja, hogy ha valaki (a szabály előzmény része alapján) megtekintett olyan oldalt, mely a hajvágó készülékeket bemutató kategóriába tartozik (Category: Hair Removal), és LegWare termékeket (/Products/Legwear) tartalmazó oldalon is járt, továbbá a termékek márkanevei alapján is barangolt a portálon (/Assortments/Main/BrandOrder), akkor a borotválkozó szerek részkategóriához (Subcategory: Razors & Shaving Treatments) tartozó oldalt is meglátogatta. 269
278 6.7. GYAKORLATI PÉLDA Paraméter Érték delta 0,05 metrictype Lift lowerboundminsupport 0,1 minmetric 0,9 numrules 300 removeallmissingcols False significancelevel -1,0 upperboundminsupport 1, táblázat. Keresési paraméterek beállítása a webáruház adathalmazra A feltárt szabályok mellett az aktuális paraméter értékek, az attribútumok, illetve a gyakori elemhalmazok száma is fel van tüntetve. A paraméterek különböző beállításaival, illetve az attribútumok más és más szűrésével kapott eredmények fájlba mentés után könnyen összevethetőek Kutatási célra hozzáférhető algoritmusok Korábban már említettük, hogy a gyakori elemhalmazokat feltáró algoritmusok közötti első versenyt 2003-ban Floridában rendezték. Azóta a verseny minden évben megrendezésre kerül. Mivel az algoritmusok a konferencia honlapján szabadon letölthetők a hozzájuk tartozó cikkekkel együtt, ezért csak a honlap címét (fimi.cs.helsinki.fi) és a futtatáshoz szükséges információkat adjuk meg. A versenyre az összes, a maximális és a zárt gyakori elemhalmazokat feltáró algoritmusokkal lehet nevezni, ezért futtatásuk a fim, fim_all és a fim_closed parancsokkal történik (a fim a frequent itemset mining rövidítéséből adódik). A programoknak három input paraméterük van: 1. az adatbázis neve az elérési útvonallal együtt, 2. a minimális gyakoriság küszöb, ami egy természetes szám lehet (tehát a tranzakciók bizonyos száma és nem százaléka!), 3. valamint az eredmény fájl, ami a gyakori elemhalmazokat tartalmazza a gyakorisági értékekkel együtt. Információként az adott algoritmus futtatása után a képernyőn megjelenik, hogy az egyes szinteken mennyi gyakori elemhalmazt talált a program, például a (22, 1, 5, 10, 5, 1) kimenet szerint összesen 22 gyakori elemhalmaz talált a program. Ezekből 1 gyakori elemhalmaznak a hossza (elemeinek a száma) nulla (ez az üres elemhalmaz), 270
279 6. FEJEZET: GYAKORI ELEMHALMAZOK ÉS ASSZOCIÁCIÓS SZABÁLYOK FELTÁRÁSA ábra. A webáruház adatsorra kapott eredmények 5 egy elemből áll (azaz az adatbázisban előforduló gyakori elemek száma 5), továbbá 10 darab 2-elemű gyakori halmazt, 5 darab 3-eleműt és végül egyetlen egy 4-elemű halmazt tárt fel a keresés. Az eredményfájlban a következő formátumban vannak felsorolva a gyakori elemhalmazok: (20), vagyis az elemhalmaznak 3 eleme van (1, 2, 3) és gyakorisága 20, azaz 20 tranzakcióban fordul elő Irodalom A gyakori elemhalmazok problémáját Agrawal, Imielinski és Swami vezették be [87]. A népszerű Apriori algortimust egymástól függetlenül Agrawal és Srikant [88], valamint Mannila, Toivonen és Verkamo [89] fejlesztették ki, végül egy közös publikációban egyesítették [90]. Az Apriori algoritmus a tranzakciók redukálásán alapuló gyorsítási módszereit Agrawal és Srikant írták le [88]. A dinamikus elemhalmaz számolásának technikáját Brin, Motwani, Ullman és Tsur javasolták [91]. A direkt hashelés és tisztítás módszerét Park, Chen és Yu fejlesztették ki [92]. A partíciós eljárást Savasere, Omiecinski és Navathe mutatták be [93]. A függőlegesen összevonó ECLAT algoritmust Zaki adta meg [94]. A jelöltállítás nélküli FP-growth algortimust Han, Pei és Yin ajánlották [95]. A gyakori elemhalmazok mélységben haladó módszerét Agarwal, Aggarwal és Prasad vezették be [96]. A különböző algoritmusok működésének vizsgálatával először Zheng, Kohavi és 271
280 6.8. IRODALOM Mason foglalkozott [97], majd a gyakori elemhalmazokat feltáró első versenyt Goethals és Zaki szervezte [98]. A versenyre benevezett algoritmusok a hozzájuk tartozó cikkekkel együtt letölthetők a fimi.cs.helsinki.fi honlapról. A maximális gyakori elemhalmazok bányászatát először Bayardo javasolta [99], további technikákat tárgyalnak a [100, 96, 101, 102, 103, 104, 105] publikációk. A zárt elemhalmazok feltárását először Pasquier, Bastide, Taouil és Lakhal irták le [106], majd más szerzők további algoritmusokat adnak a [107, 108, 106, 109, 110, 111, 112] cikkekben. Az asszociációs szabályok gyakori elemhalmazokból való előállítását Agrawal és Srikant mutatták be [88]. Az érdekes asszociációs szabályok kiválasztására bevezetett érdekességi mutatók szubjektív és tárgyilagos módszerek közti különbségeket Silberschatz és Tuzhilin [113] tárgyalták először. A Lift mutatót Bayardo, Agrawal és Gunopulos [114], a szabály-érdekességet Piatetsky-Shapiro [115] vezették be. További érdekességi mutatókat a [116, 117, 118] cikkek ismertetnek. Alapos áttekintés és a különböző mutatókról a [119] hivatkozás. A mennyiségi asszociációs szabályok problémáját és a numerikus változók booleféle változókra való leképezésének módszerét Srikant és Agrawal tárgyalták [120]. Az éles határok problémájára Kuok, Fu és Wong világított rá [121], majd a fuzzy intervallum bevezetésével megoldást ad a problémára. A fuzzy asszociációs szabályok bányászatát a [122, 123, 124, 125, 126, 127, 128, 129, 130, 131] cikkek is tanulmányozzák. A többszintű asszociációs szabályok feltárásával Han és Fu foglalkozik [132]. A gyakori elemhalmazok és asszociációs szabályok feltárásának további megismerésére ajánljuk Han és Kamber magyar nyelvre is lefordított Adatbányászat - Koncepciók és technikák című könyvét [133]. 272
281 7. fejezet Regressziós technikák A regresszió során adott x = [x 1,...,x n ] T független változókból próbálunk következtetni egy vagy több y = [y 1,...,y m ] T függő változóra egy y = f (x,β) függvény segítségével. A regresszió számítás fő problémája ennek az f (x, β) összefüggésnek, illetve β paramétereinek a meghatározása. A regresszió tehát két vagy több ismérv közötti függvénykapcsolat feltárását jelenti. A gyakorlatban a regresszió nemcsak egyszerűen a függvénykapcsolat feltárását, hanem a feltárt összefüggés alkalmazását is jelenti Lineáris regresszió A legelterjedtebb regressziós technika a lineáris regresszió, mely a függő változót független változók lineáris kombinációjaként becsli: ŷ = β 0 + n β j x j (7.1) j=1 E modell egy n-dimenziós hipersíkot definiál. Ennek megfelelően a modell β paramétereinek meghatározása során egy síkot illesztünk a modell tanításához rendelkezésre álló adatpontokra (ld ábra). A modell paramétereinek meghatározásához a legelterjedtebb technika a legkisebb négyzetek módszere, mely az adatpontok és a függvény által számított értékek közti különbség négyzeteinek összegét minimalizálja, azaz a pontok távolságát a hipersíktól. E távolságot reziduális különbségnek, vagy röviden reziduálisnak vagy maradéktagnak nevezzük: ε i = y i ŷ i (7.2) 273
282 7.1. LINEÁRIS REGRESSZIÓ y x 2 x ábra. Példa a kétváltozós lineáris regresszióra A cél, egy N adatpontból álló adathalmaz esetében egy olyan β paraméter vektor meghatározása, mely esetén a becslés hibábájának négyzetösszege minimális: RSS(β) = N i=1 (y i β 0 n x i j β j ) 2 = ε T ε = (y Xβ) T (y Xβ) (7.3) j=1 ahol ε a maradéktag vektorát jelöli, és a y = f (X,β) + ε mátrix alakban felírt modell a következő jelentéssel bír: y 1 1 x x 1n β 0 ε 1. = (7.4) 1 x N1... x Nm β n ε N y N Mivel az RSS függvény egy kvadratikus függvény, ezért tudjuk, hogy csak egyetlen minimuma van. Az analízisből ismert, hogy egy folytonos függvény szélsőértéke ott található ahol a differenciál-hányados zérus, így a (y Xβ) T (y Xβ) β = 2X T y + 2X T Xβ = 0 (7.5) kifejezés átrendezésével kapjuk az optimális paraméterek vektorát β = (X T X) 1 X T y (7.6) Adott N elemű adathalmazból tehát ezzel az egyszerű képlettel tudjuk kiszámítani a lineáris modell paramétereit. 274 Az így kapott lineáris modell azonban csak akkor ad jó becslést, ha közelítőleg
283 7. FEJEZET: REGRESSZIÓS TECHNIKÁK 7.2. ábra. A regressziós feladat megoldása MATRIX Tool-al teljesülnek a következő feltételek: Linearitás: A függő változó várható értéke a független változók lineáris kombinációja. E(y x 1,x 2,...,x n ) = β 0 + β 1 x 1 + β 2 x β n x n. Függetlenség: Az ε független az összes megfigyelés tekintetében. Torzítatlanság: Az ε várható értéke 0, azaz E(ε) = 0 i = 1,...,N. Homogenitás: Az ε normál eloszlású és σ szórása ismeretlen Példa. Regresszió EXCEL MATRIX Tool-al Az EXCEL Adatelemző (Analyst) Add-in-je kitűnő eszköz regressziós feladatok megoldására. Mielőtt azonban ennek használatával megismerkednénk, csupán pedagógiai okokból nézzük meg a könyv honlapjáról letölthető MATRIX Tool-lal készült példát, mely lépésről lépésre mutatja a korábban ismertetett mátrix egyenletek gyakorlatban történő megoldását (ld ábra). 275
284 7.2. REGRESSZIÓ EREDMÉNYÉNEK ÉRTÉKELÉSE ε ε ε x x x 7.3. ábra. A reziduálisok szóródása egy független változó függvényében 7.2. Regresszió eredményének értékelése A regressziós modellek értékeléséhez, illetve megválasztásához célszerű az osztályozási modellek esetében a 5.5. fejezetben ismertetett technikákat alkalmazni (pl. keresztvalidálás). Mivel azonban a regressziós modellek folytonos változók becsléséhez használatosak, a modell jóságának minősítése eltérő megközelítésmódot követel. A mindennapi élet rohanásában gyakran előfordul, hogy a regressziós paraméterek és a korrelációs együttható kiszámításánál megáll az adatbányász. Célszerű azonban ezután a maradéktagok vizsgálata, mert lényeges információt hordozhatnak, fontos hibákra mutathatnak rá, és már csak azért is, mert a regressziós becslés minősége a maradéktagokra tett feltételezéseken nyugszik. A statisztikai és adatbányász programcsomagok többsége a rezidumokat automatikusan szolgáltatják, de kiszámításuk sem jár különösen nagy munkával. A reziduálisokat a független változók függvényében ábrázolva ugyanis meg lehet állapítani, hogy mennyire jó a regresszió. Ha nem lelhető fel szabályszerűség a maradéktagok eloszlásában, akkor valószínűleg jó modellt választottunk, azaz a hiba véletlenszerű. Ellenkező esetben célszerű megfontolni más függvényalak használatát, melyhez ötleteket adhatnak a maradéktagokat feltüntető ábrák (ld ábra). Ahhoz azonban, hogy pontosan, numerikusan is kifejezzük, hogy mennyire pontos egy regressziós modell, további elemzésre van szükség. Egy adott független változó átlagtól való eltérése kifejezhető a regresszióval becsült érték átlagtól való eltérésének és a megfigyelt érték regresszióval becsült eltérésének (rezidum) összegével: avagy: y i y = (ŷ i y) + (y i ŷ i ) (7.7) y i y = (ŷ i y) + ε i (7.8) A fenti összefüggés csupán egy adatpontra érvényes. Ha a teljes eltérésére vagyunk 276
285 7. FEJEZET: REGRESSZIÓS TECHNIKÁK y Nem megmagyarázott négyzetösszeg ( SSE ) y i Teljes négyzetösszeg ( SST ) ŷ j = β 0 + β j x j Megmagyarázott négyzetösszeg ( SSR ) x i x 7.4. ábra. Regresszióval magyarázott szórásnégyzet számításához szükséges értékek kíváncsiak, összegeznünk kell az eltéréseket: (y i y) 2 = (ŷ i y) 2 + (y i ŷ i ) 2 (7.9) ahol (y i y) 2 nem jelent mást, mint a teljes eltérés négyzetösszegét (angolul SST Total Sum of Squared Deviation). A következő tagot, (ŷ i y) 2 a regresszió átlagtól vett eltérés-négyzetösszegnek (angolul SSR Regression Sum of Squared Deviation) nevezik. A harmadik tagot, (y i ŷ i ) 2 pedig a megfigyelt érték regressziótól vett eltérés négyzetösszegének (SSE Error Sum of Squared Deviation) nevezzük, így SST = SSR + SSE. Az előző egyenlet átrendezésével kapjuk a 1 = (ŷ i y) 2 (y i y) 2 + (y i ŷ i ) 2 (y i y) 2 (7.10) egyenletet, melynek a jobb oldalon álló első tagja nem más, mint a lineáris korrelációs együttható négyzete: R 2 = (y i ŷ i ) 2 (y i y) 2 (7.11) Az R 2, más néven determinációs együttható tehát megmutatja, hogy a regressziós modell segítségével a teljes szórásnégyzet hányad részét sikerül megmagyarázni (ld ábra). A kis R 2 mutató nem feltétlenül jelent gyenge függvénykapcsolatot. 1. Nagyobb mintaszám (100 felett) mellett már a as mutató is szignifikáns kapcsolatra utal, míg alacsony minta-elemszám esetén csak igen magas érték utal kapcsolatra. 2. Aggregált adatokkal történő számítás esetén általában magasabb a korreláció, 277
286 7.3. REGURALIZÁLT REGRESSZIÓ 7.5. ábra. A regresszió beállítási lehetőségei ugyanis az aggregálás következtében az egyedi véletlen hatások kiegyenlítik egymást. 3. Idősorokkal kapcsolatos vizsgálatoknál jellemzően magasabb korrelációt kapunk, mert a függő változóra több, egymással is kapcsolatban álló tényező is hathat Példa. Az Excel már korábban is említett Adatelemző beépülő moduljának többváltozós regressziós függvénye a maradéktagok elemzésére is remek eszköz. A regressziós feladatot a 7.5 ábrán feltüntetett kartonlapon definiálhatjuk, melynek eredményeként az Excel egy meglehetősen részletes elemzést készít. Például a generált 7.6. ábra arra utalhat, hogy az alkalmazott lineáris modell nem megfelelő a változók közötti kapcsolat pontos leírására Reguralizált regresszió A regressziós modell kiválasztásának általános problémája, hogy általában a modellalkotásához nagyszámú, potenciálisan hasznos független változó áll rendelkezésre. Ha például a regresszió célja egy idősor jövőbeli értékének megbecslése, akkor elvben az 278
287 7. FEJEZET: REGRESSZIÓS TECHNIKÁK Maradékok Távolság 7.6. ábra. A maradéktagok szóródása Becslési hiba Kicsi szórás Nagy torzítás Kicsi torzítás Nagy szórás Teszt halmaz Tanító halmaz Kicsi Modellkomplexitás Nagy 7.7. ábra. A modellkomplexitás és a becslési hiba kapcsolata 279
288 7.3. REGURALIZÁLT REGRESSZIÓ összes múltbeli értéket felhasználhatjuk a modellben, azaz potenciálisan végtelenül sok független változót építhetünk be a modellbe. A modell túlzott összetettségének számos hátránya van: Előfordulhat, hogy nehézkes és költséges a modellben szereplő összes változó értékeit összegyűjteni. A jó modell egyik fő jellemzője az egyszerűség. Sokkal jobb bepillantást nyerhetünk a változók hatásáról, ha egyszerűbb modellel dolgozunk. Ha nagyon nagy a független változók száma a modellben, akkor a regressziós együtthatók számítása numerikusan instabil lehet. Azok a független változók, melyek nincsenek összefüggésben a függő változóval, növelik a becslések szórását. A regressziós modellekben a modellkomplexitást a paraméterek, illetve a felhasznált független változók száma határozza meg. Ha a modell komplexitása túl kicsi, akkor a modell pontatlan, ha túl nagy, akkor a modell túlparaméterezett, azaz nemcsak a valós jelenséget, hanem az identifikációra használt adathalmazban lévő mérési hibákat is le fogja írni (ld ábra). A regularizált regresszió lehetővé teszi, hogy úgy befolyásoljuk a modell komplexitását, hogy a változók, illetve a kapcsolódó paraméterek számát közvetlen módon nem csökkentjük, azaz nem alkalmazzunk a fejezetben ismertetett technikákat. A regularizáció azon alapszik, hogy a paraméterek meghatározása során a költségfüggvény a modellhiba mellett valamilyen regularizációs feltételt is tartalmaz, mely azt biztosítja, hogy a modell konzervatívabb legyen. A regularizált regresszió legegyszerűbb és legelterjedtebb módja az ún. ridge regresszió, amikor egyszerűen büntetjük a paraméterek nullától való eltérését: ˆβ ridge = argmin N ( β i=1 (y i β 0 n j=1 x i j β j ) 2 + λ n j=1 β 2 i j) (7.12) E költségfüggvény első tagja a regresszió négyzetes hibája (ld egyenlet), míg a második tag bünteti a paraméterek nullától való eltérését. A λ paraméter egy szabadon megválasztható pozitív érték, mely meghatározza, hogy mekkora súlya legyen a reguralizációnak. Minél nagyobbra választjuk, annál erősebben fog érvényesülni a regularizáció, azaz növelésével csökkentjük a modell komplexitását. Általános szabály nincs arra nézve, hogy milyen érték a jó, kereszt-validálással célszerű megkeresni az optimális értékét (ld fejezet). 280
289 7. FEJEZET: REGRESSZIÓS TECHNIKÁK 7.3. Példa. Regularizált regresszió WEKA-ban Ebben a példában az AUTO-MPG adatsort használjuk (ld fejezet). A regularizált regressziós feladatot a WEKA programban oldjuk meg különböző súlyzó paraméterek mellett, és az eredmények alapján a végkövetkeztetést pedig az Excel segítségével fogjuk levonni. A megoldás lépései: 1. Töltsük be az auto-mpg.arff fájlt. Itt is szükség lesz adattisztításra: töröljük a cylinders, a car name és a model year attribútumokat. 2. A Classify menüpontban válasszuk ki a LinearRegression függvényt, majd kattintsunk a Choose gomb mellett megjelenő LinearRegression feliratra. 3. A lineáris regresszió beállításainak menüjében a különféle változatható paraméterek mellett megtaláljuk a ridge változót, ami nem más, mint a korábbi egyenletekben szereplő λ együttható, azaz a regularizációs paraméter (ld ábra). 4. A Test options menüben a Cross-validation pontban válasszuk ki a tízszeres keresztvalidálást a modell általánosító képességének minősítésére (ld fejezet). 5. λ értékének növelése mellett végezzük el néhányszor a regressziót és az eredményeket jegyezzük fel egy Excel táblázatba. A kapott táblázat alapján elemezhetjük a regularizáció mértékének és a kapott modellparamétereknek, illetve a modell jóságának a kapcsolatát (ld ábra). Jól látható, hogy a tízszeres-keresztvalidálással számított modellhibának egy adott regularizációs paraméternél minimuma van. Tehát az adott probléma megoldásához adott komplexitású modell az ideális, mely komplexitást jelen esetben egy adott regularizációs paraméter biztosítja. A könyv honlapján megtalálható e regularizált regressziós feladat megoldása az Excelben MATRIX Tool segítségével is Nemlineáris regresszió Gyakran előfordul, hogy a regressziós modell változói közti kapcsolat sokkal összetettebb, mintsem az egy egyszerű lineáris függvénnyel leírható lenne. A számtalan nemlineáris regressziós technika közül a teljesség igénye nélkül ismerkedjünk meg a legfontosabbakkal. 281
290 7.4. NEMLINEÁRIS REGRESSZIÓ 7.8. ábra. A lineáris regresszió beállítása WEKA-ban indus age dis rad 0.01 ptradio regularizáció Hiba regularizáció 7.9. ábra. A paraméterek és a modellhiba változása a regularizáció függvényében 282
291 7. FEJEZET: REGRESSZIÓS TECHNIKÁK Megfigyelt adatok Transzformáció Transzformált adatok Lineáris regresszió Nemlineáris összefüggés Transzformáció eredeti formára Lineáris regresszió ábra. A linearizálás lépései Függvény Transzformált függvény ỹ = ã + b x, ã, b β ỹ x ã b y = ab x logy = loga + xlogb logy x loga logb y = a + blogx y logx a b y = ax b logy = loga + blogx logy logx loga b y = a + b 1 1 x y x a b y = 1 1 a+bx y = a + bx 1 y x a b ( ) ( ) A y 1 A y 1 y = A 1+ce bx ln = lnc + bx ln x lnc b 7.1. táblázat. Legegyszerűbb, lineáris alakra visszavezethető regressziós függvények Paramétereiben lineáris regresszió A paramétereiben lineáris regresszió egy olyan nemlineáris függvényt használ, mely paramétereire nézve lineáris, illetve olyan modelleket, melyek valamilyen egyszerű matematikai transzformációval erre az alakra hozhatók. A mérnöki és gazdasági életben gyakran fordulnak elő ilyen nemlineáris függvénytípusok (ld ábra és táblázat). Az eredeti lineáris regresszióhoz viszonyítva azonban két jelentős különbségre fel kell hívni a figyelmet: 283
292 7.4. NEMLINEÁRIS REGRESSZIÓ A regresszió tulajdonságai: A regresszióval szemben támasztott feltételeknek a transzformált adatokra kell igaznak lenniük, így a becslési jó tulajdonságok is csak transzformált adatok által definiált lineáris regresszióra lesznek igazak. A transzformáció miatt ezek a feltételek nehezen értelmezhetők az alapadatokra. (Pl. logaritmikus transzformáció esetén a maradéktagoknak lognormális eloszlásúnak kell lenni, hogy logaritmikus transzformáltjuk normális eloszlású legyen.) A gyakorlatban itt különösen fontos, hogy az eredeti adatok és a nemlineárissá visszatranszformált regressziós becsült értékek eltéréséből adódó hibatagokat ábrázoljuk, s legalább szemrevételezéssel állapítsuk meg, kielégítik-e elvárásainkat. Illeszkedés jósága - korrelációs index: A transzformált adatokra illesztett egyenest jellemző korrelációs együttható nem feltétlen jellemzi az eredeti adatok kapcsolatát. (Gondoljunk csak a hiperbola esetére. Az eredeti adatok közül a nagyobb y értékek lesznek a legkisebbek a transzformáció következtében, így az ezektől való eltérések lényegesen különböznek az eredeti és a transzformált esetben.) 7.4. Példa. Logaritmikus regresszió Excelben Illesszünk egy logaritmus függvényt a ábra adataira a következő formában: y = (ax b ) ln(y) = ln(a) + bln(x) A z = ln(y), t = ln(x) és z 0 = ln(a) helyettesítésekkel az egyenlet lineáris lesz: z = z 0 + bt, és az eredeti a paramétert is visszakapjuk: a = e z 0. Tehát ahhoz, hogy kiszámíthassuk {x i,y i }, i = 1,...,N adatpontokra a logaritmikus regressziót a következőket kell tennünk: 1. Alakítsuk át az összes x i,y i adatpontot: t i = ln(x i ) és z i = ln(y i ) (ld ábra). 2. Lineáris regresszióval határozzuk meg a z 0 és b paramétereket. 3. E paraméterekből számítsuk vissza az a paramétert. A példa teljes egészét tartalmazó Excel fájl letölthető a könyv honlapjáról. Látható, hogy a kapott függvény szépen illeszkedik az adat pontokra, tehát a logaritmikus függvényalak e feladathoz jó választás volt. 284
293 7. FEJEZET: REGRESSZIÓS TECHNIKÁK ábra. Logaritmikus regresszió számítás Interpoláció spline-okkal A regresszió egy speciális fajtája az interpoláció. Interpolációt akkor használhatunk, mikor az adataink mérési hibával, zajjal terheltek, és/vagy nem megfelelő gyakorisággal állnak rendelkezésre. Példaként tegyük fel, hogy egy időben változó folyamat egy fontos jellemzőjét mérjük, és csak korlátozott számú pontatlan mérést tudunk végrehajtani. Ekkor érdemes egy olyan függvényt illeszteni a mért adatpontokra, mely segítségével részben meg tudunk szabadulni a mérés hibájától (ld fejezet), részben pedig ki tudjuk számolni a vizsgált jellemzőt azokban az időpontokban is, amelyekben nem történt mérés. Fontos megjegyezni, hogy az interpolációs függvényekkel előremutató becslést (extrapolációt) nem lehet végezni. Az interpoláció legegyszerűbb esete, amikor adott egy adathalmaz, ahol egy függő változó egy független változó függvényében van megadva meghatározott helyeken, és a kérdés, hogy egy adott x helyen mennyi a függő változó értéke. Az interpoláció úgy történik, hogy az x hely környékén található pontokra illesztünk egy modellt, majd ezzel a modellel kiszámoljuk a függő változó értékét az x helyen (ld ábra). Természetesen ha megváltozik az x értéke, megváltozik a környezetként definiált adathalmaz is, ennek következményeként pedig megváltozik az alkalmazott interpolációs modell is. Azaz, a regressziós modellezéssel szemben, ami egy általános modellel próbálja leírni az egész adathalmaz viselkedését, az interpoláció egy-egy pontra határoz meg lokális függvényt. Ugyanakkor szükség lehet arra is, hogy a teljes adathalmazt egyetlen függvénnyel írjuk le. Erre akkor van szükség, ha adattisztítás a célunk. Az adattisztítás során úgy 285
294 7.4. NEMLINEÁRIS REGRESSZIÓ Részhalmaz választás A keresett ponttal szomszédos pontok halmazának kiválasztása. Részhalmaz Polinomiális görbe Polinomiális illesztés A választott pontokkal a polinomiális regresszió kiszámítása Részhalmaz y=h (x) Értékelés Kiszámítjuk a polinomiális értékét a célpontban, ami megadja az interpolált értéket x ábra. Az interpoláció lépései ξ 1 ξ ábra. Példa köbös spline-ra 286
295 7. FEJEZET: REGRESSZIÓS TECHNIKÁK ábra. Példa az interpolációra illesztünk függvényt az adatpontokra, hogy a teljes adathalmazt felosztjuk szakaszokra, és az egyes szakaszokra illesztünk interpolációs függvényeket. Az így kapott görbét spline-nak hívják. Egy spline tehát egy adathalmaz egyes szakaszaira illesztett ún. bázisfüggvények összessége. A bázisfüggvények a következő modellel írják le az egyes szakaszokat: y = β 0 + n j=0 β j h j (x) + ε (7.13) A h j (x) általában valamilyen nemlineáris függvénye az x független változónak, a β j a paraméterek, amelyre nézve a bázisfüggvény lineáris. A függvényszakaszok határát, a ξ i változókat, csomópontoknak vagy vezérlőpontoknak nevezzük, amelyeket a priori kell definiálni. Ezek a vezérlőpontok ξ 1, ξ 2,...,ξ n, definiálják általában a bázisfüggvényeket (h j (x)). A spline-okat a bázisfüggvényeik alapján osztályozzák. Például vannak elsőfokú, másodfokú (négyzetes), harmadfokú (köbös) spline-ok. A ábra egy köbös regressziós spline-t mutat, melynek bázisfüggvényei a következők: h 1 (x) = 1, h 2 (x) = x, h 3 (x) = x 2, h 4 (x) = x 3, h 5 (x) = (x ξ 1 ) 2 +, h 6 (x) = (x ξ 2 ) Példa. Interpoláció EXCEL-ben Ebben a példában egy interpolációs feladatot fogunk megoldani lineáris, másodés harmadfokú interpolációt használva. Első lépésben generáljunk négy adatpontot a következő függvénnyel az x = (1.5, 2.0, 2.5, 3.0) pontokban: ( ) 4x f (x) = 1 + ln(x)sin 5 Tegyük fel, hogy nem ismerjük az eredeti függvényt, és a feladatunk az, hogy az x = 2.2 pontban megbecsüljük az y értékét a már ismert négy pont alapján. Ez egy tipikus interpolációs feladat. Készítsünk az Excel-ben egy táblázatot, amely tartalmazza a négy pontot (ld ábra). 287
296 7.4. NEMLINEÁRIS REGRESSZIÓ x 1 x 2 x c i x c i i d i φ i x n ábra. Az i-dik rejtett RBF neuron Az interpoláció az Excelben nagyon egyszerűen elvégezhető az interpolate függvény segítségével, mely utolsó paramétere adja meg az interpolációs függvény rendűségét. Lineáris, másodfokú és harmadfokú interpolációt kipróbálva láthatjuk, hogy a harmadfokú illesztés hibája a legkisebb. Általában a magasabb rendű polinomok pontosabb becslést adnak, de ne feledjük, hogy a túlságosan komplex modell pontatlanná is teheti az interpolációt, ahogyan említettük ezt szó a reguralizált regresszió tárgyalásakor Radiális bázisfüggvények A radiális bázisfüggvényeket (RBF) eredetileg interpolációs eljárásokban használták, teljesen függetlenül a neurális hálózatoktól, melyek közé ma gyakran sorolják ezeket a modelleket. E történetiséget az is bizonyítja, hogy a modellt az előzőekben ismertetett egyváltozós bázisfüggvény (ld egyenlet) többváltozós kiterjesztésének tekinthetjük: n y = β 0 + β j h j (x) (7.14) j=0 ugyanis a h j (x) radiális bázisfüggvény egy többváltozós függvény, mely működési elve szerint először kiszámítja a bemenetre érkező x vektor és a c i = [c i1,c i2,...,c in ] középpontvektor távolságát egy i norma mátrixra vonatkozólag, d i = (x c i ) (x c i ) T, (7.15) i majd ezt a kiszámított d i távolságot transzformálja át egy nemlineáris aktivációs függvény f (d i ) segítségével. Az aktivációs függvény alakja leggyakrabban a Gauss-függvény, így h j (x) = e 1 2 (x c i) i (x c i ) T (7.16) Az RBF neuron felépítését a ábra mutatja. Az előző egyenlet alapján az Olvasó láthatja, hogy abban az esetben, ha a c i csoportközéppontok ismertek, akkor a modell 288
297 7. FEJEZET: REGRESSZIÓS TECHNIKÁK McCulloch-Pitts neuron Kimenet Bemenetek Összeadó Átviteli függvény ábra. A McCulloch-Pitts neuron β paramétereinek meghatározása rendkívül egyszerű feladat, ugyanis a modell lineáris ezekre a súly -paraméterekre nézve. Tehát e paraméterek az előzőekben ismertetett lineáris legkisebb négyzetek módszerével meghatározhatók. A bázisfüggvény c i paramétereinek és i norma mátrixának meghatározása már jóval összetettebb feladat. A gyakorlat viszont azt mutatja, hogy ehhez egyszerű heurisztikák alkalmazása is elegendő. Például az Clementine és a WEKA adatbányász szoftverek egyszerű csoportosítási algoritmussal határozzák meg ezeket a paramétereket Mesterséges neurális hálózatok 1909-ben Cajal észrevette, hogy a gerinces állatok agya nagyszámú összekötött sejtből épül fel, amiket neuronoknak hívunk. Azóta már széles körben elfogadott, hogy ezek a neuronok képezik az agy alapvető információ-feldolgozó részegységeit. Felfedezték, hogy egy neuronnak vannak olyan ágai, melyek összegyűjtik a beérkező elektromos jeleket, majd egy továbbító ágon keresztül adják le a bejövő ingerekre a válaszukat. McCulloch és Pitts egy matematikai modellt készített ezen elképzelés alapján, melyben minden egyes bemenethez rendelhető egy súly, majd a súlyozott bemenetek összege a neuron átviteli függvényén keresztül adja a kimenetet: y = f ( n i=1w i x i ) (7.17) ahol y a neuron kimenete, f () pedig az átviteli függvény. Egy ilyen neuron nem más, mint egy paramétereiben nemlineáris regressziós modell (ld ábra). Átviteli függvény gyanánt különböző típusú nemlineáris függvényeket adhatunk meg (ld táblázat), mely karakterisztikák közül leginkább a folytonos szigmoid és a hiperbolikus tangens típusúakat használják. 289
298 7.4. NEMLINEÁRIS REGRESSZIÓ Név f (x) Lineáris x 1 Szigmoid 1+e x Hiperbolikus tangens { tanh(x) x x < 0 Perceptron 0 x táblázat. Néhány fontosabb átviteli függvény neuronok Kimenetek Bemenetek Els réteg Második réteg ábra. MLP hálózat A neuronokból neurális hálózatot úgy kapunk, hogy több neuront összekötve egy többrétegű hálózatot képezünk, ezt angolul Multilayer Preceptron (MLP) hálózatnak hívják ( ld ábra). Általában kétrétegű hálózatot szokás használni. Ennél több rétegre ugyanis nincs szükség, mivel matematikailag bizonyított, hogy a kétrétegű neurális hálózattal bármely folytonos függvény közelíthető. A kétrétegű hálózatok első rétegét rejtett rétegnek, a második rétegét kimeneti rétegnek nevezzük. A rejtett réteg neuronjainak átviteli függvényei tipikusan szigmoid vagy hiperbolikus tangens típusúak, míg a kimeneti réteg neuronjainak átviteli függvénye tipikusan lineáris. Ekkor a teljes MLP hálózat így irható le: ( n )) i j x j j=1w ŷ = w 0 + m i=1 w i (w i0 + f, (7.18) ahol ŷ a hálózat kimenete (becsült függő változó), x j a hálózat bemenetei (független változók), n a független változók száma, m a neuronok száma a rejtett rétegben, és f () reprezentálja az átviteli függvényt. 290
299 7. FEJEZET: REGRESSZIÓS TECHNIKÁK A neurális hálózatot meg kell tanítani az adott probléma megoldására. Ennek módja, hogy valamilyen nemlineáris optimalizációs eljárással megkeressük azokat a súlytényezőket, melyeknél a hálózat az adott regressziós feladatot jól meg tudja oldani. Vagyis a 7.3. egyenlethez hasonlóan a következő költségfüggvényt minimalizáljuk: minj = N i=1 ε 2 i = N i=1 (y i ŷ i ) 2 (7.19) ahol N az adatpárok száma a tanítási mintában. A cél tehát megtalálni azokat a w súlytényezőket, amelyeknél az J-nek minimuma van. Mivel a modell nemlineáris a paramétereire nézve, a klasszikus módszer a gradiens alapú optimalizáció alkalmazása, mely során minden iterációs lépésben a költségfüggvény paraméterek szerinti deriváltjának (graidesnek) megfelelően változtatjuk meg a paramétereket: β (l+1) = β (l) α J β (l) (7.20) ahol a β (l) a w súlytényezőket tartalmazó paraméter vektor az l-ik iterációs lépésben, míg α a tanulás sebességét meghatározó paraméter. A pariális deriváltakat a egyenletből lehet meghatározni a láncszabály segítségével. Természetesen ez egyszerű gradiens módszeren túl számtalan összetett nemlineáris optimalizáció stratégia is alkalmazható, mint például a Levenberg-Marquadt algoritmus. Összefoglalásképpen az MLP hálózatok legfontosabb tulajdonságai a követezők: Univerzálisak, szinte bármely regressziós problémára kitűnően használhatóak. Az extrapolációs tulajdonsága megjósolhatatlan, jellemzően rossz. Ezért nagyon fontos, hogy a neurális hálózat tanítása során a tanitási minta lefedje a függő- és független változók teljes tartományát. Megfelelő számú neuron esetén a regressziós modell pontossága jó. Túlméretezett hálózat esetében a modell általánosító képessége rossz. (Ugyanaz a probléma, mint amiről szó volt a 7.3 fejezetben.) Ezért ajánlott a keresztellenőrzést használni a megfelelő hálózatméret megtalálásához. Egy neurális hálózat tanítása lassú, körültekintést igénylő folyamat, de a modell kiértékelése gyors. A kész hálózat nem interpretálható. 291
300 7.4. NEMLINEÁRIS REGRESSZIÓ ábra. Neurális hálózat ábrázolása a WEKA programban 7.6. Példa. Neurális hálózat WEKA-ban A példában ismét a WEKA programot és az AUTO-MPG adatsort fogjuk használni. Az adatsor betöltése után töröljük a modell és az origin attribútumokat, majd a a Classify menüpontban töltsük be a MultiLayerPerceptron függvényt. A függvény beállításainál a GUI opciót állítsuk igazra, hogy grafikusan nyomon követhessük a hálózat tanítását. A Test options menüpontban válasszuk ki a Cross-validation opciót. A számított korrelációs együttható , mely magasabb, mint az eddig kapott lineáris regressziós modellek korrelációs együtthatói Paramétereiben nemlineáris regresszió A paramétereiben nemlineáris regresszió általános esete a korábban tárgyalt, speciális nemlineáris regressziós feladatoknak: ŷ i = f (x i,β) (7.21) ahol az f függvény a β paraméterekre nézve sem lineáris. A nemlineáris regressziós modellek előnye hogy flexibilisebbek, mint a paramétereiben lineáris regressziós modellek. Hátrányuk viszont, hogy a regressziós paraméterek meghatározása nehezebb, 292
301 7. FEJEZET: REGRESSZIÓS TECHNIKÁK sőt előfordulhat, hogy noha maga az alkalmazott függvényalak jó, megfelelő, numerikus okok miatt nem sikerül a jó paramétereket meghatározni. A paraméterek meghatározására számtalan nemlineáris optimalizációs algoritmust lehet használni, azonban ezek mindegyike sokkal bonyolultabb, semhogy ebben a fejezetben részleteiben ismertethessük őket. Nemlineáris függvény paramétereinek meghatározására érdemes valamilyen programcsomagot használni. Az Olvasó számára első próbálkozásként az Excel Solver beépülő modulját ajánljuk, mely segítségével még paraméterekre vonatkozó korlátok is definiálhatók. Összetettebb, nemlineáris optimalizációs feladatokhoz a könyv honlapjáról letölthető Excel Optimiz bővítményt használjuk, mely nemcsak többváltozós optimalizációs feladatok megoldására alkalmas eljárásokat tartalmaz, hanem számos, nemlineáris regresszióhoz kapcsolódó célirányos rutint is. 293
302 7.4. NEMLINEÁRIS REGRESSZIÓ 294
303 8. fejezet Idősorok elemzése 8.1. Az idősorok és tulajdonságaik Az előző fejezetekben láthattuk, milyen lehetőségeink vannak, ha olyan adatok állnak rendelkezésünkre, melyeknél lényegtelen azok i dőbeli sorrendje. De mi a helyzet akkor, ha egy esemény időbeli lefolyását vagy az időben folyamatosan változó értékek sorozatát szeretnénk elemezni? Hogyan lehetséges az ilyen sorozatokat egymással - összehasonlítani? Az előzőekben megismertek itt nem, vagy csak korlátozott mértékben alkalmazhatóak. Ezért ebben a fejezetben megismerkedünk az idősorelemzéssel, az adatbányászat azon ágával, amely figyelembe veszi ezt az időbeli sorrendiséget. Mikor találkozhatunk idősorokkal? A mindennapi életben gyakrabban, mint gondolnánk. Bármilyen folyamat, amelynek értékeit az idő függvényében rögzíthetjük, egy idősor. Így idősor a kertünkre egy év alatt havonta lehulló eső mennyisége, a kedvenc csapatunk tabellán elfoglalt helyezése a bajnokság során, de még a macskánk által egy hónap alatt naponta alvással töltött vélhetően nem kevés órák száma is. Az idősorok tehát olyan adathalmazok, ahol az adatok értéke mellett azok időbelisége is fontos információt hordoz, és az adatok sorrendje egymással nem felcserélhető. S bár házi kedvencünk megfelelő éjjeli nyugalma is roppant fontos, de nem ez az elsődleges terület, ahol az idősorok fontos szerepet játszanak. A gazdasági, társadalmi folyamatok jelentős részét az idő függvényében vizsgáljuk. Elég, ha fellapozunk egy újságot, és máris tőzsdei árfolyamok, eladási vagy népességmozgási adatok idősorainak grafikonjaival találkozhatunk. Ha ismerjük a megfelelő módszereket, számos hasznos információt nyerhetünk ki idősorainkból. Képesek leszünk megbecsülni azok jövőbeli értékét, és összehasonlításukkal új ismereteket szerezhetünk. 295
304 8.1. AZ IDŐSOROK ÉS TULAJDONSÁGAIK Az idősorok számítógépre vitele Már tudjuk, hogy mik is azok az idősorok, de ahhoz, hogy hatékonyan tudjunk velük dolgozni, számítógépre kell vinnünk az adatokat, azaz bizonyos általában egyenlő időközönként mintát kell venni az idősorból, és ezt rögzíteni. Ez a mintavétel azonban nem minden idősornál értelmezhető. Egy olyan folytonosan változó értéknél, mint Magyarország lélekszáma, a mintavétel fogalma egyértelmű, de mi a helyzet az olyan eseményekkel, amelyek esetében egy adott időpillanatot kiragadni értelmetlen? Nem mondhatjuk meg, mennyi DVD lejátszót vásároltak Magyarországon augusztus 2-án 10 óra 35 perc 10 másodperckor. Ehelyett az ilyen esetekben időszakokra (pl. hónapok, évek) állapítjuk meg az eladott mennyiséget 1. Mindez lényegi különbségnek tűnik, de az elemzéseink szempontjából nem teszünk különbséget aközött, hogy idősorunk értékeit időpontokra vagy időszakokra vonatkoztatjuk. Mindkét esetben az alábbi alakban fog idősorunk a rendelkezésünkre állni: y = [y 1, y 2, y 3,..., y n ], (8.1) ahol y i az i. időponthoz vagy időszakhoz tartozó érték, y pedig a mintavett időpontok, időszakok rendezett halmazát, azaz magát az idősort jelöli. Maguk a megfigyelt idősorok felvehetnek diszkrét értéket (kedvenc csapatunk tabellán elfoglalt helyezése), de az is lehetséges, hogy a megfigyelt érték időpillanatról időpillanatra más és más (a levegő CO 2 tartalma). Emellett a lehetséges és választásra érdemes megfigyelési időpontok száma is lehet diszkrét érték, valamint tetszőleges időpont. Előbbire példa csapatunk szereplése, hiszen ilyenkor csak minden forduló után vagy ritkábban érdemes rögzíteni, hogyan áll csapatunk. Azaz az idősor maximum annyi elemből fog állni, ahány fordulós a bajnokság. Azonban a levegő CO 2 tartalmát bármikor mérhetjük, és az, hogy ezt mikor tesszük, befolyásolja a számítógépre vitt idősor alakját. Fontos döntés, hogy milyen sűrűn veszünk mintát az idősorból (mekkora időszakokra bontjuk fel) és az így nyert értéket milyen pontosággal tároljuk. Nyilván azt szeretnénk, ha a digitalizált idősor minél pontosabban leírná a megfigyeltet, de túl sűrű mintavétellel (túl rövid időszakok használatával) hatalmas tárolókapacitásra lesz szükség valamint a további feldolgozás is lassúvá válik az egy idősorban tárolt rengeteg érték miatt, míg a túl ritka mintavételezés (túl hosszú időszakok) esetén félő, hogy idősorunkat nem írják le helyesen a mintavételezett adatok, eltűnnek az idősorban meglévő finom mozgások. Általános tanács nincs az időszakok hosszának megválasztásával kapcsolatban, ezt mindig nekünk kell meghatározni a feladat függvényében. Mintavételezés esetén azon- 1 Az angol terminológiában a bármely időpontban értelmezhető idősort stock (állomány), még a csak időszakokra értelmezhető idősort flow (folyam) típusúnak nevezik. 296
305 8. FEJEZET: IDŐSOROK ELEMZÉSE 8.1. ábra. Ugyanazon EKG jel 1000 Hz-el és 10 Hz-el mintavételezett idősora ban, amikor olyan idősort digitalizálunk, amikor tudjuk, milyen maximális frekvenciájú jelet kell majd rögzítenünk, és a torzítatlanság is fontos, a mintavételezési frekvenciát az idősor maximális frekvenciájánál legalább kétszer nagyobbnak kell választani [134]. Az 8.1. ábrán láthatjuk, mi történik, ha nem tartjuk be ezt a tételt. A megfigyelt érték pontosságának növelése általában csak tárhelyet igényel, így itt csak ezt kell mérlegelni. Eddigi példáinknál maradva a helyezés számát nyilván 16 bites egészként érdemes tárolni, de a levegő CO 2 tartalmának tárolásánál már érdemes elgondolkodni a 32 bites lebegőpontos ábrázoláson Egyéb tulajdonságok Eddig, ha idősorról beszéltünk, a jelenségre gondoltunk, amit rögzíteni szeretnénk számítógépünkön. A továbbiakban, az egyszerűség kedvéért, az idősor megnevezéssel a már számítógépre felvitt diszkrét értékek sorozatát illetjük. Ha magára a jelenségre szeretnénk hivatkozni, akkor az eredeti idősor kifejezést fogjuk használni. Már említettük, hogy nem teszünk különbséget aközött sem, hogy idősoraink adott időpontokban veszik fel értékeiket, vagy egy-egy időszakra vonatkoztatjuk idősorunk értékeit. A fejezetben megemlített módszerek mindkét esetben alkalmazhatóak. Így, ha nem egy konkrét példáról van szó, a két kifejezést szinonimaként kezeljük. Ezenkívül élnünk kell még egy jelentős egyszerűsítéssel: A vizsgált eseményeket számos esetben nem írhatjuk le tökéletesen egyetlen változó megfigyelésével, és nem készíthetünk minden esetben pontos jóslatokat a folyamat jövőbeli irányára vonatkozóan, ha csupán egyetlen tényezőt veszünk figyelembe. Tételezzük fel, hogy tulajdonrészt szeretnénk szerezni egy cégben. Ehhez szükséges tudnunk, milyen eredményes a cég gazdálkodása. Egyértelműnek tűnik, hogy azt vizsgáljuk, hogyan alakul a cég profitja. (Ez lesz az egyváltozós idősorunk.) Azonban ez az egy adat nem ad teljes képet a kiszemelt cég gazdálkodásáról. Lényeges emel- 297
306 8.2. IDŐSOROK JELLEMZÉSE EGYSZERŰ MUTATÓKKAL lett tudnunk azt is, hogy a profit milyen tételekből áll az egyes időszakokban, látnunk kell más hasonló profilú cégek profitjának alakulását, tisztában kell lennünk a banki kamatok alakulásával stb. Az ilyen események minél teljesebb leírásával foglalkozik a többváltozós idősoranalízis, amellyel nem foglalkozunk fejezetünk rövidsége, valamint a többváltozós idősoranalízis kiterjedtsége miatt. A fejezet további részeiben elsőként megnézzük, milyen összetevőkre bontható idősorunk, és ezen összetevők segítségével hogyan jósolhatunk a jövőre vonatkozóan. Ezután megvizsgáljuk, mi a helyzet akkor, ha több idősort szeretnénk összehasonlítani, és ehhez idősorunkból különböző zavaró tényezőket kell kiszűrni. Megtanuljuk, hogyan hasonlíthatunk össze olyan idősorokat, melyeknek még a hossza sem egyezik meg. Végül megnézzük, milyen technikák segítségével lehet meggyorsítani az idősor adatbázisban való keresését. Az alábbiakban ismertetésre kerülő módszerek hatékonyak és jól használhatóak, de legalább ilyen fontos, hogy ezen módszereket akkor használjuk, amikor azok ténylegesen a számunkra szükséges és hasznos választ adják meg. Az idősorelemzésben nincs olyan módszer, mely minden esetben egyértelműen a legpontosabb megoldást szolgáltatja a legkisebb erőforrásigénnyel. Ez különösen igaz az egyedi idősorok elemzésének módszereire. Ezért minden egyes módszer esetén azon túl, hogy egyszerű gyakorlati példán keresztül is megnézzük a megvalósítását a való életből vett példákat is megemlítünk, hogy lássuk, mely esetekben alkalmazhatóak sikerrel, és mely esetekben vezethet téves következtetésre a használatuk. I. Egyedi idősorok analízise 8.2. Idősorok jellemzése egyszerű mutatókkal Az előbbiekben említettük, hogy fontos, hogy mindig a megfelelő módszert használjuk. Ha idősorainkból csupán néhány egyszerű információt szeretnénk kinyerni, ezek az alkalmas módszerek elég egyszerűek is lehetnek. Amikor egyetlen idősort elemzünk, célunk általában az, hogy az idősor jövőbeli értékeit minél jobban meg tudjuk becsülni. Most olyan speciális esetekről lesz szó, melyeknél idősoraink egy függvénytípus által jól leírható alakban állnak rendelkezésünkre, és mi ezt a függvényt egyszerű módszerekkel meg is tudjuk határozni (pl. a 7. fejezetben ismertetett regresszióval). Az első példánk olyan idősorokkal foglalkozik, melyekben minden időszakban azonos növekedést figyelhetünk meg. Az ilyen idősorok jól közelítenek egy lineáris függvényt, amely felírható az alábbi alakban: 298 y = a x + b, (8.2)
307 8. FEJEZET: IDŐSOROK ELEMZÉSE ahol a a függvény meredeksége, b az értéktengely menti eltolás mértéke. Egy jövőbeli időpontot behelyettesítve a függvénybe, már el is készítettük előrejelzésünket. Amennyiben még a lineáris regresszió eszköztárát sem kívánjuk alkalmazni, az a és b paraméter meghatározása roppant egyszerű: b értéke az idősor első eleme, a meredekség pedig: a = y n y 1 n 1, (8.3) ahol n az idősorunk hossza Példa. Példa lineáris előrejelzésre A magyarországi egyetemi szakokra 1990 és 2004 között felvett diákok létszámát mutatja a 8.2. ábra. Látható, hogy a hallgatói létszám jól közelít egy lineáris függvényt. Ahhoz, hogy meg tudjuk becsülni, hány embert fognak felvenni 2005-ben az egyetemekre, nincs más dolgunk, mint meghatározni a két paraméter értékét: a = = 6476,5 b = A kiszámolt paraméterek segítségével meghatározott lineáris közelítő függvényt az alábbi ábrán pontozott vonal jelzi. Ha ezt meghosszabbítjuk, megkaphatjuk a keresett jövőbeli értéket ben, a várhatóan felvett diákok száma tehát a következő: 6476, = A második esetben olyan idősorokat vizsgálunk, melyeknél feltételezzük, hogy a növekedésnek nem a szám szerinti értéke az állandó, hanem annak mértéke. Az ilyen idősorokat közelítő függvények alakja a következő: y = a b x, (8.4) ahol a kezdeti érték, b pedig az időszakonkénti százalékos növekedés plusz egy. A két paraméter közül tehát a értékét már meg is kaptuk, b pedig a következőképpen számítható: b = n 1 yn y 1 (8.5) 299
308 8.2. IDŐSOROK JELLEMZÉSE EGYSZERŰ MUTATÓKKAL felvett diákok száma lineáris közelítés / / / / ábra. Felvett diákok száma, és az egyszerű mutatók segítségével kiszámolt lineáris közelítő függvény 400 árindex 1990 hez viszonyítva exponenciális közelítés ábra. A fogyasztói árindex értéke 1990-hez viszonyítva 300
309 8. FEJEZET: IDŐSOROK ELEMZÉSE 8.2. Példa. Példa exponenciális előrejelzésre A rendszerváltás után az infláció régen nem látott mértékben emelkedett. Ábrázolva, hogy az adott évben átlagosan hány forintot kellett azért a termékért fizetni, amit ben 100 forintért megkaptunk, egy olyan vonalvezetésű görbét kapunk, mely egy kicsi, de egynél nagyobb pozitív együtthatójú exponenciális függvényre emlékeztet. Így az exponenciális közelítő függvényt határozzuk meg: b = = 1,24 A közelítő függvényt most is pontozott vonallal ábrázoltuk. A képletünk szerint tehát az infláció átlagos mértéke 1990 és 1997 között 24% volt, azaz ilyen mértékű inflációt prognosztizálnánk 1998-ra is. (A valóságban az éves infláció 1998-ban 18%-os volt.) 8.3. Az idősorok dekompozíciója Az előző részben láthattuk, hogy egyes idősorokat képesek vagyunk hatékonyan jellemezni néhány paraméterrel. A valós életben sajnos nem túl gyakori, hogy ilyen idősorokkal találkozunk, ezért most egy olyan általánosan elfogadott modellt ismerünk meg, mellyel képesek leszünk bármilyen idősort komponenseire bontva leírni, és ezen leírás alapján hosszú távú előrejelzést készíteni. Azt a modellt, mely ezt lehetővé teszi, dekompozíciós idősormodellnek nevezzük. A modell az idősorokat négy összetevőre bontja: Hosszú távú mozgás, más néven trendmozgás. Leírja a vizsgált idősor mozgásának általános irányát egy hosszú időszakon belül. Szezonális mozgások, melyek az idősor naptári időszakok szerinti rendszeres mozgását reprezentálják. Ilyen mozgás a jégkrémek eladásának nyári megugrása, a karácsony előtti napokban a műszaki cikkek forgalmának hirtelen növekedése. A ciklikus mozgások nem kötődnek naptári napokhoz, de az idősor trend körüli ingadozását idézik elő. A ciklikus mozgások jellemzően hosszú távú, éveken átnyúló mozgások, s nem szükséges az sem, hogy minden időintervallumban azonos mintát kövessenek. Ez utóbbi esetben aperiodikus ciklikus mozgásról, míg azonos mintázat esetén periodikus ciklikus mozgásról beszélünk. Végezetül a véletlen mozgások írják le mindazon véletlen eseményeket, amelyeket az előző mozgások nem képesek megmagyarázni. Ide tartoznak a nem szezonálisan vagy ciklikusan jelentkező természeti katasztrófák, a napjainkban 301
310 8.3. AZ IDŐSOROK DEKOMPOZÍCIÓJA sajnos egyre gyakoribb terrortámadások, de akár az időjárás nem várt, hirtelen megváltozása is. Idősorunkat az összetevőket megismerve most már felírhatjuk az alábbi alakban: y = t + s + c + i, (8.6) ahol az angol elnevezés kezdőbetűi alapján t jelöli a trendmozgásokat, s a szezonális mozgásokat, c a ciklikus mozgásokat, i pedig a véletlen mozgásokat. Azaz egyetlen idősorunkat 4 tartalmilag egymástól független idősorra bontottunk. Az Olvasóban felmerülhet, hogy miért a négy komponens összegeként írtuk fel az idősorunkat, hiszen az y = t s c i (8.7) alak is megfelelő felírási mód lehet. És valóban: az, hogy ezen két felbontás közül melyiket használjuk, az elemezni kívánt idősortól függ, mégpedig annak szezonális mozgásokat leíró komponensétől. Ha feltételezzük, hogy a szezonális hatás okozta mennyiségi eltérések nagyjából állandó értékűek, akkor az additív modellt használjuk. Ellenben a multiplikatív modellt részesítjük előnyben, ha a szezonális hatás mértéke arányosan függ attól is, hogy mekkora az idősor e hatás nélküli értéke. Azaz a multiplikatív modell esetén feltesszük, hogy ha a szezonális hatás nélküli érték kicsi, akkor a szezonális hatás mértéke is kicsi lesz, viszont ha a szezonális hatás nélküli érték nagy, akkor a szezonális hatás mértéke is nagyobb lesz. Természetesen azt még nem tudjuk megmondani az elemzés előtt, hogy a szezonális hatás mértéke függ-e az idősor szezonális hatás nélküli értékétől, de az adott szakterületen szerzett információkból tudunk erre következtetni. A továbbiakban megnézzük, hogyan határozhatjuk meg egyetlen kivételével az egyes összetevőket. Ez a kivétel a véletlen mozgásokat leíró komponens idősora lesz. Mivel nem tudjuk meghatározni, hogy az idősorunk adott időpontjában mennyi ennek a szerepe, ezért ennek a komponensnek a hatását igyekszünk a lehető legteljesebb mértékben kiszűrni az analízisből. Elemzéseink elején feltesszük, hogy az additív modell esetén i értéke minden egyes időpontban 0, multiplikatív modell esetén pedig 1. Jelentős egyszerűsítésnek tűnik, de a legtöbb esetben a véletlen nem befolyásolja döntő mértékben egy idősor alakulását, sőt a jelentősen befolyásoló, először véletlennek gondolt eseményről az idő múlásával kiderülhet, hogy egy hosszú távú ciklus része, mellyel legközelebb már tudunk számolni Trendelemzés - tervezzünk hosszú távra A trendelemzés során az adott idősor általános irányát próbáljuk meghatározni. Ezt az általános irányt nevezzük az idősor trendjének, míg a trend ábrázolását trendvonalnak. A trend meghatározása alapvető a további elemzések elvégzése céljából. Ezt megismerve válik lehetővé a szezonális és ciklikus mozgások meghatározása. Emellett, mivel a 302
311 8. FEJEZET: IDŐSOROK ELEMZÉSE trendvonalunk csak az általános irányt tartalmazza, így azt meghosszabbítva feltehetjük, hogy az idősorunk jövőbeli értékei is a trendvonal közelében helyezkednek el. Azért csak a közelében, mert a modell szerint a trendet ki kell egészítenünk a jövőbeli időpontokra várható szezonális, valamint ciklikus mozgások értékeivel a pontos becsléshez. A trend dekompozíciós modellben betöltött kiemelt szerepe miatt a mindennapokban a dekompozíciós modellezés helyett gyakran a trendelemzés kifejezést használjuk. Mi a továbbiakban a trendelemzésen csak magának a t komponensnek a meghatározását értjük. A trend meghatározásával egyrészt kisimítjuk az idősorunkat, másrészt jósolhatunk a jövőre vonatkozóan. Ha például ismerjük az eladásaink adatait néhány évre visszamenőleg termékekre lebontva, abból már tudunk következtetni, mennyi terméket lesz szükséges rendelnünk az egyes jövőbeli időpontokban. De ugyanígy vizsgálhatjuk az egyes termékek előállításához szükséges nyersanyagok mennyiségét, így számításaink alapján megtudjuk, mikor mennyit kell ezekből raktározni. Mivel az elemzésből a véletlent megpróbáljuk kizárni, ezért olyan esetekben, amikor az jelentősen befolyásolja az idősorunk alakulását, a dekompozíciós modellezés már kevésbé használható módszer. Gondoljunk csak az olaj árának változására. Hiába, hogy tudtuk akár évtizedekre visszamenőleg is mennyibe került eddig egy hordó kőolaj, ez nem jelenti azt, hogy meg tudjuk mondani, mennyi lesz ugyanezen minőségű kőolaj ára egy év múlva. Egy készlet kimerülésének híre, az amerikai tartalékok ingadozása, új mezők feltárása, egy Közel-Keleten zajló háború mind-mind jelentős befolyással van rá. Így ebben az esetben a jóslataink eredményessége eléggé kétséges. Az Olvasóban felmerülhet, miért is van számításokra szükség a trendgörbe megrajzolásához, hiszen egy jól irányzott tollvonással az kézzel is megrajzolható, vagy akár szemmel is jól látható, merre tart idősorunk. Ez igaz, azonban sok adat esetén már átláthatatlan az idősorunk, elveszhetnek belőle részletek, valamint a trendvonal meghatározásának könnyű számítógépes implementálhatósága miatt még kis tételek esetén is érdemes a számításokat elvégeztetni a számítógéppel. A trendvonal meghatározásának háromféle módját ismerjük meg. Az első a már említett tollvonás, más néven a szabad kéz módszere. Ez azonban amellett, hogy pontatlan, még lassú is. Ki szeretne akár csak 10 diagramra is egérrel berajzolgatni ilyen vonalakat? Nem is beszélve arról, hogy az így berajzolt vonalak tényleges adattá konvertálása is külön feladat. Az analitikus módszer A második lehetséges megoldás a címben említett analitikus módszer. Ekkor egy függvénnyel megpróbáljuk idősorunkat a lehető legpontosabban közelíteni. Természetesen ahhoz, hogy minél jobban illeszkedő függvényt találjunk, ismernünk kell idősorunk alakját. A Regressziós technikák című fejezetünkben láttuk, ahogyan minden pontot 303
312 8.3. AZ IDŐSOROK DEKOMPOZÍCIÓJA egyformán figyelembe véve a legkisebb négyzetek módszerét felhasználva megkerestük a legjobban illeszkedő lineáris függvényt (többváltozós) lineáris regresszió segítségével, és bemutattuk az egyéb, lineáris alakra visszavezethető így lineáris regresszióval számítható függvénytípusokat. Egyváltozós idősoraink esetén mindössze annyi a dolgunk, hogy a lineáris regressziónál bemutatott számításokat egyetlen változó esetére végezzük el. A mozgóátlagok Mi a helyzet akkor, ha nem tudjuk megmondani, milyen függvényt kellene az idősorunkra illeszteni? Előfordulhat, hogy olyan ciklusok szerepelnek az idősorunkban, melyek eltakarják előlünk a trendet. Az sem ritka, hogy a véletlen események hiszen csak feltételeztük, hogy nem szólnak bele idősorunk alakulásába annyira tüskéssé teszik idősorunkat, hogy ez hiúsítja meg az analitikus trendszámítást. Ekkor lép színre a harmadik megoldás, a mozgóátlag használata. Ez mérsékeli idősorunkban a véletlen és a rövid távú komponensek hatását, így lehetővé teszi, hogy az általa megadott idősorra már analitikus módszerrel is tudjunk függvényt illeszteni. A mozgóátlagot bármelyik táblázatkezelő programban könnyedén kiszámíthatjuk, sőt gyakran maga a táblázatkezelő is képes azt mindenféle számítás nélkül ábrázolni egy idősor grafikonján. Az idősorunk továbbra is diszkrét értékek sorozataként adott: y = [y 1,y 2,y 3,...,y n ]. A mozgóátlag számítása során egy k darab értéket befogadó ablakot csúsztatunk az idősorunkon, és az ablak minden egyes helyzetében az ablakban szereplő értékek számtani átlagát vesszük. Az átlag értékét ezután az ablak középső eleméhez rendeljük. Így az idősorunk első és utolsó néhány eleméhez nem tudunk trendértéket rendelni. Az ebből adódó problémákról a későbbiekben még szólunk. Trendvonalunk elemei tehát a következők lesznek: y 1 + y y k, k y 2 + y y k+1, k y 3 + y y k+2,... (8.8) k Mivel a trendvonal minden egyes pontjának kiszámításához k darab érték átlagát vettük, ezért ezt k-ad rendű mozgóátlagnak nevezzük. Ha súlyozott számtani átlagot használunk, akkor k-ad rendű súlyozott mozgóátlagról beszélünk. Hogy mindez világosabbá váljon, nézzük a következő példát: 8.3. Példa. Adott egy 10 elemből álló idősorunk, melynek szeretnénk meghatározni a trendjét. Ezt mindjárt háromféle módon is megtesszük. Kiszámítjuk a 3-ad és 4-ed rendű mozgóátlagot, valamint egy [1, 3, 1] súlyokkal rendelkező 3-ad rendű súlyozott mozgóátlagot. A rendelkezésre álló idősor a következő: 304
313 8. FEJEZET: IDŐSOROK ELEMZÉSE y = [3, 5, 1, 0, 8, 10, 8, 2, 1, 3] A 3-ad rendű mozgóátlag értékeit az előbb leírtak alapján a következő számításokból kaphatjuk: = 3; = 2; = 3;... Az [1, 3, 1] súlyokkal súlyozott 3-ad rendű mozgóátlag esetén az előbbihez hasonlóan számolunk, de figyelembe vesszük a súlyokat is: = 3,8; = 1,6; = 1,8;... A negyed rendű mint minden páros rendű mozgóátlag számítása kicsit bonyolultabb. Nézzük meg, mi történik akkor, ha az első három elem számtani átlagát számítjuk. A második időpontban kapjuk meg a trend értékét, hiszen ez a három elem középső eleme. Ugyanígy ha a 4.,5.,6. értéknél jár a mozgóátlagunk, akkor az itt kapott számtani átlagot az 5. időpontnál rögzítjük. Az első négy időpont esetén viszont nincs középső elem, hiszen az idősorunkban nincs 2, 5. időpont. Azaz hiába számoljuk ki az átlagokat, azok nem az idősorunk egy-egy mintavételezési pontjában veszik fel az értékeiket, hanem valahol ezen időpillanatok között. A problémát úgy oldhatjuk meg, ha kiszámítjuk a negyedrendű mozgóátlagot, majd két egymást követő érték számtani átlagát vesszük. Az így kapott érték már idősorunk egyik mintavételezési időpontjához tartozik. Az első két elem esetén a következő számítást kapjuk: = 2,875 Ha figyelmesen megnézzük, láthatjuk, hogy a tört átírható az alábbi alakba: 0, ,5 8 4 = 2,875 Vagyis jelen esetben egy speciálisan súlyozott ötödrendű mozgóátlagot számolunk. Ezt a fajta súlyozott számtani átlagot, melyben az első és utolsó tag 0,5-es, a többi pedig egyszeres súllyal szerepel, kronologikus átlagnak nevezzük. Ha minden számítást elvégzünk, a következő eredményeket kapjuk: 305
314 8.3. AZ IDŐSOROK DEKOMPOZÍCIÓJA Idősor elemei: ad rendű mozgóátlag értékei: [1, 3, 1] súlyokkal súlyozott 3-ad rendű mozgóátlag értékei: 3,8 1,6 1,8 6,8 8,8 6 2,6 1,8 4-ed rendű mozgóátlag értékei: 2,875 4,125 5,375 6,25 5,625 4,375 Általánosan is felírva a k-ad rendű mozgóátlag elemeit a következőt kapjuk, ha m páratlan: y i = y i j + y i j y i y i+ j 1 + y i+ j, (8.9) k ahol k = 2 j + 1 és i = ( j + 1; j + 2;...;n j). Ha k páros: y i = 0,5y i j + y i j y i y i+ j 1 + 0,5y i+ j, (8.10) k ahol k = 2 j és i = ( j + 1; j + 2;...;n j). Láthatjuk, hogy idősorunk első és utolsó j eleméhez a mozgóátlag már nem rendel értéket. Ezt a későbbi analíziseink során figyelembe kell venni. Látszatmegoldásként behelyettesíthetjük az idősor elemeit, vagy egyre csökkenő rendű mozgóátlagot számolhatunk. Ha azonban idősorunk újabb adatokkal bővül, akkor a mozgóátlagot a teljes idősorra újra ki kell számolnunk. Nem tehetjük meg, hogy csak az új adatokra számoljuk ki a mozgóátlagot, mert ebben az esetben a régi és az új mozgóátlag összeillesztése után új, egyébként nem létező ciklusok keletkezhetnek. Mozgóátlagot tehát már tudunk számolni, de megválaszolatlan az a kérdés, hogy hányad rendű az ideális? Mint az idősorelemzés során sok kérdésre, erre sem lehet általános érvényű szabályt találni. Logikusnak tűnhet a feltételezés, hogy minél nagyobb rendű a mozgóátlag, annál jobban simítja idősorunkat. Nos, ez nem teljesül minden esetben. Az 8.4. ábrán láthatjuk, hogy a 3-ad rendű mozgóátlag nem csökkenti kellő mértékben az idősorunk kilengéseit. Ellenben a 4-ed rendű szinte teljesen kiegyenesíti azt. Ez még megfelel a várakozásainknak, de ha megnézzük az 5-öd rendű mozgóátlag ábráját, valami nem várt dolgot tapasztalunk. A várt egyenes helyett egy mindenféle ciklussal tarkított vonallal kell szembesülnünk. Ennek oka, hogy idősorunk tartalmaz szezonális mozgásokat, a túl magas rendű mozgóátlag pedig összefog két egyforma szezonális súllyal rendelkező értéket, így idézve elő a hullámzást. Tehát ha úgy gondoljuk, hogy 306
315 8. FEJEZET: IDŐSOROK ELEMZÉSE ábra. 3-ad, 4-ed és 5-öd rendű mozgóátlaggal simított 12 elemű idősor van szezonális mozgás idősorunkban, akkor a mozgóátlag rendjének válasszuk a szezonális mozgás egy periódusának hosszát. Azaz az ábrán látható idősorról feltehetjük, hogy tartalmaz szezonális mozgást, melynek periódushossza Szezonális mozgások - télen kevesebb jégkrém fogy A trend meghatározásával megtudtuk, hogy mi az idősorunk jellemző iránya, de ezzel egyúttal ki is simítottuk azt. Ha a jövőre vonatkozóan szeretnénk előrejelzést készíteni, hiába hosszabbítjuk meg a trendvonalat, az csak egy várható átlagértéket fog megadni. A pontosabb előrejelzés számára valahogyan bele kell csempésznünk az idősorunk trendvonal körüli ingadozását a jövőbeli értékekbe. A dekompozíciós modellezés során ezen ingadozásokat a véletlen kizárása után két komponens eredőjeként kapjuk. Az egyik az éves vagy éven belüli periódusú rendszeres ingadozásokat írja le, ezek a szezonális mozgások. Ezzel szemben a ciklikus mozgások komponense a jellemzően több évre átnyúló, sokszor aperiodikus mozgásokat írja le. A rövid és középtávú elemzések során használt idősoraink legfeljebb néhány évet ölelnek fel, így itt a szezonális komponens meghatározása az egyedüli feladat, ha az ingadozásainkat jellemezni szeretnénk. Ezért modellünket tovább egyszerűsítve a ciklikus mozgások komponensét is elhagyjuk. Bár a szezonális jelző miatt elsősorban az évszakok közötti eltérések leírását feltételezzük ezekről a mozgásokról, ez korántsem így igaz. Minden olyan mozgást szezonális mozgásnak tekintünk idősorunkban, amely periódusa naptári időszakokhoz köthető, és amplitúdója közel azonos vagy a trend aktuális értékétől függően változik periódusonként. Ez a periódus lehet egy nap, egy hét vagy egy év is. Így szezonális mozgás a hőmérséklet napi ingadozása, de ugyanígy a naponta tévénézéssel töltött idő heti megoszlása is. A szezonális komponens meghatározása A dekompozíciós modellezés bevezetőjében említettük, hogy a szezonális mozgások jelentős hatással vannak arra, hogy idősorunkat additív vagy multiplikatív formában 307
316 8.3. AZ IDŐSOROK DEKOMPOZÍCIÓJA írjuk fel a dekompozíció során. Akkor annyiban maradtunk, hogy ez attól függ, hogy a szezonális hatás okozta mennyiségi eltérések közelítőleg állandó értékűek, vagy pedig a szezonális hatás mértéke arányosan változik aszerint, hogy mekkora az idősor e hatás nélküli értéke. Most megvizsgáljuk, miért is függ ettől a modell képlete. Az additív modell esetén az idősor négy komponensét összeg alakban írtuk fel. A véletlen után most a ciklikus komponenst is kizártuk, valamint tudjuk azt is, hogy idősorunkban a szezonális mozgásnak több p hosszúságú periódusa is megtalálható. Feltételezzük, hogy idősorunk csak egész periódust tartalmaz, azaz a periódusok száma (n/p, ahol n az idősor hossza) egész szám. Az idősorunk és a trend i. időpontját most már jelölhetjük az alapján is, hogy a szezonális mozgás i. időpontja melyik periódus melyik elemének felel meg. Az idősor i. eleme e jelölési módot használva az alábbi alakban írható fel: y i = y jk = t jk + s jk, j = 1,..., n, k = 1,..., p (8.11) p ahol t jk a trend, még s jk a szezonális ingadozás értéke a j. periódus k. pontjában. Mivel feltettük, hogy a szezonális eltérések minden periódus azonos pontjában hasonlóak, így ahhoz, hogy megtudjuk, mennyi a szezonális eltérés átlagos értéke egy periódus k. pontjában (s k ), nincs más dolgunk, mint venni az összes periódus k. pontjainak számtani átlagát: s k = n/p j=1 y jk t jk, k = 1,..., p (8.12) n/p Az így kapott szezonális eltéréseket nyers szezonális eltéréseknek nevezzük. Azért nevezzük nyersnek, mert a perióduson belüli eltérések nem egyenlítik ki egymást. Ahhoz, hogy az eltérések összege 0 legyen, a nyers értékeket korrigálnunk kell a saját számtani átlagukkal, azaz korrigált szezonális eltéréseket számítunk: s k = s k p i=1 s i, k = 1,..., p (8.13) p 8.4. Példa. Példánkban a magyarországi mobilhálózatokból kiinduló mobilhívások éven belüli szezonalitását fogjuk megvizsgálni. Az alábbi táblázat az egyes negyedévekben indított hívások számát tartalmazza milliós egységben mérve: 308
317 8. FEJEZET: IDŐSOROK ELEMZÉSE Év Negyedév I. II. III. IV Az előbbiek szerint ahhoz, hogy a szezonális mozgásokat meghatározzuk, első lépésként ki kell számolnunk idősorunk trendjét. Ezt legegyszerűbben a 4-ed rendű mozgóátlag segítségével tehetjük meg, hiszen a periódusunk hossza egy év, azaz négy időszak. A simított idősorunk elejéről és végéről természetesen hiányozni fog két-két elem: Év Negyedév I. II. III. IV , , , , , , , , , , 875 Következő feladatunk kivonni a mozgóátlag segítségével kapott trendértékeket az eredeti idősor megfelelő értékeiből, majd venni az egyes negyedévekre vonatkozó számtani átlagot. Ezzel megkapjuk az Átlag sorában látható nyers szezonális eltérések értékét: Év Negyedév I. II. III. IV , , , 5 46, , , , , , , 125 Átlag 87, , ,042 4, 5 A példa befejezéséhez szerencsére már nem kell több táblázatot böngésznünk, mindössze annyi a dolgunk, hogy a megkapott nyers szezonális értékeket korrigáljuk az 8.13 egyenlet szerint. Ehhez elsőként ki kell számolnunk, mekkora korrekcióra van szükségünk: 4 i=1 s i 87, , , ,5 = = 1, Innen már csak egy kivonás, és megkapjuk a végeredményt: s 1 = 87,292 1,042 = 88,
318 8.3. AZ IDŐSOROK DEKOMPOZÍCIÓJA A többi időszakra vonatkozó korrigált eltérések: s 2 = 37,875 s 3 = 47 s 4 = 3,458 Multiplikatív modell esetén az idősor egy eleme a trend és a szezonális mozgás adott időpontbeli elemének a szorzata. Az additív modell jelöléseit felhasználva írhatjuk: y i = y jk = t jk s jk, j = 1,..., n p, k = 1,..., p Azt mondtuk, azért használjuk ezt a modellt, mert itt nem a szezonális eltérés abszolút értéke lesz periódusonként hasonló, hanem a szezonális eltérés és a trend aránya. Ezt az arányt az eredeti idősor és trend hányadosa adja meg. Ha a periódusokon belüli azonos indexű elemek átlagát vesszük, megkapjuk, hogy átlagosan hányszorosan tér el egy periódus k. eleme a trendtől: s k = n/p j=1 y jk/t jk, k = 1,..., p (8.14) n/p Az itt kapott s k -val jelölt értéket már nem nyers szezonális eltérésnek nevezzük, hanem nyers szezonális indexnek. Itt is korrigálhatjuk az indexek eltéréseit úgy, hogy a szezonális indexek átlagos értéke egy perióduson belül 1 legyen. Ehhez nem kivonjuk a nyers szezonális indexek átlagát, hanem osztunk vele, így kapjuk meg a korrigált szezonális indexet: s k = s k p i=1 s, k = 1,..., p (8.15) i/p 8.5. Példa. Most is a mobiltelefonos példánk adatait fogjuk használni, ezúttal azonban azt feltételezzük, hogy a szezonális eltérések értéke a trend arányában nő. A negyedrendű mozgóátlagot már kiszámoltuk, azonban most az indexek kiszámolásához ezeket az értékeket nem kivonni kell idősorunk megfelelő értékeiből, hanem osztani velük. Az osztást elvégezve és az egyes negyedévek átlagát véve megkapjuk a nyers szezonális indexek értékét: 310
319 8. FEJEZET: IDŐSOROK ELEMZÉSE Év Negyedév I. II. III. IV , 078 0, , 894 1, 035 1, 041 1, , 925 1, 034 1, 019 1, , 921 1, 032 Átlag 0, 913 1, 033 1, 046 1, 003 Természetesen p i=1 s i/p értéke nem fog megegyezni az additív modell esetén számolt értékekkel: 4 i=1 s i 0, , , ,003 = = 0, Kivonás helyett osztást alkalmazva az első időszakra vonatkozó korrigált szezonális index: s 1 = 0,913 0,999 = 0,914 Ehhez hasonlóan: s 2 = 1,034 s 3 = 1,047 s 4 = 1,004 Az üzleti életben jóval ritkábban találkozunk a szezonális eltérés fogalmával, mint a szezonális indexével. Ennek oka az, hogy sokszor az állandó értékű eltéréseket is szeretik százalékos formában megadni. Szezonmentesített adatok A cím mindent elmond: alighogy kiszámoltuk a szezonális eltéréseket, indexeket máris megfosztjuk tőlük idősorainkat. Nem túl szép dolog, de olykor nagyon hasznos. A szezonmentesített adatok megmutatják, hogyan alakul az idősor értéke e mozgások nélkül. Képzeljük el, hogy megtakarított pénzünkön szeretnénk venni egy kicsiny üzletet. Egy virágüzlet és egy pékség is eladó a közelünkben, így ezek között próbálunk dönteni. Mindkét üzletnek ismerjük az év első három hónapjában elért profitját. Ezt láthatjuk a 8.5. ábra első grafikonján. A virágüzlet profitja erősen nő (folytonos vonal), míg a pékségé közel állandó (szaggatott vonal). Ha csak ez alapján választjuk ki a virágüzletet, mint leendő cégünket, nagyot hibázhatunk. Abban, amit csak dinamikus növekedésnek feltételezünk első pillantásra, valójában szerepet játszik a szezonális mozgás is. A virágüzletek forgalmában általában a pangó januári hónapot követi egy erősebb február, majd egy még jobb március. Ha nem számolnánk a szezonális mozgásokkal, azt hihetnénk, szédületes tempóban 311
320 8.3. AZ IDŐSOROK DEKOMPOZÍCIÓJA január február március január február március 8.5. ábra. Egy virágüzlet és egy pékség profitjának eredeti és szezonmentesített idősora fejlődik a virágüzlet. A valóságban ez a fejlődés sokkal inkább a februári Valentin napnak és a márciusi Nőnapnak köszönhető. Nincs más dolgunk, mint megtudni egy pékség és egy virágüzlet forgalmának első három hónapra vonatkozó szezonális indexének értékét 2, és korrigálni a virágüzlet, valamint a pékség profitját. Az így kapott korrigált értékeket láthatjuk az ábra második grafikonján. A szezonális indexeket megtudhatjuk más hasonló profilú cégek forgalmi adataiból, vagy az adott szakma forrásaiból. Most, hogy megtudtuk miért is hasznos a szezonális mozgások eltávolítása, ideje megnéznünk, hogyan is tehetjük meg ezt. Egyszerűbben, mint gondolnánk. Mindössze annyi a dolgunk, hogy additív modell esetén a korrigált szezonális eltéréseket kivonjuk az idősorunkból, míg multiplikatív modell esetén idősorunk elemeit elosztjuk a megfelelő szezonális indexszel. Virágárusi karrierünk nem sikerült túl jól, de annyit mindenesetre nyertünk vele, hogy megtanultuk kiszűrni a szezonalitás hatását. Mielőtt azonban tovább mennénk, meg kell állnunk egy gondolat elejéig. Észrevehetjük, hogy az eredeti idősort korrigáltuk, vagyis annak modelljéből tüntettük el az S komponenst. Ha a 8.6. egyenletbeli idősorfelírást tekintjük, akkor most a trendet kellett volna visszakapnunk, ehelyett amit kaptunk, az az eredeti idősorhoz hasonlóan elég rendszertelennek tűnik. Ez azért van így, mert azon elgondolásunk, hogy a véletlen és a ciklikus komponens eltűnt az idősorból, nem teljesült egészen. Azaz a szezonmentesített adatok a trenden kívül még mindig tartalmaznak ciklikus és véletlen mozgásokat. Ezt fogjuk kihasználni a következőkben A ciklikus komponens meghatározása Ebben a részben olyan adatokkal fogunk foglalkozni, melyek vagy szezonmentesítettek vagy olyan hosszú az egyes mintavételek között eltelt idő, hogy nem feltételezzük 2 Élve azzal a naiv feltételezéssel, hogy egy üzlet profitja és forgalma egymással egyenesen arányos. 312
321 8. FEJEZET: IDŐSOROK ELEMZÉSE 1000 DOW JONES indexe mozgóáltag mozgóátlagra illesztett trend ábra. A DOW JONES indexében 1935 és 1968 között megfigyelhető ciklikus mozgás idősorunkról, hogy tartalmazna szezonális komponenst. A véletlennel továbbra sem tudunk érdemben foglalkozni, így a jól bevált módszer szerint azt feltételezzük, hogy nem felelős az idősorban jelentkező hullámzásokért. A mozgóátlag követi a hosszú periódusú ciklusokat, így használatával nem csak magát a trendet, hanem a trend és a ciklikus mozgások összességét kapjuk meg. Ezt felismerve az alábbi módon határozhatjuk meg idősorunk C komponensét: mozgóátlagot számolunk, majd ezen mozgóátlagra analitikus úton illesztünk egy trendfüggvényt, és az így kapott értékeket a mozgóátlag megfelelő értékeiből kivonva (multiplikatív modell esetén elosztva) megkapjuk a ciklikus mozgás értékeit (indexeit) az egyes időpontokban. A DOW JONES indexének változását tartalmazza a 8.6. ábra első diagramja 1935 és 1968 között. Ennek az idősornak a 7-ed rendű mozgóátlaggal meghatározott trendjére analitikus úton illesztettünk egy exponenciális függvényt. A második diagramon láthatjuk a két trend különbségeként kapott ciklikus mozgást. A dekompozíciós modell felírását végiggondolva más úton is eljuthatunk a megoldáshoz. A rendelkezésre álló idősorunkról feltételezzük, hogy továbbra sem tartalmaz szezonális mozgásokat, a véletlen komponensről pedig azt mondtuk, hogy nem módosítja idősorunk alakját, azaz additív esetben értéke minden pontban 0, multiplikatív esetben pedig 1. Vagyis ha idősorunkból kivonnánk annak trendjét (idősorunkat elosztanánk annak trendjével), egyből megkapnánk a ciklikus komponens értékeit. Sajnos ez a valóságban nem teljesül. Ennek oka, hogy a véletlen komponens feltételezésünk ellenére megjelenik idősorunkban. A mozgóátlag számításánál láthattuk, hogy egyszerre több érték számtani átlagát veszi, azaz képes mérsékelni a véletlen komponens hatását. Azaz ha az idősorunkból kivonjuk annak trendjét (additív esetben), majd a kapott idősornak mozgóátlag segítségével meghatározzuk a trendjét, jó eséllyel megkapjuk a ciklikus mozgásokat. 313
322 8.3. AZ IDŐSOROK DEKOMPOZÍCIÓJA A ciklikus komponens meghatározására most bemutatott kétféle számítási módszer részletes kidolgozásától az idősor hossza miatt eltekintettük, de annak bemutatására, hogy hogyan számíthatjuk ki egyszerűen számítógéppel ezen mozgás értékét, a könyv honlapján elérhető gyakorlati feladatok során sort kerítettünk Összefoglalás A dekompozíciós modellezés során abból indultunk ki, hogy idősorunkat szétbonthatjuk négy különböző idősorra. Ezek az idősorok leírják a trendet, a szezonális mozgásokat, a ciklikus mozgásokat és a véletlen mozgásokat. Ezek összegeként vagy szorzataként viszszakapjuk az elemezendő idősorunkat. A véletlen mozgásokról feltételeztük elemzésünk elején, hogy nem befolyásolják idősorunk alakját. A trend megadja az idősor általános irányát. Ezt egy függvénnyel próbáljuk leírni, így lehetővé téve azt, hogy egy távoli jövőbeni időpontra is megkapjuk a trend értékét. A trendet számíthatjuk közvetlenül az idősorunkból analitikus módszerrel, vagy ha nincs ötletünk, milyen fajta függvényt kellene a trend alapjául választani, akkor mozgóátlag használatával kisimíthatjuk idősorunkat, majd ezen kisimított idősornak az analitikus úton meghatározott trendje lesz az eredeti idősor trendje is. A mozgóátlagolás rendjét a szezonális mozgás egy periódusának választva, ki tudjuk szűrni ezen mozgásokat idősorunkból, így az idősorunk és a mozgóátlag különbsége (hányadosa) megadja az időszakonkénti szezonalitás értékét. Az egymástól periódusnyi távolságra lévő egyedi szezonális értékek átlaga adja meg a nyers szezonális eltéréseket (indexeket). Ha ezeket úgy módosítjuk, hogy egy perióduson belül a szezonális hatások kiegyenlítik egymást, megkapjuk a korrigált szezonális eltéréseket (indexeket). Ezekkel meg tudjuk adni, hogy adott perióduson belül milyen eltérés várható a trendhez képest a szezonális mozgások miatt. Ha eltávolítjuk a szezonális mozgásokat, eljuthatunk a szezonmentesített adatokig, megnézhetjük idősorunk tartalmaz-e ciklikus komponenst. Sajnos módszerünknek bár meglehetősen könnyen alkalmazható számos hibája van. Azokkal az idősorokkal, ahol a véletlen szerepe nagy, nem tud mit kezdeni. Ilyenre jó példa a már említett olajáron kívül, hogy egy részvény árának alakulását számos előre nem látható esemény is befolyásolja. Hogyan nyitott a DOW? Mennyire optimisták a befektetők? Csökkent-e kamatot a központi bank? Hogyan alakulnak az árfolyamok? Történt-e a termelést, a szállítást vagy a piacokat érintő természeti katasztrófa? Szintén hibás előrejelzést kaphatunk, ha idősorunkban a mához közelebbi adatokat nagyobb súllyal kellene figyelembe venni. A részvényáraknál maradva, hiába került két éve egy részvény négyezer forintba, az ma ugyanúgy érhet nyolcezer vagy akár tíz forintot is. De az az információ, hogy mennyi volt a részvény tegnapi záró ára, már számít valamit. A szezonális mozgásoknál csak az olyan mozgásokat tudtuk 3 A dekompozíciós modellezés Microsoft Excel táblázatkezelő program segítségével történő megvalósítására részletesen kidolgozott példákat találhatunk a könyv weboldalán. 314
323 8. FEJEZET: IDŐSOROK ELEMZÉSE pontosan becsülni, melyeknél értéke vagy állandó, vagy az idősor szezonális mozgások nélküli értékének arányában változik. Azt sem vettük figyelembe, hogy a szezonális és ciklikus mozgások sokszor nem egy, hanem több különböző szezonális mozgás eredőjeként adódnak. Ezen hiányosságokon úgy segíthetünk, ha idősorainkat más megközelítésben vizsgáljuk. Eddig, hogy meg tudjuk becsülni, milyen értékeket vehet fel idősorunk a jövőben, ismert tulajdonságú komponensekre bontottuk, a következő esetben viszont egy egészként tekintünk rá. Az alapötlet az, hogy megpróbáljuk egy olyan modellel leírni idősorunkat, amely folyamatosan figyeli saját hibáit, és ezen hibákat figyelembe véve módosítja az előrejelzését. Emellett modellünk képes a jelenhez közelebbi változásoknak nagyobb jelentőséget biztosítani, mint az időben távoliaknak. Ezen tulajdonságok jellemzik az ún. simító eljárásokat [135], melyek közül a legegyszerűbbel és annak Excel ben történő megvalósításával ismerkedhetünk meg a könyv honlapján. 315
324 8.4. IDŐSOROK TÁVOLSÁGA II. Idősorok összehasonlítása Mint fejezetünk bevezetőjében említettük, minden időben változó esemény felfogható idősorként. Eddig egyszerre egyetlen idősort elemeztünk, de ha idősorainkat öszsze tudjuk hasonlítani valamilyen módon, újabb fontos információkhoz juthatunk. Hasonló lehetőségek nyílnak meg előttünk, mintha kategorikus adatokat hasonlítanánk össze. Idősorainkat csoportokba rendezhetjük, osztályozhatjuk őket, eltéréseket kereshetünk, különböző szabályokat tárhatunk fel, vagy akár egy bizonyos mintázatot is kereshetünk idősorainkban. A lehetőségeink tárháza végtelen. Betegeink EKG adatait rögzítve meg tudjuk határozni, milyen betegséghez milyen EKG görbe tartozik, így a későbbiekben már diagnosztizálni tudjuk az adott betegséget. Klienseink telefonálási szokásait rögzítve felderíthetjük, ha valaki jogtalanul használja a vonalát. De nem csak ilyen magától értetődő esetekben használhatunk idősorokat. Ügyfeleink aláírása is felfogható egy idősorként, így azonosításuk könnyen számítógépesíthető. Bár ebben az esetben nem az idő, hanem a távolság a függő változó, de megfelelő előkészítéssel lehetővé válik a továbbiakban említésre kerülő módszerek alkalmazása. A szabályok feltárásával olyan dolgokat vehetünk észre idősorainkban, melyekkel megkönnyíthetjük tervezési, szervezési feladatainkat. Kiderülhet, hogy aki számítógépét üzletünkben alkatrészként veszi meg, az egy héten belül kérni fogja annak összeszerelését. Mindezen lehetőségek kihasználásához szükségünk van arra, hogy idősorainkat össze tudjuk hasonlítani, és meg tudjuk mondani, hogy az x idősor vajon az y vagy a z sorhoz hasonlít-e jobban. Ehhez definiálnunk kell a távolság fogalmát, melynek segítségével az idősorok közti hasonlóság már számszerűsíthető. A távolság definiálása azonban nem csak a teljes idősorok összehasonlítása során fontos. Amikor szabályokat generálunk, eltérést keresünk, akkor az idősorok egy kis részét vizsgáljuk. Az itt használt távolságok ennek ellenére ugyanazok, mint az előző esetben. Ilyenkor a lekérdezés w szélességével megegyező ablakot mozgatunk az idősorunkon, és ebben az ablakban hasonlítjuk össze idősorainkat Idősorok távolsága Az idősorok távolságának mérésére a fejezetben ismertetett távolságmértékek alkalmasak. Az Olvasóban felmerülhet, hogy mégis mi a különbség az egyes Minkowski távolságok (Mathattan: p = 1, Euklédeszi: p = 2, és Chebysev: p között, hiszen elég egyformának tűnnek. A legegyszerűbb példa a különbségek szemléltetésére, ha 2 dimenzióban ábrázoljuk a (0;0)-tól egy egységnyire lévő pontok halmazát (8.7. ábra). 316
325 8. FEJEZET: IDŐSOROK ELEMZÉSE ábra. A (0;0) ponttól egy egységre lévő pontok halmaza a két dimenziós térben p = 1, p = 2, p esetén 8.6. Példa. Idősorok távolsága Adott két idősorunk: x = [367], y = [748]. Számoljuk ki Manhattan, Euklideszi és Chebyshev távolságukat: d man (x,y) = = 7 d euk (x,y) = (3 7) 2 + (5 4) 2 + (6 8) 2 = 4,58 d che (x,y) = max( 3 7 ; 5 4 ; 6 8 ) = 4 Ha tudjuk az idősorok egymástól vett távolságát, akkor egy új idősor megjelenésekor nem szükséges minden esetben kiszámolnunk minden régi idősor távolságát az újtól, elég lehet akár mindössze egyét. A többitől vett távolságának alsó határa ugyanis megadható a háromszög egyenlőtlenségből (ld fejezet): Ezt átalakítva kapjuk: d(ú j,régi 1 ) d(ú j,régi x ) + d(régi x,régi 1 ) (8.16) d(ú j,régi x ) d(ú j,régi 1 ) d(régi x,régi 1 ), (8.17) ahol ú j az újonnan érkezett idősorunk, régi 1 az az idősorunk, melytől kiszámoljuk az új idősor távolságát, régi x pedig egy tetszőleges másik az adatbázisunkban. 317
326 8.4. IDŐSOROK TÁVOLSÁGA 6 5 c d a e b ábra. Az adatbázis elemei és a lekérdező idősor (e) a síkra vetítve 8.7. Példa. A háromszög egyenlőtlenség alkalmazása Képzeletbeli adatbázisunk négy idősorból áll. Tételezzük fel, hogy az idősorok egymástól való távolságát már kiszámoltuk. Ezeket a távolságokat legegyszerűbben egy mátrixban ábrázolhatjuk, mely természetesen szimmetrikus lesz, és az átlójában csupa nulla található: a b c d a 0 2,24 3,61 5 b 2, ,61 c 3, ,83 d 5 3,61 2,83 0 Szeretnénk megtudni, melyik elem van legközelebb az adatbázisban nem tárolt e idősorhoz. Ahelyett, hogy kiszámolnánk mind a négy, adatbázisban tárolt elem távolságát az e idősorhoz képest, elég csupán annyiét, amennyiből kapunk egy jelentősebb távolságot e-hez képest. A többi távolságot már csak akkor szükséges kiszámolnunk, ha a háromszög egyenlőtlenség ennél kisebbet sejtet. (A viszonylag nagy távolságra az egyenlőtlenség miatt van szükség, hiszen ebből a nagy távolságból (d(ú j,régi 1 )) vonjuk ki az adatbázisban tárolt idősorok egymás közti távolságát (d(régi 1,régi x )), a távolságok számítását pedig csak akkor kerülhetjük el, ha az így kapott különbség nagyobb, mint az eddig már kiszámolt legkisebb távolság.) Adatbázisunkat a könnyebb megérthetőség kedvéért a 2 dimenziós térbe vetítjük. Legyen az e idősor távolsága 1,41 az a-hoz képest. Ez elég kis érték, de tudjuk, hogy 318
327 8. FEJEZET: IDŐSOROK ELEMZÉSE a-tól d távolsága a legnagyobb, ezért most hozzá képest számítjuk ki e távolságát, ami 5-nek adódik. Ez már elég magas érték, figyelembe véve az adatbázisban tárolt idősorok egymástól való távolságát. Most már megbecsülhetjük b és c távolságának minimumát. Helyettesítsünk be a egyenletbe: d(e,b) d(e,d) d(b,d) d(e,b) 5 2,83 d(e,b) 2,17 d(e,c) d(e,d) d(c,d) d(e,c) 5 2 d(e,c) 3 Mivel b és c távolsága mindenképpen nagyobb, mint e már meghatározott távolsága a-tól, így meg is találtuk a legközelebbi elemet. Azaz képesek voltunk két távolság kiszámításával meghatározni, hogy adatbázisunkból melyik az új idősorhoz legközelebbi elem. Sajnos a való életben ez akár fordítva is megeshet, így kizárólag erre nem alapozhatjuk keresési eljárásunkat Az Euklideszi távolság problémái Ha idősorokat szeretnénk összehasonlítani az Euklideszi távolság segítségével, azt gondolhatnánk, nincs más dolgunk, mint a látott formulát alkalmazni, és kényelmesen hátradőlni karosszékünkben. Sajnos azonban az Euklideszi távolság nagyon kényes. Ha idősoraink nincsenek kellőképpen előkészítve, nem várt eredményt kapunk. Az alábbiakban tárgyalt módszerekkel a zavaró tényezőket megpróbáljuk a lehető legteljesebb mértékben kiszűrni. Ezek a módszerek nem csak az Euklideszi távolság esetében használhatóak, hanem a későbbiekben megismert indexelési eljárások is pontosabb eredményt szolgáltatnak, ha elvégezzük az idősorok előkészítésének szükséges lépéseit. A következőkben megvizsgáljuk egyenként a különböző zavaró tényezőket, és megnézzük, hogyan küszöbölhetjük ki hatásukat. Zajszűrés: A zaj szűrése összetett folyamat, melyet nem csak az értékek rögzítése után végezhetünk el. Legalább ilyen fontos, hogy már a méréseink során is mindent megtegyünk a zaj rögzítésének kiküszöbölésére. Az idősorunk rögzítése során zajnak tekintünk minden olyan összetevőt, mely nem a mérendő folyamattól származik, vagy bár a folyamattól származik, de a mérés, illetve az adatgyűjtés körülményei változnak 319
328 8.4. IDŐSOROK TÁVOLSÁGA 8.9. ábra. Eltolás kompenzálása előtti és utáni idősorok meg oly mértékben, hogy a rögzített értékek eltérnek a várttól. A zaj szűrését a további vizsgálataink során kétfelé bontjuk. Az első esetben a véletlen zajok hatását próbáljuk kiszűrni. Az ilyen esetekben az a célunk, hogy a zavaró tényezők ne egyetlen időpontban fejtsék ki hatásukat, hanem több időpontra szétterüljenek, hogy amennyire csak lehet, ne befolyásolják idősorunk alakulását. Innen már sejthető, hogy módszerünk a részben bemutatott mozgóátlag számolás lesz. Ennek segítségével csökkenthetjük az egy időpontban jelentkező kiugró értékek hatását. A ciklikus mozgások meghatározásánál láthattuk, hogy a megfelelő rendű mozgóátlag képes követni a hosszú távú mozgásokat, így alkalmas arra is, hogy jelünkből eltűntessük az apró tüskéket okozó nagy frekvenciás összetevőket is. Második lehetőségünk, ha idősorunkat valamilyen digitális szűrő segítségével megtisztítjuk a nem kívánt frekvenciájú komponensektől. A digitális szűrők nem csak áramkörökkel valósíthatóak meg, hanem szoftveres úton is, így adataink zajmentesítését elvégezhetjük közvetlenül a számítógépen. Számos program elérhető, melyekben különböző digitális szűrőket és szűrési algoritmusokat implementálhatunk (Matlab, Scilab, stb.). Az ordináta menti eltolás kompenzálása: Sokszor előfordul az a jelenség, hogy a különböző forrásokból származó idősoraink az értéktengely mentén különböző mértékben el vannak csúszva. Ezt okozhatja műszereink érzékenységének hőmérsékletfüggése, a hibás kalibráció, vagy a nem egyforma műszerek. Ahhoz, hogy ezt az eltolást kompenzáljuk, nincs más dolgunk, mint az összes idősorból kivonni saját átlagukat, így hozva őket egy szintre: y i = y i ÁT LAG(y), (8.18) ahol y 1 jelöli a korrigált idősor i. elemét. Két idősor ilyen korrekcióját láthatjuk a 8.9. ábrán, függőleges vonalakkal jelölve a távolságukat. A trend eltávolítása: Előfordulhat olyan eset, amikor olyan idősorokat szeretnénk összehasonlítani, amelyeknél az egyik tartalmaz valamilyen trendet. Képzeljük el, hogy 320
329 8. FEJEZET: IDŐSOROK ELEMZÉSE BUX BUX DOW DOW ábra. A trend kiszűrése a BUX és a DOW JONES indexéből BUX DOW ábra. Az amplitúdó nagyságának korrigálása a DOW és a BUX trendmentesített idősorain meg szeretnénk tudni, mennyire érvényesül a DOW JONES hullámzása a BUX indexben. Ha megnézzük a ábra első részét, láthatjuk, hogy a két idősor nem összehasonlítható jelen esetben, mivel a BUX indexnél jóval erősebb lineáris trend figyelhető meg, mint a DOW JONES indexének esetén. Az összehasonlítás elvégzése érdekében ezért először mindkét idősorból eltávolítjuk a trendet. Ezután már vizsgálhatjuk, találunk-e valami hasonlóságot a két idősor mozgásában. Az amplitúdó skálázása: Az alapértékek eltérését és a trendet már sikerült korrigálni, de nem csak ezek, hanem az amplitúdók nagysága is eltérhet egymástól. Az amplitúdók különböző mértékű kilengésének korrigálására az értéktengely menti eltolás ki- 321
330 8.5. DINAMIKUS IDŐVETEMÍTÉS küszöbölése után kapott idősort osztjuk a vizsgált idősor szórásával: y i = y i ÁT LAG(y) SZÓRÁS(y) (8.19) Ezt a korrekciót láthatjuk a ábrán. A jobb összehasonlíthatóság kedvéért a BUX idősorát pozitív irányban eltoltuk az ordináta tengely mentén. Ezen eltolás nélkül természetesen mindkét idősor a 0 egyenes közelében helyezkedne el. 4 Van azonban három olyan probléma, amelyre nincs ilyen egyszerű megoldás. Ha két idősor egy részét szeretnénk összehasonlítani, és ezek közül az egyik az időtengely mentén elcsúszik, akkor a távolságuk is nagymértékben megváltozhat. Nem tudunk mit kezdeni azzal sem, ha kiugró értékek sorozatai alapján szeretnénk összehasonlítani idősorainkat. Az Ekulideszi távolság konstrukciója miatt nem tudunk összehasonlítani két különböző hosszúságú idősort sem, pedig erre gyakran szükségünk van. Gondoljunk csak arra, hogy a mintavételezési frekvenciák igen gyakran eltérnek, így ekkor minden egyes idősort azonos hosszúságúra kellene konvertálni Dinamikus idővetemítés Az eltérő helyen jelentkező kiugró értékek, az elcsúszás erősen megnehezíti az Euklideszi távolság alkalmazását, a különböző hosszúságú idősorok pedig egyenesen lehetetlenné teszik. Ezen problémák forrása az, hogy az idősorok pontjait azonos indexű páronként hasonlítjuk össze. Ha megengednék, hogy egy időpontot ne csak a többi idősor azonos időpontjához lehessen viszonyítani, hanem bármelyikhez, majd így hasonlítanánk össze idősorainkat, a fenti problémáink mind megoldódnának. Így jutunk el a dinamikus idővetemítés (DTW Dynamic Time Warping) alapötletéhez. Ezt a módszert eredetileg a hangfelismerés pontosabbá tételére dolgozták ki [136, 137]. Ha belegondolunk az előbb említett problémákba, érthető, hogy miért. Igen ritkán vagyunk képesek kimondani ugyanazt a szót pontosan ugyanannyi idő alatt, és a mintavételezési frekvenciák is különbözhetnek felvételenként, így a hangazonosítás során eltérő hoszszúságú hangmintákkal kell dolgozni. A DTW nemcsak hogy áthidalhatóvá teszi ezen problémákat, de ráadásul igen pontos is. Mielőtt azonban lecseréljük otthonunkban a csengőt saját hangazonosításon alapuló beléptető rendszerünkre, nézzük, hogyan is határozzuk meg ezen módszer segítségével az idősorok távolságát. Legyen két idősorunk x = [x 1, x 2,..., x n ] és y = [y 1, y 2,..., y m ], melyeket szeretnénk összehasonlítani. Az összehasonlításhoz a Minkowski távolság tetszőleges kitevőjű alakja szolgáltatja az alapot. A továbbiakban a kitevőt 2-nek választva, az Euk- 4 A könyv honlapján elérhetjük a két tőzsdei idősort tartalmazó, és azon a fenti lépések eredményeit bemutató file-t. 322
331 8. FEJEZET: IDŐSOROK ELEMZÉSE ábra. Az Euklideszi távolság és a DTW által egymással összehasonlított pontok lideszi távolsággal dolgozunk, de mint példánkban látni fogjuk, a DTW más kitevők esetén is ugyanígy számolható. Első lépésként egy nm-es D mátrixban rögzítjük idősoraink pontjainak egymástól vett távolságának négyzetét. Így a D mátrix (i, j). eleme nem lesz más, mint az x i és y j közötti Euklideszi távolság négyzete: D(i, j) = (x i y j ) 2. (Amikor a két idősort közvetlenül az Euklideszi távolsággal hasonlítottuk össze, akkor is hasonlóan jártunk el, azzal a különbséggel, hogy ott n = m, és csak az azonos indexű elemek távolságát számoltuk, vagyis D egy sorvektor lenne és D(i) = (x i y i ) 2 ). A következő lépésben ki kell választanunk azt a p = [p 1, p 2,..., p k ] útvonalat D mátrixunkban, melyet bejárva a legkisebb költséggel juthatunk el D(1, 1)-ből D(n, m)- be. A bejárásnak azonban vannak szabályai. Ha mátrixunk egy elemén tartózkodunk, annak értéke hozzáadódik útvonalunk hosszához, így növelve utunk költségét. Ráadásul nem is bóklászhatunk szabadon mátrixunkban, a következő szabályokat be kell tartanunk: Utunknak minden lépésben közelednie kell célunk, D(m,n) felé, nem távolodhatunk el tőle: ha p l = D(i, j), akkor p l+1 = D(i, j ) és teljesül i i 0, valamint j j 0 Útvonalunknak folytonosnak kell lennie, vagyis csak a szomszédos cellák egyikébe léphetünk: ha p l = D(i, j) akkor p l+1 = D(i, j ), és teljesül i i 1, valamint j j 1 Ezekkel a megszorításokkal az utunk legrövidebb esetben is akkora, mint a hoszszabbik idősorunk (max(m,n)), maximális mérete pedig nem lehet nagyobb, mint a két idősor hossza, plusz egy (m+n+1). Bár ezekkel a feltételekkel jelentősen lerövidítettük a választható útvonalak számát, még így is rengeteg lehetőség közül választhatunk. A két idősor DTW-vel kiszámolt távolsága a legrövidebb útvonal nagysága lesz: 323
332 8.5. DINAMIKUS IDŐVETEMÍTÉS ábra. A D mátrix egy beárt útvonala d DTW (x,y) = min( k p k ) (8.20) i=1 Ez a távolság jelen esetben nem más, mint az Euklideszi kiterjesztése, annak rugalmasabbá tételével. Magát a két idősor közötti Euklidszi távolságot a DTW segítségével is visszakaphatjuk, amennyiben idősoraink hossza megegyezik, és a legrövidebb út éppen a D mátrix átlója Példa. Legyenek összehasonlítandó idősoraink a következők: x = [3, 2, 4] és y = [6, 4, 2]. Számoljuk ki az Euklideszi és Manhattan távolságra épülő dinamikus idővetemítéssel a két idősor távolságát. Ehhez első lépésként írjuk fel mindkét esetben a pontok egymástól való távolságát, vagyis a D mátrixokat. d DTWm x 1 x 2 x 3 y y y d DTWe x 1 x 2 x 3 y y y Bejárható útvonalaink száma összesen 13. Írjuk fel minden egyes lehetséges útvonalhoz a hozzá tartozó költséget, majd válasszuk ki ezek közül azt, amelyik a legolcsóbb. 324
333 8. FEJEZET: IDŐSOROK ELEMZÉSE Útvonal Összköltség Összköltség d DTWm (x 1,y 1 ), (x 1,y 2 ), (x 1,y 3 ), (x 2,y 3 ), (x 3,y 3 ) 7 (x 1,y 1 ), (x 1,y 2 ), (x 2,y 3 ), (x 3,y 3 ) 6 (x 1,y 1 ), (x 1,y 2 ), (x 2,y 2 ), (x 3,y 3 ) 8 (x 1,y 1 ), (x 1,y 2 ), (x 2,y 2 ), (x 3,y 2 ), (x 3,y 3 ) 8 (x 1,y 1 ), (x 1,y 2 ), (x 2,y 2 ), (x 2,y 3 ), (x 3,y 3 ) 8 (x 1,y 1 ), (x 2,y 2 ), (x 3,y 3 ) 7 (x 1,y 1 ), (x 2,y 2 ), (x 2,y 3 ), (x 3,y 3 ) 7 (x 1,y 1 ), (x 2,y 2 ), (x 3,y 2 ), (x 3,y 3 ) 7 (x 1,y 1 ), (x 2,y 1 ), (x 3,y 1 ), (x 3,y 2 ), (x 3,y 3 ) 11 (x 1,y 1 ), (x 2,y 1 ), (x 3,y 2 ), (x 3,y 3 ) 9 (x 1,y 1 ), (x 2,y 1 ), (x 2,y 2 ), (x 3,y 3 ) 11 (x 1,y 1 ), (x 2,y 1 ), (x 2,y 2 ), (x 2,y 3 ), (x 3,y 3 ) 11 (x 1,y 1 ), (x 2,y 1 ), (x 2,y 2 ), (x 3,y 2 ), (x 3,y 3 ) 11 d DTWe A legkisebb költségű útvonalunk tehát az (x 1,y 1 ), (x 1,y 2 ), (x 2,y 3 ), (x 3,y 3 ) pontokon halad keresztül. Számításaink során már kiszámoltuk a két idősor idővetemítés nélküli távolságát is, ez az átlón áthaladó azaz a legrövedebb útvonalunk összköltsége. Várakozásainknak megfelelően láthatjuk, hogy nagyobb, mint az idővetemítés segítségével kiszámolt táv. Néha lehetséges, hogy a két távolság megegyezik. Példaként érdemes elgondolkodni, melyik lett volna a legrövidebb útvonalunk, ha a két idősorunk x = [3, 4, 2] és y = [6, 4, 2]. Az Euklideszi távolság segítségével képzett idővetemítés számításának gyorsítása érdekében a gyökvonást elhagyhatjuk. A példánkban is láthattuk, hogy már két, 3 pontból álló idősor esetén is sok számolást igényel a különböző útvonalak hosszának meghatározása. Az idősorok hosszának növekedésével a számolási igény exponenciális ütemben nő tovább, hiszen a lehetséges útvonalak száma is ilyen ütemben gyarapodik. Az így jelentkező hatalmas számítási igény miatt más módot kell keresnünk, hogy nagyobb adatbázisok esetén is alkalmazhassuk módszerünket. Vezessük be a kumulált útvonalköltségek tárolására a D mátrixot. Ekkor dinamikus programozás segítségével képesek leszünk kiszámolni x és y távolságát egy most már mindössze O(nm) 5 komplexitású algoritmus segítségével. Algoritmusunk alapötlete, hogy a kumulált távolság az x i, y j elemek között a lehetséges előző cellákban tárolt kumulált távolságok minimuma és D(i, j) összege legyen: 5 Az f (n) = O(g(n)) (nagy ordó g(n)) azt fejezi ki, hogy létezik olyan c konstans, és n 0 < n szám, melyre teljesül: f (n) < c(g(n)), ha n 0 < n. Azaz jelen esetben a cnm számításra van szükségünk az idővetemítés segítségével számolt távolság meghatározásához. 325
334 8.5. DINAMIKUS IDŐVETEMÍTÉS D(i, j) = min[ D(i 1, j), D(i, j 1), D(i 1, j 1)] + D(i, j) (8.21) Ekkor D(n, m) fogja tartalmazni a két idősorunk távolságának négyzetét. Mivel rendelkezésünkre áll a kumulált távolságok mátrixa is, így ha az egyik vagy mindkét idősort megrövidítjük, nem kell kiszámolnunk újra a távolságot, elég kiolvasni a megfelelő értéket mátrixunkból Algoritmus. % A D első sorának és oszlopának feltöltése: D(1,1)=d(x 1,y 1 ); for(i=2;i elemszám(x);i++) D(1,i)=d(x i,y 1 )+ D(1,x i 1 ); for(i=2;i elemszám(y);i++) D(i,1)=d(x 1,y i )+ D(y i 1,1); % A többi érték feltöltése: for(n=2;n elemszám(x);n++){ for(m=2;m elemszám(y);m++) D(m,n)=min([ D(m,n 1) D(m 1,n) D(m 1,n 1)]) + d(x n,y m ); } } 8.9. Példa. A DTW alkalmazása aláírás-ellenőrző rendszerben A jelenkori kutatások egyik leggyakoribb célja a nagy pontosságú biometrikus azonosítási módszerek kifejlesztése. Az aláírások segítségével történő azonosítás már évszázados hagyományokra nyúlik vissza, azonban a papírra vetett íráskép még gyakran egy számítógépes azonosító rendszer számára is megtévesztő lehet. Nagyságrendekkel jobb pontosság érhető el azonban digitális táblák és tollak alkalmazásával. Ezekkel az eszközökkel az aláírás teljes folyamata vizsgálható: a számítógép rögzíti a toll mozgását, szögét, a rányomás erősségét, azaz az aláíró minden mozdulatát. Egy aláírás alakja még elleshető, de gondoljunk csak bele, milyen nehéz utánozni valakinek a legapróbb mozdulatait. Akár már a toll papírra helyezésekor elárulhatjuk magunkat! Digitális táblák segítségével működő aláírás-ellenőrző rendszert Magyarországon a DSS Consulting Kft. ( fejlesztett ki 2005-ben. A kutatási szakasz egyik fontos megfigyelése volt, hogy az aláíró által az aláírás során gyakorolt nyomás mérése igen nagy segítséget jelent a helyes azonosításhoz. A feladat tehát egyszerű: meg kell határozni, hogy mely idősorok "hasonlóak", azaz nagy valószínűséggel azonos személytől származóak. (A valódi azonosítási folyamat természetesen ennél jóval komplexebb.) 326
335 8. FEJEZET: IDŐSOROK ELEMZÉSE ábra. Két, szemmel láthatóan azonos nyomásgörbe, az eltolódás miatt azonban Euklideszi távolságuk mégis jelentős ábra. Adott távolságon belül a hamis aláírások aránya, idővetemítés nélkül és alkalmazásával Az idősorok távolságának vizsgálata idővetemítés nélkül azonban kevés eredményre vezetett. Hiszen hiába egyezik meg két idősor alakja teljesen, ha a második aláírást a toll papírra helyezése után kevéssel később kezdjük, akkor a távolság nagyon nagy is lehet. Erre példa a ábra első grafikonja, ahol azt láthatjuk, hogy bár a két idősor nagyon hasonló, de mivel az aláírási folyamat első felében az egyik időben kissé eltolódott vízszintes irányban, így idővetemítés nélkül a távolságuk igen nagy. Az idővetemítést alkalmazva azonban ez az "időbeli elcsúszás" már nem jelent hibát, a távolság sokkal inkább a két idősor "alakja" közötti hasonlóságot vizsgálja. A második grafikonon látható, hogyan találta meg az egymásnak megfelelő pontokat az idővetemítés az előbbi két idősor esetében. Az idővetemítés alkalmazásának fontosságát támasztják alá a ábrán látható grafikonok, amelyeken az azonosítási kísérletek szerepelnek. A vízszintes tengelyen két aláírás nyomásfüggvényének a távolsága szerepel, intervallumokra osztva. Az első ábrán látható esetben ezt a távolságot idővetemítés nélkül számoltuk, míg a második esetben alkalmaztuk a DTW algoritmust. Függőleges irányban az látható, hogy azon azonosítási kísérletek közül, melyeknél a távolság az adott intervallumba esett, mekkora volt a hamis aláírások aránya. Az ábrát vizsgálva látható, hogy alacsonyabb távol- 327
336 8.5. DINAMIKUS IDŐVETEMÍTÉS ságok esetében a hamis aláírások aránya alacsonyabb, sőt a legkisebb távolságokat jelentő intervallumokban hamisítás egyáltalán nem található. Látható, hogy a DTW alkalmazásával sokkal kevesebb valódi aláírást kellett elutasítanunk, azaz az idővetemítés nagyban növelte az azonosítási folyamat hatékonyságát. Dinamikus programozás segítségével sikerült lecsökkentenünk a távolság kiszámításának idejét, de ez még mindig igen lassú, főleg ha az Euklieszi távolság számítási igényéhez viszonyítjuk (O(n)). Ha két n időpontot tartalmazó idősort hasonlítunk össze, akkor n-szer lassabb a DTW kiszámítása, mint az Euklideszi távolságé. Ha egy lekérdező idősorhoz keressük a legjobban hasonlító (tőle legkisebb távolságra lévő) idősort adatbázisunkban, akkor normál esetben az adatbázisban lévő összes idősor lekérdező idősortól vett távolságát ki kell számítanunk. (Ezt a keresési módot hívjuk szekvenciális keresésnek.) Ahhoz, hogy ne csak néhány, kevés elemből álló idősort tudjunk összehasonlítani, valahogyan gyorsítani kell módszerünkön. Három lehetőség kínálkozik a továbblépésre: Globális megszorítások: Már említettük, hogy az Euklideszi távolság tulajdonképpen nem más, mint egy olyan útvonal, amely a D mátrix átlóján halad végig. Nem véletlen az sem, hogy hibái ellenére mégis az Euklideszi távolságot általánosan elfogadjuk, hiszen a legtöbb útvonal az átló közelében halad, esetleg az útvonal eleje vagy vége érinti egy ideig a mátrix szélét. Ha viszont nem érinti útvonalunk a többi elemet, akkor miért számoljuk ki őket? Innen már adódik, hogyan csökkenthetjük a számítási szükségletet, egyszerűen nem számoljuk ki a mátrix felesleges elemeit. Hogy mit vélünk felesleges elemnek, az alkalmazástól függ. Két, gyakran használt ilyen megszorítás a DTW alkotói által bemutatott Sakoe-Chiba sáv [137] és az Itakura paralelogramma [136]. A H. Sakoe és S. Chiba által bevezetett megszorítás az átlótól egy választott értékig engedi csak eltérni az útvonalat. Ennek megvan az az előnye, hogy az út kezdetén és végén szabadjára engedi az algoritmust, így az idősor felvételének elején és végén található jellemzően a hangfeldolgozásnál a felvétel kezdetének és befejezésének eltolódása miatt adódó hibákat a DTW tudja korrigálni. Az Itakura paralelogramma teljesen más szemléletet tükröz. Az útvonal elején és végén nem engedélyez jelentős szabadságot, de a közepén teret ad a korrekcióknak. A globális megszorítások alkalmazásának azonban nem csak az algoritmus gyorsítása a célja. Legalább ilyen fontos szerepe van az extrém és nem kívánt útvonalak kiküszöbölésében is. Maga a megszorítás elnevezést is emiatt használjuk, hiszen a megalkotóinak elsődleges célja az útvonal limitálása volt. Nézzünk erre egy példát: Adott húsz azonos hosszúságú idősor, melyek üzletünk előző 328
337 8. FEJEZET: IDŐSOROK ELEMZÉSE ábra. A Sakoe-Schiba sáv és az Itakura paralelogramma által engedélyezett területek havi forgalmát ábrázolják napi bontásban. Szeretnénk a napokat csoportosítani a forgalom eloszlása szerint, de megszorítások nélkül a kiugró időszakokat rendeli egymáshoz a DTW, azaz a ˆD mátrixban a csúcsidőszakok találkozási pontjain haladna át az útvonalunk, ami bár kis távolságot adna, de a csoportosítás végeredményét sok mindenre nem tudnánk használni. Ha azonban alkalmazzuk a Sakoe és Chiba által javasolt megszorítást, a sáv szélességét 1 órányira állítva, már a kívánt eredményt kapjuk. Természetesen mi is megalkothatjuk a számunkra hasznos megszorítást, a dolgunk mindössze annyi, hogy a közölt DTW algoritmusban a mátrix értékeinek számolása során a belső ciklus ne 2-től elemszám(y)-ig tartson, hanem a megvalósítani kívánt megszorítás által elvártig. A Sakoe-Chiba sáv megvalósítása során például annyi a dolgunk, hogy a for(i=2;i elemszám(y);i++) sort kicseréljük a következő for ciklusra, és definiáljuk a két új változónkat: Algoritmus. % Az esz(y) függvény Y elemszámát adja meg. i=max(2,((esz(y)-1)(n-1)/(esz(x)-1)+1-eltolás)); k=(esz(y),((esz(y)-1)(n-1)/(esz(x)-1)+1+eltolás)); for(i,i k,i++) Az idősor tömörítése DTW számára A mátrix elemeinek elhagyásával gyorsult ugyan a számolás, de igazán komoly sebességnövekedést csak az hozhat, ha csökkentjük n vagy m nagyságát, mivel ilyenkor a számolási idő négyzetesen csökken. Ha egy 80 és egy 100 elemű idősort felére tömörítünk, négyszer kevesebb gépidőt igényel a távolság kiszámítása, ha harmadára, már kilencszeres a gyorsulás. A tömörítés egy igen egyszerű és ötletes módját mutatta 329
338 8.5. DINAMIKUS IDŐVETEMÍTÉS ábra. Az eredeti idősor és felette a tömörített változat be a DTW számára E. J. Keogh és M. J. Pazzani [138]. Az ötlet a következő: Bontsuk n hosszúságú idősorunkat N darab egyenlő nagyságú részre, majd minden egyes szeletben vegyük az ott szereplő értékek számtani átlagát. A tömörített idősor elemeit felülvonással jelölve, a következő egyenletet kapjuk: x i = N n n N i j= n N (i 1)+1 x j (8.22) Az m hosszúságú idősort hasonlóan M darabra bontva a DTW komplexitása O(nm)- ről O(NM)-re csökkent. A kummulált távolságok mátrixát ( D) a egyenlethez hasonlóan kapjuk meg, ahol D(i, j) = (x i y j ) 2. Az ábrán láthatjuk, ahogyan egy eredetileg 100 elemű idősort mindössze 10 eleműre tömörítettünk, mégis a tömörített idősor egész jól közelíti az eredetit. Természetesen az ábrán a tömörített idősor a tízszeresére van nyújtva az időtengely mentén, hogy látható legyen az egyezőség. Alsó korlát alkalmazása Ha visszaemlékezünk, a távolság fogalmának bevezetésénél a háromszög-egyenlőtlenséget már használtuk arra, hogy két elem távolságát alulról becsüljük. Ha idősoraink esetén is találnánk egy gyorsan számítható alsó korlátot, akkor egy hasonló elem keresésénél csak azoknál az elemeknél kellene a dinamikus idővetemítés módszerével számolni, ahol becslésünk alacsonyabb távot sejtet, mint az eddigi legközelebbi elem távolsága. Az alsó korlát számítását csak egyszer kell elvégeznünk, utána a kapott ér- 330
339 8. FEJEZET: IDŐSOROK ELEMZÉSE tékeket az adatbázisunkban tárolhatjuk. Minél kisebb a különbség az alsó korlát és a vetemítés által megadott távolság között, annál nagyobb gyorsulást érhetünk el, hiszen a nagy gépigényű DTW számítást ritkábban kell elvégeznünk. A szekvenciális keresés megvalósítása az alsó korlát segítségével igen egyszerű: Algoritmus. Kezdő változók: keresett idősor, valós táv,... lit(legközelebbi idősor távolsága)=végtelen,... legközelebbi idősor indexe; for(i=1;i<idősorok száma;i++){ if(alsó korlát(i.idősor,keresett idősor)<lit){ valós táv=(dtw(i.idősor,keresett idősor); if(valós táv<lit{ lit=valós táv; legközelebbi idősor indexe=i; } } } Az egyik megközelítés szerint [139] első lépésben megkeressük minden idősorban a minimális és a maximális értéket. Az alsó korlát megtalálására alkalmas módszereket a terjedelmi korlátok miatt a könyv honlapján ismertetjük, ahol megtalálható egy Excel bővítmény, mellyel kipróbálhatjuk az idővetemítést a gyakorlatban is Indexelési lehetőségek Az eddigiekben áttekintettük, milyen módszerekkel hasonlíthatjuk össze idősorainkat. Az Euklideszi távolság hibáit kiküszöbölendő bevezettük a dinamikus idővetemítést. Ennek nagy számolásigényét megpróbáltuk különböző módszerekkel mérsékelni, de mivel idősoraink nagyon hosszúak is lehetnek, és adatbázisunk több millió idősorból állhat, a szekvenciális keresés helyett más keresési módszert kell találunk. A megoldás a térbeli adatelérési módszerek alkalmazása (SAM Spatial Access Method). Ezek segítségével adatainkat egy fában(r fa, k-d fa, stb.) helyezzük el, és az idősorok keresésénél ezt a fát járjuk be [140, 141, 142]. Az indexelés során az egymáshoz közeli idősorokat kis csoportokba rendezzük, ezek köré úgynevezett minimális határoló téglalapokat (MBR Minimum Bounding Rectangle) képzünk, majd ezeket a téglalapokat is téglalapokkal határoljuk, míg végül az összes idősorunk egyetlen nagy téglalapban lesz megtalálható. Ez a nagy téglalap lesz a fánk gyökere, míg a benne található kisebbek a csomópontok. Ha egy keresés során megtaláltuk a legközelebbi téglalapot, az még nem jelenti azt, hogy az is tartalmazza a legközelebbi idősort. Ennek szemléltetésére határoló 331
340 8.6. INDEXELÉSI LEHETŐSÉGEK ábra. MBR téglalapjainkat képzeljük el úgy, mintha a sík egymásra merőleges vonalai állítanák elő őket. A ábrán látható, hogy az üres körrel jelölt lekérdező idősor a középső téglalapban helyezkedik el, de a hozzá legközelebbi elem nem itt található. Ahhoz, hogy biztosan megtaláljuk a legközelebbit, mind a négy téglalapot át kell néznünk. A háromdimenziós térben már 26 határoló téglalap elemeivel kell összehasonlítani a lekérdezésünket. Az átnézendő szomszédos téglalapok száma a tér dimenziójának (t) növekedésével exponenciális arányban nő (course of dimensionality): 3 t 1. Az Olvasóban nyilván most felmerül, ez miért is jó nekünk, hiszen az idősoraink nemhogy nem 2 vagy 3 elemből állnak (2 vagy 3 dimenziósak), hanem akár sok ezerből. Ekkor viszont csak pluszmunkát végzünk, hiszen annyi szomszédos téglalapot kellene átnézni, hogy gyakorlatilag a szekvenciális keresést hajtjuk végre. Ahhoz, hogy idősorainkat indexelni tudjuk, első lépésként tehát keresni kell valamilyen módszert, mellyel idősorainkat egy rövid sorozattal is jellemezhetjük egy alacsony dimenziós térben. A dimenzió csökkentéssel (dimensionality reduction) szemben a legfontosabb elvárt tulajdonság, hogy a csökkentett dimenziós térben az indexelés segítségével biztosan megtaláljuk a legközelebbi elemet. Erre a GEMINI (GEneric Multimedia INdexIng) keretrendszerben leírt lépések alkalmazása teremt lehetőséget [143]. Mindössze annyi a dolgunk, hogy bebizonyítsuk, az idősoraink terében definiált távolságmérték minden esetben nagyobb vagy egyenlő, mint az indexeléshez használt térben. A GEMINI lépései: Mutassunk be egy távolságmértéket objektumaink (jelen esetben idősorok) terében. 332 Tömörítsük idősorainkat olyan méretűre, hogy egy létező térbeli adatelérési módszerrel kényelmesen tudjuk kezelni.
341 8. FEJEZET: IDŐSOROK ELEMZÉSE Készítsünk az indexelt térben egy távolságmértéket (d index ), és bizonyítsuk, hogy d index (X index,y index ) d(x,y) az eredeti tér minden X, Y objektumára. (X index, Y index X és Y redukált dimenziójú térbeli megfelelői.) A dimenzió-csökkentés tehát szükséges lépés ahhoz, hogy idősorainkat megfelelően indexelhessük. Ahhoz, hogy indexelési folyamatunk ideális legyen, a következő feltételeket kell teljesítenie [144]: 1. Jelentősen gyorsabb a szekvenciális keresésnél. 2. Az indexek tárolási igénye nem növeli jelentősen az adatbázis méretét. 3. Legyen korrekt, azaz minden helyes eredményt megtaláljon (no false dismissals). 4. Képes legyen különböző hosszúságú adatokat és lekérdezéseket kezelni. 5. Egy új elem beszúrása vagy egy elem törlése az indexek közül, ne igényelje az indexek újraszámítását. 6. Az indexek legyenek gyorsan számíthatóak. Természetesen, ha egy lekérdezést végre szeretnénk hajtani indexelt terünkben, első lépésként lekérdező idősorunkon el kell végezni a kiválasztott dimenzió-csökkentő eljárást. Az előzőekben csak a legközelebbi idősor keresését tekintettük célunknak, de legtöbbször egy adott ε távolságnál közelebbi elemek összességét vagy a k legközelebbi elemet keressük. Ha idősorainkat nem indexeltük, mindkét keresési mód teljesen egyértelmű, hiszen az eredményül kapott idősorok ténylegesen azok, amelyeket kerestünk. Indexelés esetén azonban más a helyzet. Az indexelt térben végrehajtva a keresést, a kapott eredmények csak alulról becsülik a tényleges távolságot, így az eredményül kapott halmazból a hibás eredményeket (false alarms) ki kell zárnunk. Ha egy távolságnál (ε) közelebbi elemeket keresünk, akkor első lépésben még nem történik változás; megkeressük az indexelt térben az ennél közelebbi elemeket. Ezután kiszámoljuk az indexekhez tartozó valós idősorok távolságát a lekérdező idősortól, majd kiszűrjük azokat a sorokat, melyek valós távolsága nagyobb, mint ε. Amikor a k legközelebbi elemet keressük, első lépésként az indexelt térből választjuk ki a legközelebbi k elemet, majd kiszámoljuk az eredményül kapott indexekhez 333
342 8.6. INDEXELÉSI LEHETŐSÉGEK tartozó valós idősorok távolságát a lekérdező idősortól. Az eredeti térben mért távolságok közül kiválasztjuk a legnagyobbat, és az indexelt térben megkeressük az ennél közelebbi elemeket. Az így kapott minimum k darab index alapján az eredeti térben megkeressük a k legközelebbi elemet. Az eddigiekből kitűnik, hogy ezen lekérdezések hatékonysága nagyban függ attól, mennyire szorosan közelíti alulról a két idősor indexelt térbeli távolsága a valós térbeli távolságukat Diszkrét Fourier-transzformáció Az első javasolt módszer, hogy az idősorok tömörítésével gyorsítsuk meg a keresést adatbázisunkban. Ezen módszer egy, a műszaki tudományokban igen gyakran használt technikából indul ki, a Fourier- transzformációból[134]. A Fourier-transzformáció során az idő helyett a frekvencia lesz az, aminek függvényében vizsgálni fogjuk folyamatunkat. A transzformáció ötlete egy, a XVIII-XIX. század fordulóján élt francia matematikustól, Jean Baptiste Joseph Fourier-től származik. A Fourier-transzformáció segítségével egy f (t) függvényt az idő helyett a frekvencia függvényében tudunk vizsgálni. A frekvenciatartományban való munkának számos előnye van. Elegáns módon ki tudjuk szűrni a nem kívánatos frekvenciájú zajokat, emellett a transzformáció bizonyos műveleteket képes átvinni az időtartományból a frekvenciatartományba. Az érték és az időtengely menti eltolás megjelenik a Fourier-transzformáltban, így ezek kompenzálását a frekvenciatartományban is el tudjuk végezni. Két függvény szorzata konvolúcióként jelenik meg és fordítva. A két legfontosabb tulajdonsága számunkra azonban a transzformáció linearitása (a f 1 (t)+b f 2 (t) = af 1 (ω)+bf 2 (ω)) és a Parsevalformula: E f =Z f (t) 2 dt =Z F(ω) 2 dω (8.23) Azaz az f (t) függvény energiája (E f ) az időtartományban megegyezik a függvény Fourier-transzformáltjának energiájával a frekvenciatartományban. Idősorainkat néhány esettől eltekintve nem tudjuk függvényként felírni, hiszen diszkrét értékek sorozatai. Ahhoz, hogy megkapjuk a spektrumukat a frekvenciatartományban, a folytonos Fourier-transzformáció nem használható. Ehelyett a diszkrét Fourier-transzformációt (DFT) használjuk: F[k] = 1 N 1 N f (i)e 2π jki/n k=0 0 k N 1 f [i] = 1 N 1 F[k]e 2π jki/n N 0 i N 1 k=0 (8.24) 334
343 8. FEJEZET: IDŐSOROK ELEMZÉSE Az eredményül kapott F sorozat tartalmazza a transzformált együtthatóit. A DFT is rendelkezik azokkal a tulajdonságokkal, melyeket a folytonos társánál már felsoroltunk. Ha visszaemlékezünk, az Euklideszi távolság előnyei között említettük, hogy ortogonális transzformációk során megőrződik. Nos, a Fourier-transzformáció is ortogonális. A Parseval-formula és a linearitás segítségével bebizonyítható, hogy az Euklideszi távolság két idősor és azok Fourier transzformáltja között azonos: n x i y i 2 = i=1 n X i Y i 2 (8.25) i=1 Idősorunkon eddig még nem végeztünk el tömörítést, így most itt az ideje. A Fourier-együtthatóknak megvan az a jó tulajdonságuk, hogy már az első néhány segítségével képesek vagyunk jól közelíteni az eredeti adatsort. Az indexelés során ezen első Fourier-együtthatók alapján készítjük el a fát. Az indexeléstől elvárjuk, ne fordulhasson elő az az eset, hogy a legközelebbi elemet ne találjuk meg. Ehhez az szükséges, hogy a DFT első együtthatói alulról becsüljék a két idősor közötti valós távolságot. Ez teljesül, hiszen: n k i=1 X i Y i 2 n i=1 X i Y i 2 = n i=1 Az indexelés és egy lekérdezés folyamata a következő: x i y i 2 (8.26) Készítsük el az adatbázisunkban található összes idősornak a diszkrét Fouriertranszformáltját. Készítsünk többdimenziós indexet az első i darab együttható segítségével. Az indexeink ekkor 2 i elemet fognak tartalmazni, hiszen az együtthatók komplex számok. Ha lekérdezés érkezik, készítsük el az első i együtthatóját, és keressük meg a fában a legközelebbi elemeket. Mivel az együtthatókkal alulról becsültük a távolságot, szűrjük ki a hibás elemeket a visszakapott halmazból. A bevezetőben említettük, az indexeléstől elvárjuk, hogy gyorsan ki tudjuk számítani az indexeket. Ha visszatekintünk az eddig leírtakra, láthatjuk, hogy a diszkrét Fourieregyütthatók számítása nem egy könnyű és gyorsan elvégezhető feladat. Erre a problémára jelent megoldást a gyors Fourier-transzformáció (FFT-Fast Fourier Transform) algoritmusa. 335
344 8.6. INDEXELÉSI LEHETŐSÉGEK ábra. Az alap Haar wavelet Az idősorok diszkrét Fourier-transzformáción alapuló indexelést mutatták be elsőként a különböző indexelési technikák közül[145], így nem véletlen, hogy a legelterjedtebb, valamint hogy később számos, speciális igénynek megfelelő módosítást végeztek rajta. Az egyik első jelentős továbblépésként a fában való keresés gyorsítása érdekében az utolsó néhány együtthatót is figyelembe vesszük a távolság számítása során, mindezt úgy, hogy az utolsó együtthatóknak a fában történő tárolására nincs szükség[146]. Ezt a diszkrét Fourier-transzformált együtthatóinak szimmetriája teszi lehetővé, ugyanis az i. együtthatónak az n i + 1. a komplex konjugáltja Diszkrét Wavelet Transzformáció A diszkrét Fourier-transzformáció széles körben elterjedt, de van egy számunkra igen gyakran végzetes hibája. Nem tud mit kezdeni a helyileg jelentkező impulzusokkal, pedig sokszor ezek hordozzák a fő információt. Mindez abból ered, hogy a különböző frekvenciájú görbék az egész adatsort egyszerre jellemzik, és nem csak egyszerre egy részét. Erre kínál megoldást a wavelet 7 transzformáció. A transzformációnak magyar vonatkozása is van, ugyanis az első transzformálásra alkalmas ortonormált rendszert a magyar Haar Alfréd alkotta meg [147], majd később az első nem ortogonális bázis létrehozása Gábor Dénes nevéhez köthető. A továbbiakban Haar Alfréd által definiált függvényeket használjuk. Ennek oka egyrészt, hogy roppant egyszerűen előállíthatóak, másrészt hogy az első DWT-re épülő indexelési eljárás során 6 Az (a + b j) komplex szám komplex konjugáltja: (a b j) 7 A wavelet jelentése hullámocska, kicsiny hullám. 336
345 8. FEJEZET: IDŐSOROK ELEMZÉSE ábra. Coiflets1, mexikói kalap és Daubechies4 wavelet is ezeket használták [148]. Az alap Haar wavelet definíciója a következő: 1, ha 0 x < 1 2 ψ = 1, ha 1 2 < x 1 0, egyébként (8.27) A belőle előállított waveletek: ψ jk = ψ(2 j x k), 0 k 2 j 1 (8.28) Egy tetszőleges f (t) függvény előállítható ezen waveletekből a következőképpen: f (t) = a 0 + j=0 2 j 1 a jk ψ jk (t) (8.29) k Természetesen nem csak ez az egy fajta wavelet létezik. Az alábbi ábrán láthatjuk, milyen változatos függvények is valójában. Elsőként csakúgy, mint a Fourier-transzformált esetében a folytonos wavelet transzformációt (CWT Continuous Wavelet Transform) tekintjük át. Ehhez írjuk fel válaszott wavelet-ünket az alábbi formában: A transzformáció képlete: ψ ab (t) = a 1 2 ψ( x b a ) (8.30) W ψ (ab) = 1 az f (t)ψ( x b )dt (8.31) a A Fourier-transzformációnál egyszerűen csak a frekvenciák függvényében írtuk fel adatainkat, itt azonban már elő kell venni 3D szemüvegeinket, ugyanis a folytonos wavelet transformáció során két dimenzió mentén fogjuk ábrázolni adatainkat. Ve- 337
346 8.6. INDEXELÉSI LEHETŐSÉGEK együttható 1,5 0,5 a t ábra. A ábrán látott idősor Haar-függvény segítségével képzett wavelet transzformáltja gyük elsőként a értékét állandónak, majd b-t folyamatosan változtatva rögzítsük, menynyire hasonlít wavelet-ünk az eredeti függvényhez. Ezzel nem teszünk mást, mint a wavelet-et eltoljuk a függvény mentén, és minden eltolási pontban meghatározunk egy számot, ami a wavelet és a függvény adott részének hasonlóságát méri. Ez lesz az első dimenziónk. Ezután módosítsuk a értékét ezzel megnyújtjuk a függvényt és számoljuk újra a hasonlóság értékeit b-t folyamatosan változtatva. Ezt a folyamatot néhányszor megismételve egy domborzati felületet kapunk, ami az egyes időpontokhoz tartozó együtthatók értékeit ábrázolja (8.21. ábra). A gyakorlatban azonban inkább ennek az ábrának a felülnézeti képét használjuk, hiszen a színerősség képes jelezni számunkra az együttható nagyságát. Igaz, ez a módszer rendkívül látványos eredményt hoz, de rengeteg számítást és helyet igényel, ezért más módszert kell keresni. Stéphane Mallat [149] mutatta be azt az elvet, amit a transzformáció diszkrét változatánál használni fogunk. A wavelet-ünk segítségével állítsunk elő két szűrőt. Ezekkel válasszuk szét jelünket alacsony és magas frekvenciájú összetevőkre úgy, hogy a kapott jelek az eredeti jel hosszának felét érjék csak el. Az alacsony frekvenciájú komponensen ezután folytassuk a szűrést. Az együtthatók értékét a magas frekvenciájú jelek fogják tartalmazni. 338
347 8. FEJEZET: IDŐSOROK ELEMZÉSE Példa. A következőkben megnézzük, hogyan lehet a legegyszerűbb wavelet transzformáció, a Haar-transzformáció segítségével kiszámolni egy idősor indexeit. Ahhoz, hogy a transzformációt alkalmazni tudjuk, idősorunk elemszámának 2 valamelyik hatványának kell lennie. Ha idősorunk nem ennyi elemből áll, kiegészíthetjük 0-kkal, vagy elhagyhatjuk idősorunk elejéről vagy végéről a transzformációval nem kezelhető elemeket. Az egyszerűség kedvéért a következőkben egy nyolc elemből álló idősoron fogjuk végrehajtani a transzformációt: y = [8, 4, 0, 4, 3, 3, 0, 2] Idősor hossza Átlagok Együtthatók 8 [8, 4, 0, 4, 3, 3, 0, 2] 4 [6, 2, 3, 1] [2, 2, 0, 1] 2 [4, 2] [2, 1] 1 [3] [1] A Haar-transzformáció során minden lépésben vesszük az idősor két egymás melletti elemének az átlagát és a különbségük felét. Az utolsó átlag és a különbségek lesznek transzformációnk együtthatói. Ha belegondolunk, nem csináltunk mást, mint megalkottuk a két szűrőnket: az aluláteresztő szűrőnek megfelel az átlagok számítása, míg a finom mozgásokért felelős felüláteresztő szűrőt a különbségképzés jelenti. Az idősorunkat tehát a következő együtthatók jellemzik: [3, 1, 2, 1, 2, 2, 0, 1]. Ha vissza akarjuk állítani idősorunkat, nem kell mást tennünk, mint a táblázat utolsó sorából elindulva az átlaghoz hozzáadni, majd kivonni belőle a megfelelő együttható értékét: [4, 2] = [3 + 1, 3 1], [6, 2, 3, 1] = [4 + 2, 4 2, 2 + 1, 2 1], stb. Ha elhagyjuk az utolsó négy együtthatót, akkor az első négy együtthatóból az eredeti idősorunkhoz elég jól közelítő idősort kapunk, melyben az értékek az eredeti idősor egymást követő két elemének átlagai. Az indexelés során az első elemet az együtthatókból elhagyhatjuk, ha az idősorok ordináta melletti eltolását kompenzáltuk. Ha viszszaemlékezünk, ekkor nem csináltunk mást, mint az idősor minden eleméből kivontuk az idősor átlagát. Az első együtthatónk pedig az idősorok egészének egymástól való eltérését mutatja, azaz az eltolás kompenzációjával ezt az eltérést szüntetjük meg. A Haar-transzformáció megvalósítható mátrixszorzások sorozataként is. Egy négyelemű idősor esetén tekintsük a következő lineáris egyenletrendszert: x 0 e 0 x 1 e 1 = x 0 x 1 x 2 x 3, 339
348 8.6. INDEXELÉSI LEHETŐSÉGEK ahol [x 0, x 1, x 2, x 3 ] a transzformálandó idősorunk, e 0 és e 1 az utolsó két együttható értékei, x 0 és x 1 pedig az átlagok értékei, melyeken újra elvégezzük a mátrixszorzást. Ekkor mátrixunkat a [x 0, x 1, 0, 0] oszlopvektorral szorozzuk, vagy a mátrixunk jobb felső 2 2 elemével szorozzuk meg [x 0, x 1 ]-et. Többelemű idősor esetén a mátrixunk átlójában ugyanígy a 2 2-es, [1, 1; 1, 1] elemeket tartalmazó négyzetes alapmátrixok találhatók Példa. Tekintsük az előző példánkban az első átlag számítása során kapott 4 elemű idősort [6, 2, 3, 1] és végezzük el a Haar-transzformációt a mátrixszorzás segítségével. x 0 = 4 e 0 = 2 x 1 = 2 e 1 = 1 = A két utolsó együtthatónk tehát [2, 1], a következő lépésben pedig az újonnan kapott, immár az eredeti hosszának fele hosszúságú idősoron folytatjuk a transzformációt. ( x 0 = 3 e 0 = 1 ) = 1 ( )( 4 2 Az újonnan kapott értékek közül x 0 lesz idősorunk átlaga, egyben első együtthatónk, e 0 pedig a második együtthatónk. ) Ahhoz, hogy a két idősor Euklideszi távolsága megegyezzen a két idősor Haar - transzformáltjának együtthatóinak távolságával, mindössze annyi a dolgunk, hogy a transzformáció mátrixának együtthatóját 1/2-ről 1/ 2-re cseréljük. Ha azután az együtthatók első néhány tagját tartjuk meg, akkor az így kapott rövidebb idősorok távolsága minden esetben alulról becsli az eredeti idősorok Euklideszi távolságát. A GEMI- NI keretrendszer kapcsán már láthattuk, az indexeléshez bizonyítani kell, hogy a wavelet transzformáltak terében a távolságok alulról becslik az idősorok terében vett távolságot. Ezt a bizonyítást K. Chan és W. Fu mutatták be[148]. A wavelet-ekről és felhasználási módjaikról bővebb információt találhatunk a honlapon. 340
349 8. FEJEZET: IDŐSOROK ELEMZÉSE Indexelés DTW-vel A DTW előnyeit látva jogosan merül fel, hogy miért nem ehhez próbálunk meg egy indexelési eljárást alkotni ahelyett, hogy az idősorok távolságmértékeként a számunkra nem mindig az optimális eredményt adó Euklideszi-távolsághoz mutatunk be különböző indexelési metódusokat. Nem véletlen, hogy sokáig nem született idővetemítésre épülő helyes eljárás. A dinamikus idővetemítés nem teljesíti a háromszög egyenlőtlenséget [139], így a közvetlen indexelése még rövid idősorok esetén sem megoldható Példa. Legyenek idősoraink a következőek: x = [0], y = [1, 1], z = [1, 1, 1]. A háromszög-egyenlőtlenég szerint két elem távolsága minden esetben kisebb vagy egyenlő annál, ha egy harmadik elemet is érintünk a két elem közötti út során. Ez a fenti idősorokra azonban nem teljesül: d DTWmin (x,z) = 3 d DTWmin (x,y) + d DTWmin (y,z) = = 2 Ahhoz, hogy indexelhetővé tegyük az idővetemítést, szükségünk van egy olyan függvényre, mely az eddigiek szellemében alulról közelíti a DTW-vel kapott távolságot, és teljesíti a háromszög egyenlőtlenséget is. Emellett idősorainkat is össze kell tömöríteni olyan mértékben, ami már kezelhető valamilyen térbeli adatelérési módszerrel. Az első bemutatott DTW indexelési módszer [150] alapján ez a tömörített idősor a következő: Y = (Y 1,Y n,max(y ),min(y )) (8.32) Vagyis kiválasztjuk az idősorunk első, utolsó, legkisebb és legnagyobb elemét. A felhasznált távolságfüggvény az indexelt térben az alábbi: Y 1 X 1 Y d DTWak (X,Y ) = max n X n max(y ) max(x) min(y ) min(x) (8.33) A számolás gyorsítása érdekében az idősorok dinamikus idővetemítéssel mért távolságánál a Minkowski távolságok azon fajtáját használjuk, ahol p. Ez az indexelés bár nagymértékben képes gyorsítani a legközelebbi elem/elemek keresését, de számos hiányossággal küzd. Az első, hogy az indexelt térben egy idősort minden esetben négy 341
350 8.6. INDEXELÉSI LEHETŐSÉGEK elem ír le, így nem tudunk élni a különböző indexelés módszereink azon tulajdonságával, hogy több dimenziót használjunk a pontosabb közelítés érdekében. A második, hogy a használt alsó korlát nem közelíti eléggé az eredeti idősorok idővetemítéssel kapott távolságát. Ezért nem is említettük meg a szekvenciális keresés gyorsításánál, hiszen nem közelíti elég jól az eredeti idősorok idővetemítéssel mért távolságát. A DTW indexelésének egy másik megközelítése [151] az idővetemítés bemutatásakor látott dimenzió-csökkentési eljárásra és a globális megszorításokat használó alsó korlátra épül. Első lépésként az idősorokat tömörítjük az említett eljárással. Az indexelési módszereink jól használhatóak dimenzióig, így idősorainkat is érdemes ilyen hosszúságúra tömöríteni. Ezután a már megszokott módon szükségünk van egy távolságmértékre az indexelt terünkben. E technika a könyv honlapján ismertetett határoló görbéken alapul, így részletes ismertetése is kötetünk elektronikus mellékletében található. Az indexelés segítségével tehát lehetőségünk nyílik a nagyszámú idősort tartalmazó adatbázisokban való gyors keresésre. Nem szabad elfelejtenünk azonban itt sem azt a megállapításunkat, miszerint nincs egyértelműen legjobb módszer. Ezért, ha lehetőségünk van rá, érdemes kipróbálni a különböző indexelési eljárások hatékonyságát adatbázisunk egy reprezentatív mintáján, majd ezután kiválasztani a megfelelőt. Természetesen nem csak ez a négy fajta indexelési eljárás létezik, így a legjobb megoldás megtalálása időigényes feladat. 342
351 9. fejezet Szövegbányászat 9.1. A szövegbányászat feladata Az írástudó emberi civilizációk kialakulása óta a tudást szöveges dokumentumok formájában tárolják. Az ősi egyiptomiak is szöveges dokumentumokat hagytak az utókorra, azonban hieroglifikus írásuk megfejtése korántsem bizonyult könnyű feladatnak. A szöveg megértését végül az segítette elő, hogy a feliratok több nyelven szerepeltek ugyanazon a kövön, amelyek közül az egyik görög volt, a másik kettő pedig egyiptomi. Ezáltal a görög nyelv szolgált kulcsként a hieroglifák megfejtéséhez, ez segített a templomok és piramisok falán és a papirusz tekercseken talált szövegekben lévő tudás feltárásában. Az ősi egyiptomi hieroglifák megfejtéséből két dolgot tanulhatunk: egyrészt, hogy a szöveges dokumentumok az emberiség egyik ősi emlékezeti mechanizmusa, ezért fontos megbízhatóan tárolni az adatokat, és rendelkezni kell azzal a képességgel, hogy ha szükséges, visszanyerjük ezeket a dokumentumokat. Másrészt azt, hogy a dokumentumok szimpla elérése nem elegendő, a tudás feltárása speciális gyakorlatot és erőforrást igényel. Napjainkban, amikor a dokumentálási és adminisztrációs folyamatok túlnyomó része elektronikusan valósul meg és ezáltal rendkívül nagy mennyiségű elektronikus dokumentum keletkezik, megfigyelhető az a trend, hogy az adminisztratív munkát végzők munkaidejük egyre növekvő hányadát fordítják (elektronikus) dokumentumok kezelésére. Míg ez csupán 20%-ot tett ki 1997-ben, addigra 2003-ban már 30 40%-ra becsülték ezt az arányt az [152, 153] munkákban idézett Gartner Group tanulmányban. A Merill Lynch elemzői szerint az üzleti információk 85%-a strukturálatlan adat formájában van jelen, mint például ek, emlékeztetők, üzleti és kutatási beszámolók, prezentációk, hírek, reklámanyagok, weboldalak, ügyfélszolgálati tevékenység jegyzetei stb. [152]. 343
352 9.1. A SZÖVEGBÁNYÁSZAT FELADATA 9.1. ábra. A szövegbányászat általános modellje Az adatbányászati módszerekkel az adatbázisokban strukturáltan tárolt adatokból nyerhetők ki összefüggések. Ezek a módszerek nem működnek a strukturálatlan, általános típusú, szöveges adatokra. Ezért a strukturálatlan szöveges adathalmazok hasonló célú feldolgozása más megoldásokat tesz szükségessé. Az ezzel foglalkozó szakterületet szövegbányászatnak nevezzük. Az adatbányászat definíciójával analóg módon, a szövegbányászatot dokumentumokon végzett olyan jellegű feldolgozási és elemzési tevékenységként határozhatjuk meg, melynek célja a dokumentumokban rejtetten meglévő új informáciok feltárása, azonosítása. A szövegbányászat alapvető problémája nyilvánvaló: a természetes nyelvek emberek közötti elsősorban szóbeli, majd később írásbeli kommunikáció céljára alakultak és fejlődtek ki, és nem számítógépes feldolgozásra. Az emberek könnyedén felismerik és alkalmazzák a nyelvi mintákat, és általában nem okoznak gondot nekik olyan, a számítógépek számára nehezen megoldható feladatok, mint például különböző helyesírási variációk kezelése, kontextus felismerés vagy stilisztikai jelleg azonosítása. Tehát nyelvi tudásunk lehetővé teszi a strukturálatlan szövegek megértését, ugyanakkor nincs meg bennünk a számítógépeknek az a képessége, hogy a szöveget nagy mennyiségben vagy nagy sebességgel dolgozzuk fel. A szövegbányászat általános célja tehát az emberi nyelvi tudás ötvözése a számítógép nagy sebességével és pontosságával [154]. A szövegbányászat általános modellje a 9.1. ábrán látható. A kiinduló pont a dokumentumok halmaza, amin először előfeldolgozási lépéseket hajtunk végre (ld szakasz). Ezután hajtjuk végre a szövegbányászati módszereket, majd az eredményeket információkezelő rendszerben tároljuk. A felhasználó ebből tudja az igényeinek megfelelő tudást megszerezni. Olyan problémákkal, amelyekre a szövegbányászat nyújthat megoldást, az üzleti élet szereplői és az átlagos felhasználók egyaránt gyakran találkoznak. Például a nagy forgalmat lebonyolító ügyfélszolgálatoknál hatalmas mennyiségű ügyféllel történő beszélgetés zajlik naponta. Ezek jellemző tartalma, fontosabb témái, az ügyfélkör igényeinek változása a szolgáltatónak fontos információt jelent, amellyel hatékonyan reagálhat a piac változásainak kihívásaira. Szintén fontos információt hordozhat üzleti döntéshozók számára a konkurens cé- 344
353 9. FEJEZET: SZÖVEGBÁNYÁSZAT gekről, illetve termékekről szóló üzleti hírekről szóló automatikus értesítés. Az átlagos felhasználók közül is mindenki szembesült már a kulcsszó-alapú keresés korlátaival. Ha többértelmű keresőkifejezést használunk a tipikus példák: jaguár (állat, autómárka), saturn (bolygó, elektronikai cég, autótípus), tus (zuhany, írószer, vívás, zene) 1, akkor a keresés finomítására van szükség a kívánt információ elérésére. Ha a kontextus megadható lenne, vagy a keresett oldalak tematizáltan lennének tárolva, akkor az jelentősen megkönnyítené a keresést. A keresők gyakran adnak eredményül nagyméretű, akár több száz oldalas dokumentumokat, amelyek több témát is tárgyalnak, és nem feltétlenül relevánsak a kereső számára. Ahhoz, hogy a felhasználó megtalálja a neki fontos információt, bele kell mélyednie a szövegbe, ami rendkívül időigényes. Erre a problémára a szövegbányászat az összegzéskészítő módszereket kínálja megoldásként, amelyek automatikusan összefoglalják a dokumentum tartalmát, aminek alapján a felhasználó már könnyebben tájékozódhat. Az eddig ismertetett példák csak ízelítőt nyújtanak a szövegbányászat már létező és jövőbeli felhasználásairól. Mielőtt a következő szakaszokban mélyebbrehatóan elkezdünk foglalkozni a témával, a 9.1. táblázatban összefoglaljuk a szövegbányászat alapvető ismérveit összehasonlítva az adatbányászattal Dokumentumok előfeldolgozása Mint azt a 9.1. ábrán láttuk, a szövegbányászati feladatok megoldásának első lépése a szövegek előfeldolgozása, aminek célja, hogy megfelelő, egységes gépi reprezentációs alakra hozzuk őket. Egy teljesen általános szövegreprezentációs modellnek rendkívül széleskörű tudást kellene magában foglalnia, többek között például a természetes nyelvtanokat is. Első megközelítésben azonban csak statisztikai elemzések elvégzésére alkalmas modellt keresünk, amelyben a gépi tanulás algoritmusai hatékony alkalmazhatók, mint például az adatbányászat esetében a korábbi fejezetekben ismertetett módszerek. Mivel a szövegeket a számítógép nem tudja értelmezni, ezért szükség van egy olyan eljárásra, amely a szövegek tartalmát tömören reprezentálja, és amely természetesen bármely dokumentumra alkalmazható. A továbbiak során ha ettől eltérően nem jelezzük a reprezentáció egységének a szavakat tekintjük. Egyes módszerek több szóból álló kifejezésekkel is dolgoznak, ez azonban jelentősen megnöveli a dokumentumok feldolgozásának (indexelésének) idejét, és a tárolásukhoz szükséges helyet. Az információ-visszakeresés (information retrieval IR) területén a dokumentumokat leggyakrabban a vektortér-modell segítségével reprezentáljuk [155]. A dokumentu- 1 Érdekes, hogy a nemzetközi keresők erre a keresőszóra a nyomtatóval kapcsolatos cikkeket is találnak a tűs szó ékezetnélküli reprezentációja miatt. A példa jól mutatja: a hatékony szövegbányászati alkalmazások bizonyos részben nyelvfüggők. 345
354 9.2. DOKUMENTUMOK ELŐFELDOLGOZÁSA 9.1. táblázat. Az adat- és szövegbányászat összehasonlítása ([153] felhasználásával) adatbányászat szövegbányászat az elemzés tárgya numerikus és típusba sorolható szabadformátumú szöveges dokumentum az adatok jellege strukturált strukturálatlan az adatok tárolási (relációs) adatbázis tetszőleges dokumentumgyűjtemény helye feladat összefüggések feltárása, jövőbeni szövegelemzés, kategorise szituációk előrejelzézálás; összegzéskészítés; vizualizálás; csoportosítás, stb. módszerek neurális hálózatok, döntési dokumentum indexelés, fák, statisztikai model- speciális neurális hálózatok, lek, klaszteranalízis, idősorok számítógépes nyelvészeti elemzése, stb. eszközök, ontológiák a piac mérete jelenleg a világon elemző a nagy és közepes vállalatoknál vállalati munkatárs és egyéni felhasználó széleskörű piaci 1994-től 2000-től megjelenés ideje mokat szintaktikai szabályok segítségével felbontjuk tokenekre (legegyszerűbb esetben a szóköz elválasztó karakter alkalmazásával; ekkor a tokenek szavak), és a tokeneket szótövező segítségével kanonikus alakra hozzuk, azaz a szavakat a szótővel helyettesítjük (ld. még szakasz). Az egyszerűség kedvéért a továbbiakban a kanonikus alakot szónak nevezzük. A dokumentumgyűjteményben előforduló különböző szavak alkotják a szótárat vagy más néven lexikont. A szavak által kifeszített vektortérben minden tengely egy szót reprezentál, a dokumentumokat pedig vektorként ábrázoljuk. A dokumentumok gyűjteményét szó dokumentum mátrixszal reprezentáljuk (A R M N ). A mátrix a i j eleme az i-edik szó előfordulásait reprezentálja a j-edik dokumentumban. Vagyis az i-edik tengelyhez tartozó szó relevanciáját, súlyát adja meg a j dokumentumra vonatkozóan. A sorok száma, M, megegyezik a szótár méretével, N pedig a dokumentumok száma. Mivel általában egy dokumentumban az egész szótárból kevés szó fordul elő, az A mátrix ritka. M rendkívül nagy is lehet, ebből adódóan a szövegek kezelésének egyik problémája a vektortér magas dimenziója. A dimenziószám csökkentésére vonatkozó módszereket a pontban tekintjük át. 346
355 9. FEJEZET: SZÖVEGBÁNYÁSZAT Az a i j érték megválasztására több lehetőség van. A legegyszerűbb a bináris reprezentáció: { 1, ha n i j > 0 a i j = 0, ha n i j = 0, (9.1) ahol n i j az i szó előfordulásának száma (másképpen támogatottsága) a j dokumentumban. A támogatottság értékét az adott szó fontosságának reprezentálására is hasnzálhatjuk: a i j = n i j. A dokumentumokat reprezentáló vektorokat normálhatjuk, hogy hosszuk 1 legyen, például az 1, 2 vagy norma szerint. Ha 1 -t választjuk, akkor az előbbi érték a i j = n i j /n = f i j (9.2) lesz, ahol f i j a szó dokumentumbeli gyakoriságát (frekvenciáját) jelöli (TF súlyozás). A (9.2) súlyozási séma azonos fontosságúnak kezeli az összes szótárbeli szót, holott nyilván a témaspecifikus szavak, mint például adatbányászat jellemzőbbek egy dokumentum tartalmára, mint a névelők, határozók, névutók, stb., például az, hogy, alatt. Ha i szó n i dokumentumban fordul elő, akkor n i /N a szó ritkaságát, azaz fontosságát jellemzi a gyűjteményben. Az IDF(i) = 1 + log(n i /N) inverz dokumentum frekvencia 2 értéke a vektortér-modell egyes tengelyeit különböző mértékben nyújtja meg. Így kaphatjuk meg a legnépszerűbb, ún. TFIDF 3 súlyozási sémát: a i j = f i j IDF(i). (9.3) Ezen kívül más, bonyolultabb súlyozási sémák is ismertek, amelyek a dokumentumok hosszát, illetve az egyes szavak információ elméleti alapon számított entrópiáját is figyelembe veszik [156, 157, 158] A dimenziószám csökkentése Már kisebb dokumentumgyűjtemények esetén (néhány tízezer dokumentum) a szótár mérete jellemzően többszázezres nagyságrendű, amellyel általában az algoritmusok nagy része nem tud megbirkózni a nagy számítási és memória igény miatt. Ha csak átlagosan 1000 különböző szót tartalmazó dokumentumunk van, annak hatékony tárolása is legalább = 0,2 GB memóriát igényel. A szótár méretének a csökkentése tehát kiemelkedő fontosságú feladat, hiszen ezzel mind a gyűjtemény reprezentálásához 2 IDF-nek több definíciója létezik. Egy alternatív verzió: IDF(i) = log(n/n i ). 3 terminus frekvencia és inverz dokumentum frekvencia 347
356 9.2. DOKUMENTUMOK ELŐFELDOLGOZÁSA szükséges memória 4, mind pedig az algoritmusok futási igénye csökkenthető. A dimenziószám csökkentése a mintafelismerés (pattern recognition) szakirodalmában jól ismert feladat. Az ismert eljárások két csoportba sorolhatók: jellemzők kiválasztása és újraparaméterezés. Szövegbányászati alkalmazásukat a [159] tanulmány tekinti át. A jellemzők kiválasztása A legegyszerűbb eljárások az alábbi két empirikus megfigyelésen alapulnak: Minél több dokumentumban szerepel egy szó, annál kisebb mértékben jellemzi a dokumentumok tartalmát, azaz annál kisebb a megkülönböztető képessége és az információtartalma. Minél ritkábban fordul elő egy szó az adott dokumentumgyűjteményen belül, annál kevésbé releváns. A fenti megfigyelések alapján a dokumentum frekvencia küszöbölő (Document Frequency Thresholding) módszer elhagyja a θ 1 küszöbérték alatti frekvenciával rendelkező szavakat, és a θ 2 küszöbérték feletti n i értékkel rendelkező szavakat. A módszer azzal a feltételezéssel él, hogy az első kategóriába eső szavak kicsiny információ tartalmúak, és nem befolyásolják jelentősen például a kategorizálás hatékonyságát, míg a második kategóriába eső szavak nem diszkriminatívak. Ide sorolható még az ún. funkció szavak elhagyása (angolul pl: the, an, in, today, stb.) 5 is, amely szavak a szöveg tartalmára vonatkozóan nem bírnak jelentős információtartalommal. A funkció szavak listája nyilván minden nyelven más, de akár a dokumentumgyűjtemény témájától és általánosságától is függhetnek [160]. Kategorizálásnál használnak még a szavak és kategóriák együttes előfordulásából becsült információ elméleti és statisztikai mértékeket. Az információs nyereség módszer esetén minden szóra megvizsgálják, hogy van-e olyan kategória, amelyben az előfordulása vagy elő nem fordulása kiugró. Valamely szó esetén minden kategóriára összegezzük az így kapott értékeket, és ha a szumma egy küszöbértéket nem ér el, akkor a szót, mint csekély megkülönböztető képességel bírót elhagyjuk. Hasonló elven működik a kategóriák és szavak közti függetlenség hiányát vizsgáló χ 2 -statisztikán alapuló módszer [156]. Újraparametrizálás Az újraparametrizálás során új jellemzőket állítunk elő a vektortér eredeti jellemzői (dimenziói) kombinációiként. A legismertebb ilyen módszer a szinguláris értékfelbontá- 4 Bizonyos tanulási feladatokhoz, például kategorizálás esetén, az egész gyűjteményt a memóriában kell tárolni. Ha ez csak lapozófájl alkalmazásával lehetséges, az jelentősen meghosszabbítja a futási időt. 5 Angol szakirodalomban function words vagy stopwords. 348
357 9. FEJEZET: SZÖVEGBÁNYÁSZAT son (SVD) alapuló látens szemantikus indexelés (LSI) [161, 162]. Az LSI módszer feltételezi, hogy a dokumentumok szóhasználati mintázatában létezik egy elrejtett, azaz látens struktúra, és hogy ezt statisztikai módszerekkel közelíteni lehet. A sajátérték-felbontáson alapuló SVD segítségével kiválaszthatók azok a valamely legnagyobb K sajátértékhez tartozó jellemzők, melyek az A szó dokumentum mátrixot kellően jól reprezentálják. A K értéke lényegesen kisebb M-nél. Az LSI azokat a dokumentumokat, amelyek sok hasonló szót tartalmaznak, szemantikailag közelinek, és azokat, amelyek kevés közös szót tartalmaznak, szemantikailag távolinak értékeli. Ez az egyszerű módszer meglepően jól korrelál azzal, ahogy egy ember, aki a dokumentumot átnézi, besorolja az adott dokumentumgyűjteményt. Annak ellenére, hogy az LSI algoritmus algebrai módszert használ, tehát nem ért semmit a szavak jelentéséből, meglepően jó szemantikai következtetésekre ad lehetőséget, azaz rendkívül intelligensnek tűnik Hatékonyság mérése Különböző jellegű szövegbányászati módszerek hatékonyságát más-más kiértékelő mértékkel vizsgáljuk. Természetesen a hatékonyság mérésére csak akkor van lehetőség, ha rendelkezésre áll a várt eredmény, ami csak bizonyos szövegbányászati módszerek esetén lehet adott, például kategorizálásnál. Ekkor ugyanis, ha olyan dokumentumgyűjteményen teszteljük a módszert, ahol az egyes dokumentumok kategóriája ismert, akkor könnyen ellenőrizhetjük a módszer helyességét. Ezzel szemben például kivonatolás esetén nehéz egy optimális eredményt összehasonlítási alapnak tekinteni, amely bárki szerint az adott szöveg legjobb kivonata, mivel a kivonat emberi megítélése szubjektív. Ezért ilyen esetekben csak tapasztalati, heurisztikus módszerek vannak a hatékonyság mérésére, illetve a különböző eredmények összehasonlítására, rangsorolására. A különböző feladattípusokhoz tartozó mértékeket az adott szakaszon belül fogjuk tárgyalni Osztályozás Az adatbányász módszerek jellemzően relációs adatbázisokon működnek, ahol az adatok strukturáltan, oszlopokba és sorokba rendezve vannak tárolva. Hasonló módon lehetőség van a strukturálatlan adatok hierarchikus struktúrába, ún. taxonómiába való rendszerezésére is. A taxonómia úgy működik, mint egy számítógépes könyvtárstruktúra, ami kézenfekvő és intuitív eszközt ad a navigálásra és az információk elérésére, keresésére [152]. A dokumentumok tartalmuk alapján tematikus kategóriarendszerbe (kategóriákba) történő besorolását osztályozásnak (más néven kategorizálásnak) nevezzük, ami az egyik legalapvetőbb szövegbányászati feladat. A kategóriák rögzítettek és előre adottak. A 349
358 9.3. OSZTÁLYOZÁS kategóriák egymáshoz való viszonya alapján beszélhetünk egyszerű osztályozásról ilyenkor nincs semmilyen összefüggés az egyenrangú kategóriák között, illetve hierarchikus osztályozásról amikor a kategóriák egy strukturált rendszert, általában fát vagy körmentes irányított gráfot alkotnak. Ebben az értelemben a taxonómia tehát kategóriák hierarchikus rendszere. Az üzleti alkalmazásokban azonban két ok miatt még nem túl elterjedt a dokumentumok taxonómiába rendezése. Egyrészt a taxonómia megalkotása és fenntartása nehéz feladat. Olyan szakértőt kíván, aki átlátja az egész cég üzleti szervezetét, és rendszerező képességgel bír. A taxonómia mérete igen nagy lehet, akár több ezer kategóriát is tartalmazhat. 6 Egy cég profiljának, termékeinek változása a taxonómia változtatásának szükségességét is magával vonja, ami szintén időigényes és költséges feladat. Egyébként az automatikus taxonómiakészítő módszerek csak az utóbbi években kezdtek megjelenni a piacon (Verify, Stratify, Inxight, Autonomy). A másik nagy akadályt a piacon lévő szoftverek osztályozási szempontból gyenge hatékonysága jelenti. Ez részben annak tudható be, hogy viszonylag egyszerű algoritmusokat alkalmaznak az általános feladat nehézségéhez képest, részben pedig annak, hogy ezek az algoritmusok jelentős számú tanulóadatot igényelnek, és amelynek létrehozására az üzleti felhasználó nem szán elég időt Osztályozás strukturálatlan kategóriák rendszerébe Az osztályozási feladatok között a dokumentum kategória reláció jellegétől függően az alábbi megkülönböztetést tesszük: Bináris osztályozásnak nevezzük, amikor csak egy kategória adott, és a dokumentumokról azt kell eldönteni, hogy ebbe beletartoznak-e vagy sem. Egycímkés osztályozás (multi-class) esetén több kategória adott, és minden dokumentum legfeljebb egy kategóriába tartozik. Többcímkés osztályozás (multi-label) esetén szintén több kategória adott, de minden dokumentum több kategóriába is beletartozhat. Többszintű osztályozás (multi-level) esetén szintén több kategória adott, és egy dokumentumnak lehetnek elsődleges, másodlagos stb. kategóriái. 7 Az automatikus osztályozás tipikus felügyelt tanulási feladat (supervised learning), amikor megadott tanuló példák alapján az osztályozót képessé tesszük arra, hogy felismerje az egyes osztályokba tartozó dokumentumok jellegzetességeit. Adott tehát egy 6 Erre jó példa a nemzetközi szabadalmi hivatal által kifejlesztett IPC taxonómia: wipo.org/classifications/fulltext/new_ipc/index.htm 7 A többszintű osztályozás esetén a feladat általában hierarchikus kategóriarendszerrel párosul, ezért bár strukturálatlan kategóriarendszer esetén is értelmezhető a probléma ezt a pontban tárgyaljuk. 350
359 9. FEJEZET: SZÖVEGBÁNYÁSZAT tanuló dokumentumhalmaz, ahol a dokumentumok a kategóriájukkal fel vannak címkézve. Az algoritmus először ez alapján megtanulja a kategóriák jellemzőit, majd ismeretlen kategóriájú dokumentumok címkéjére ad becslést. A fenti osztályozási feladatok elvégzésére az 5. fejezetben ismertetett eljárások döntési fák [163, 3. fejezet], naiv Bayes modell [164, 165], k-legközelebbi szomszéd technika [166], neurális hálók [167, 168], szupport vektor gépek [169, 170], stb., valamint egyéb módszerek Rocchio-eljárás [171], szavazásos osztályozás [172, 173, 174, 175] alkalmazhatóak, amelyeket itt terjedelmi megszorítások miatt nem ismertetünk részletesen. Az érdeklődő Olvasó részletes betekintést nyerhet a témába a referenciákból, illetve a [156, 176] áttekintő munkákból Hierarchikus osztályozás Egyszerű szövegosztályozás esetén a dokumentumok számának növekedése, és a lefedett témakörök sokfélesége átláthatatlan méretű kategóriarendszert eredményezhet. Ezt a problémát a kategóriák hierarchizálásával, azaz taxonómiába rendezésével könnyen át lehet hidalni. Ennek bevezetése az osztálystruktúra átláthatósága mellett algoritmikusan hatékonyabb eljárások alkalmazását is lehetővé teszi. A teljes taxonómián való osztályozási problémát az algoritmusok kisebb osztályozási feladatokra bontják úgy, hogy a taxonómia minden belső csomópontjához rendelnek egyet. Általában a mohó algoritmust vagy annak valamilyen gyengített változatát használják. Ez az algoritmus egy taxonómia egy adott csomópontjában megvizsgálja, hogy az aktuális dokumentum annak melyik gyerekkategóriájába tartozik leginkább, majd e kiválasztott kategóriából kiindulva rekurzívan folytatódik és terminál, ha levélhez ér. A naiv Bayes-módszert alkalmazza hierarchikus osztályozásra a [177] munka, ahol a kevés tanulóadattal rendelkező levélkategóriák paramétereit (szóelőfordulások aránya) az ún. shrinkage (apadás) statisztikai simító eljárás segítségével határozza meg a szülő kategóriák megfelelő adatait felhasználva. A módszer segítségével a mohó algoritmus egyik jellegzetes hibája ti. hogy a taxonómia felső szintjén elkövetett osztályozási hibát már nem lehet korrigálni nagy részben kiküszöbölhető. A neurális hálózatok architektúrájának és a taxonómiáknak strukturális hasonlósága kézenfekvővé teszi a neurális hálózatok alkalmazását hierarchikus osztályozás esetén. A HITEC 8 [178] osztályozó egy ismeretlen d dokumentum kategorizálásánál a taxonómia gyökeréből indulva szintenként határozza meg a legvalószínűbb kategóriát, azaz minden szintet a neurális háló egy rétege reprezentál. A végeredményt a javasolt kategóriák bizonyossági értékkel ellátott rendezett listájaként a levélkategóriák szintjén kapjuk. Az eljárás két paraméter alkalmazásával bővíti az egy szinten kiválasztott kategóriák körét, hogy a mohó jellegű következtetés előző bekezdésben jelzett hibáját
360 9.3. OSZTÁLYOZÁS kiküszöbölje. Az egyikkel a kiválasztott kategóriák száma adható meg, a másikkal pedig az, hogy a kiválasztott kategóriáknál a legjobbtól való mekkora eltérés engedhető meg. Hatékonyságmérés Taxonómiába való osztályozáskor több lehetőség van a hatékonyság mérésére a taxonómia kialakításától függően. Amennyiben a dokumentumok csak levélkategóriákba vannak besorolva, akkor az egyszerű osztályozásnál ismertetett mértékeket lehet alkalmazni a levélkategóriák összességére (ld fejezet). Ez azonban némileg félrevezető eredményt is adhat, hiszen általában kevésbé rossz az az osztályozási következtetés, amely egy levélkategória helyett annak testvérét találja meg (tehát a szüleik közösek), mint az, amelyik a kategóriarendszer teljesen más ágához rendeli a dokumentumot. Ha egy dokumentumot nemcsak a levélkategóriához tartozónak tekintünk, hanem annak összes szülőjéhez is hozzárendeljük 9, akkor pontosabb képet kaphatunk az osztályozás értékelésekor, feltéve ha a teljes tehát nem csak levélszintű kategóriákra taxonómiára számoljuk a pontosság, felidézés, F-mérték értékeit. Különösen indokolt ez akkor, ha vannak olyan dokumentumok, amelyek a taxonómia közbenső csomópontjaihoz vannak rendelve. Valamelyest leegyszerűsítve az algoritmusok általában a hierarchikus osztályozást a taxonómia csomópontjaira dekomponált egyszerű osztályozási feladatok sorozataként oldják meg. Ezért a taxonómiába egyre lejjebb jutva, az osztályozási hibák összeadódnak, és egyre kevésbé lesz pontos az eredmény. Ez a tendencia jól megfigyelhető, ha a szokásos mértékeket (pontosság, felidézés, F-mérték) szintenként számítjuk ki. Hierarchikus osztályozás esetén gyakran találkozunk a többszintű osztályozás problémájával, amikor tehát egy dokumentumnak vannak elsőrendű, másodrendű stb. kategóriái. Itt a kétszintű osztályozás esetével foglalkozunk 10. A szakirodalom az egyszerű osztályozástól eltérő mérőszámokat javasol a hatékonyság mérésére erre az esetre, amelyeket például szabadalmi teszt-dokumentumgyűjteményeknél használnak ki [179] (ld ábra). 1. Top: Az osztályozó által legnagyobb konfidencia-értékkel meghatározott kategóriát hasonlítja a dokumentum elsődleges kategóriájához. 2. Top 3: Az osztályozó által javasolt három legnagyobb Konfidencia-értékkel bíró kategóriát hasonlítja a dokumentum elsődleges kategóriájához. Ha a három közül valamelyik talál, akkor az osztályozás sikeresnek számít. 9 A kategóriák sorozatát ekkor kategóriaösvénynek nevezzük. 10 Természetesen a taxonómia szintjeinek számára nem teszünk megkötést. 352
361 9. FEJEZET: SZÖVEGBÁNYÁSZAT Top Top 3 Any A B A B A B 1 mc 1 mc 1 mc 2 ic 2 ic 2 ic 3 ic 3 ic 3 ic 9.2. ábra. Magyarázat a többszintű osztályozásnál alkalmazott mértékekhez (mc fő kategória; ic egyéb kategória; A osztályozó eredménye; B eredeti érték) [179] 3. Any: Az osztályozó által legnagyobb konfidencia-értékkel meghatározott kategóriát hasonlítja a dokumentumhoz tartozó összes (elsődleges, másodlagos) kategóriákkal. Ha valamelyikkel megegyezik, akkor az osztályozás sikeresnek számít Dokumentumok csoportosítása Ahogy azt az adatbányászati rész vonatkozó fejezete is kiemeli (ld. az 5.1. szakaszt a 185. oldalon), a csoportosítás, avagy klaszterezés sokban hasonlít az osztályozáshoz, ugyanakkor két alapvető eltérést mutat, ekkor ugyanis nem ismert 1. a dokumentumok címkéje, továbbá a feladat elvégzése után sem jellemezhetők általában a csoportok automatikusan címkékkel; 2. hogy a dokumentumhalmaz hány csoportot alkot. Összefoglalóan: többnyire nincsen olyan referenciaadat, amihez hasonlítani lehetne a csoportosítás eredményét, vagyis tanulási szempontból a klaszterezés felügyelet nélküli tanuló módszer. A csoportosító algoritmusokat ezért akkor alkalmazzuk, amikor nem áll rendelkezésre rögzített kategóriarendszer (taxonómia) a hozzátartozó tanulóadatokkal Szövegklaszterezés jellemző feladatai és problémái A csoportosító eljárások tehát hasonló típusú feladatok megoldására alkalmasak, mint az osztályozók. Bár a kezdeti motivációt az információ-visszakereső rendszerek hatékonyságának növelése jelentette [180], az utóbbi években inkább az internetes és intranetes keresési feladatok támogatása vált a jellemző céllá. Szövegklaszterező eljárást 353
362 9.4. DOKUMENTUMOK CSOPORTOSÍTÁSA alkalmaztak dokumentumgyűjtemények böngészésének támogatására [181], illetve internetes keresések eredményeinek csoportokba szervezésére [182]. Szintén gyakori probléma dokumentumok hierarchikus klaszterekbe rendezése [183], az internetes dokumentumokhoz automatikus taxonómia generálása 11, továbbá már meglévő taxonómia osztályok dokumentumainak további csoportosítása, amelyet aztán fel lehet használni a taxonómia finomítására. Ha a feladat nem numerikus, hanem szöveges adatok csoportosítása, akkor ebből adódóan a következő jellegzetességeket kell kezelni [184]: Az adatok dimenziószáma legalább es nagyságrendű. Mivel a dokumentumokat reprezentáló vektorok viszont rendkívül ritkák, a módszereknek ezt a dichotómiát tudnia kell kellően kezelni. A dokumentumgyűjtemények nagy mérete (különösen a világháló esetében) miatt a módszereknek hatékonyan kell működnie, és skálázhatónak kell lennie. Ember által is érthető címkét kell automatikusan generálni a csoportoknak, mivel ezek tájékoztatják a felhasználót (pl. böngészés során) a csoportba tartozó dokumentumok tartalmáról. Szövegklaszterezés általános feladata ezek alapján nagy méretű dokumentumhalmaz elemeit csoportokba rendezni úgy, hogy azonos csoportba kerüljenek a hasonló témával foglalkozó dokumentumok Reprezentáció A dokumentumok reprezentálására a szokásos vektortér-modellt alkalmazzuk (9.2. szakasz). A dokumentumokat általában szavak szintjén dolgozzuk fel, a szótárba pedig a nemtriviális szavak kanonikus alakjai kerülnek. A szövegklaszterező módszerek a dokumentumok tartalmi hasonlóságát a bennük szereplő szavak együttes előfordulásai alapján határozzák meg. A vektortér-modellben ez a feladat a dokumentumvektorok távolságának meghatározását jelenti. Mivel dokumentumvektorokban tárolt értékek folytonosak, ezért a pontban ismertetett mértékek alkalmasak a hasonlóság, ill. különbözőség vizsgálatára szövegklaszterezés esetén az euklideszi-, illetve koszinusz-távolságot használjuk leggyakrabban. Szövegek klaszterezésére a 4. fejezetben bemutatott eljárásokat alkalmazhatjuk, leggyakrabban hierarchikus és particionáló eljárásokat használnak. Ez előbbiek közül az UPGMA-módszer találták a leghatékonyabbnak [185], míg az utóbbiakból a kettészelő k-átlag (bisecting k-means) eljárás tekinthető az egyik legjobbnak. 11 A hasonló könyvtár-struktúra automatikus felépítése. 354
363 9. FEJEZET: SZÖVEGBÁNYÁSZAT 9.5. Kivonatolás Internetes keresés esetén szinte mindenki találkozott már azzal a problémával, hogy a keresőmotorok által talált honlapok legalább egy része nem felel meg a felhasználó információigényének. A felhasználó részéről a keresőszolgáltatás által adott rövid cím és pár soros leírás alapján annak eldöntése, hogy egy adott dokumentum releváns-e számára, szintén nem egyszerű feladat. Ehhez olykor a teljes dokumentumot le kell tölteni és át kell futni, azaz időigényes munkát jelent. A keresőszolgáltatások és/vagy a tartalomszolgáltatók (honlap/dokumentum készítői) részéről szintén nem várható el, hogy automatizálás nélkül emberi és anyagi erőforrásokat állítson a cél érdekébe. Ebben a szakaszban olyan szövegbányászati módszereket vizsgálunk, amelyek ezt a feladatot, tehát a dokumentumok összegzését automatikusan elvégzik. Ezeket a módszereket összefoglalóan összegzéskészítő eljárásoknak nevezzük Az összegzéskészítő eljárások felosztása Ezeket a módszereket összefoglalóan összegzéskészítő eljárásoknak nevezzük, amelyeket a szakirodalom az összegzés előállítása alapján két alapvetően különböző csoportba oszt: kivonatolásnak (extraction) hívjuk az olyan eljárást, amelynek eredménye kizárólag az eredeti szövegből vett részeket tartalmaz, míg ezzel szemben az összefoglalás-készítő (abstraction) módszerek által előállított szöveg olyan elemeket is tartalmaz, amik nem részei a feldolgozott dokumentumnak. Az emberi gondolkodás és információfeldolgozás modellezése így az összefoglalás-készítésé is bonyolult feladat. Az összefoglalás függ a készítő személyétől, szaktudásától, különbözhet méretben, nyelvezetben, stílusban és részletezettségben. Az összegfoglalás-készítés folyamatának matematikai vagy logikai formulákkal való leírása rendkívül komplex feladat [186]. Az utóbbi években a nyelvtechnológiai eszközök fejlődése azonban lehetőséget adott olyan rendszerek megalkotására, amelyek képesek szövegek szemantikai feldolgozására is. Ilyen eszközök segítségével a szövegben található frázisok és lexikai láncok meghatározásával, majd azok összefűzésével lehetőség van összegfoglalások automatikus generálására. Ennél lényegesebben egyszerűbb a kivonatoló eljárások működése, ahol az eredeti szövegben meglévő, azt leginkább jellemző szövegegységek (mondatok, bekezdések, stb.) kiválasztása a cél. A kivonatoló eljárások hátránya: Az ily módon kiválasztott mondatok jellemzően az átlagosnál hosszabbak (ld pont). Mivel az ilyen mondatoknak egyes részei gyakran nem tartalmaznak lényegi információt, az feleslegesen kerül be a kivonatba. A dokumentumokban lévő fontos információegységek általában az egész dokumentumban elszórtan vannak jelen, és ezt a kivonatoló módszerek nem képesek 355
364 9.5. KIVONATOLÁS feldolgozni. A szövegben szereplő ellentmondó információkat a kivonat nem dolgozza fel megfelelően. Az összefoglaló eljárások hátránya: A felhasználók jobban kedvelik a kivonatolással készült összegzést, mint a generált összefoglalókat [187]. Ennek oka, hogy a kivonat a szerző eredeti kifejezéseit, szóhasználatát tartalmazza, valamint esetlegesen lehetőséget nyújt a sorok közötti információk olvasására is. A mondatszintézis területe jelenleg még angol nyelvre vonatkozóan is gyerekcipőben jár, ezért az automatikusan generált szövegekben gyakran még mondaton belül is ellentmondás van, így az egész szöveg könnyen összefüggéstelenné válik. Kivonat esetén inkoherencia csak a mondatok határainál fordul elő. Mivel a legtöbb működő alkalmazás a kivonatolás módszerét alkalmazza, ezért a továbbiakban erre fókuszálunk. A felhasználási cél alapján az összegzéskészítő eljárásokat az alábbi szempontok szerint lehet rendszerezni [188]. Részletezettség: indikatív vagy informatív. Az indikatív összegzés azt tartalmazza, hogy a szövegnek mi a témája, míg az informatív összegzés ugyanannak egy speciális részletét tárgyalja. Tartalom: általános vagy kérdésvezérelt. Az összegzés lehet egy dokumentum tartalmának általános leírása, vagy kiemelheti a tartalomnak a felhasználó által megadott kérdéssel kapcsolatos részét. Megközelítés: téma, ill. típus specifikus vagy független. A tapasztalatok azt mutatják, hogy különböző típusú (pl. rövidhír, tudományos publikáció) dokumentumokban a lényegi információ más helyen található A kivonatolás hatékonyságának mérése Elsőként megvizsgáljuk, hogy milyen módszereket és mértékeket alkalmaznak a kivonatolás eredményének kiértékelésére, hogy ezáltal könnyebben érthető legyen, melyek az egyes módszerek előnyei és hátrányai. Egy összegzés megítélése személyenként változó lehet függetlenül attól, hogy automatikus vagy ember által készített anyagról van szó. 356
365 9. FEJEZET: SZÖVEGBÁNYÁSZAT A kivonatoló technikák kiértékelésére az 1960-es években Edmundson által javasolt mértéket [189] használják még ma is a leggyakrabban. Az automatikusan generált kivonatokat szakértők által mondatkiválasztással elkészített kivonatokkal vetik össze meghatározva a megegyező mondatok számát. Ezután a szokásos IR mértékekkel pontosság, felidézés jellemzik a kivonatolás minőségét. Ennek a módszernek a hátránya, hogy szükséges hozzá emberi előfeldolgozás, ugyanakkor ebben rejlik az erőssége is, hiszen ha egy módszer ezen mérték alapján valamely tanulóadat-halmazon jól teljesít, akkor várhatóan ismeretlen szövegeken is jól működik, a felhasználó számára jól érthető, hasznos kivonatokat generál. A szakirodalom a fentieken kívül még az alábbi szempontokat tekinti iránymutatónak egy kivonat hasznosságának és teljességének megítélésében [190, 188]: 1. Meg tudja-e válaszolni a felhasználó mindazokat a kérdéseket a kivonat elolvasása után, amelyekre az egész szöveg elolvasása esetén képes lenne? 2. Mi a tömörítési aránya a kivonatnak az eredeti szöveghez képest? 3. Van-e a kivonatolt szövegben ismétlődés, redundancia? Ugyanakkor a kivonatok egyéb jellemzőit, például intelligencia, kohézió, összefüggés, olvashatóság, sokkal nehezebb értékelni. A kivonatolás minőségére vonatkozóan megkülönböztetnek belső és külső mértékeket [190] aszerint, hogy csak a kivonat tulajdonságait veszi-e figyelembe az adott mérték, vagy a kivonat minőségét valamely más cél elvégzésében nyújtott támogatás hatékonyságának tükrében vizsgálják. A felsorolt három mérték közül a második az előbbi, míg az első az utóbbi kategóriába tartozik. Kizárólag a tömörítési arány nem megfelelő jellemzője a kivonat minőségének, hiszen például a redundanciát vagy az információ hasznosságát nem veszi figyelembe Mondatkiválasztásnál használt jellemzők A mondatkiválasztással működő kivonatoló technikák úgy működnek, hogy a dokumentum minden egyes mondatához hozzárendelnek egy heurisztikus módon meghatározott értéket, és a legmagasabb pontszámmal rendelkező mondatokat teszik bele a kivonatba. A mondatokhoz rendelt értéket az alábbi tényezők növelik: Kulcsszó-előfordulás: Azok a mondatok, amelyekben a szöveg leggyakoribb szavai szerepelnek, általában jól reprezentálják a dokumentumot. Cím-kulcsszó: A címben szereplő szavak általában utalnak a dokumentum tartalmára is, ezért az olyan szövegközi mondatok, amelyekben címszavak szerepelnek, általában az átlagosnál jobban jellemeznek egy dokumentumot. 357
366 9.5. KIVONATOLÁS Előfordulási hely heurisztika: Újsághírek esetén többnyire az első mondat, technikai tudományos szövegeknél az összefoglalás utolsó mondatai, illetve a konklúzió tartalma jól jellemzi az adott dokumentumot. Utaló frázisok: Az olyan kulcsszavakat tartalmazó mondatok, mint például ez a cikk, a tanulmány, jelen munkánkban az átlagosnál több információt hordoznak a szöveg egészéről. Nagybetűs szavak: Rövidítéseket vagy tulajdonneveket tartalmazó mondatok általában nagyobb információ tartalommal bírnak. A mondatokhoz rendelt értéket az alábbi tényezők csökkentik: Rövid mondatok kiszűrése: A kivonatban jellemzően nincsenek rövid, néhány szavas mondatok. Névmások: Személyes, vonatkozó, birtokos stb. névmásokat tartalmazó mondatok csak akkor kerülnek be a kivonatba, ha meghatározható, hogy mire utalnak. Ekkor az utalt szó kerül a kivonatba kerülő mondatban a névmás helyére. Informális és pontatlan szavak: A gyakori és sok jelentéssel bíró, vagy pontatlan szavak negatív tényezők a mondat kiválasztásnál. Idézésre utaló szavak: Angol nyelvű híreknél jellemző idézésre utaló szavak szintén negatív faktorok: adding, said, according stb. Redundancia-csökkentés: Ezt a pontszámot olyan eljárásokban alkalmazzák, ahol egyenként határozzák meg a kivonatba kerülő mondatokat. Az értéket minden új mondat kiválasztásánál újraszámolják, megelőzendő azt, hogy a kiválasztott mondat valamelyik már korábban a kivonatba került mondathoz hasonlítson, például úgy, hogy arányosan csökkentik a még nem beválasztott mondatok pontszámát aszerint, hogy mennyire hasonlítanak az aktuális kivonathoz [191, 192]. Az alkalmazott jellemzők jellege szerint megkülönböztethetünk nyelvi, statisztikai, ill. információelméleti, és végül kombinált módszereket A módszerekről röviden Az elsőként publikált [193], mára klasszikussá vált, az emberi mondat-kiválasztási technikát imitáló kivonatoló eljárás verziói a mai napig a legjobbak közé tartoznak [194]. Egy másik eljárás, a TD-IDF módszer az IR paradigmát alkalmazza kivonatolási célra [195]. 358
367 9. FEJEZET: SZÖVEGBÁNYÁSZAT A csoportosító eljárásokat alkalmazó kivonatolók [196, 192, 190] a jól megírt dokumentumokra igaz szerkesztési elven alapulnak, ami szerint a dokumentumok valamely tágabb területhez tartozó témákat tárgyalnak egymás után, és ez alapján (ténylegesen vagy implicite) szakaszokra bonthatók szét. Tehát a tematikusan csoportosított mondatokból választják ki a legjellemzőbbet ezek az eljárások, így a dokumentum tematikus szerkezetét a kivonat is tükrözi. A csoportosító módszerrel nem csak egyes dokumentumok, hanem dokumentumgyűjtemények kivonatolása is elvégezhető. A mondatok gráfelméleti reprezentációja is alkalmas eszköz tematikus csoportok meghatározására [197], amikor is a szokásos előfeldolgozási lépések után a mondatokat egy irányítatlan gráf csomópontjaival reprezentáljuk, és a csomópontok közötti éleket a mondatokban előforduló közös szavak számával súlyozzuk. Szintén jó eredményt ad az SVD alapú látens szemantikus indexelés (LSI) eljárás [198], amelynek nagy előnye, hogy a fogalmi (vagy szemantikus) összefüggéseket automatikusan az emberi agy által reprezentált módon képes megragadni [199], ráadásul a tematikus irányok ortogonalitása garantálja a redundancia-mentességet [200]. A módszerek részletesebb ismertetése a könyv és e fejezet szerzőjének honlapján megtalálthatók Egyéb szövegbányászati feladatok Ebben a szakaszban röviden bemutatunk olyan további szövegbányászati feladatokat, amelyek részletes ismertetése terjedelmi okok miatt meghaladja e könyv kereteit Információkinyerés Az információkinyerés (information extraction IE) az egyik legalapvetőbb számítógépes szövegfeldolgozási feladat. Az IE algoritmusok általában mintafelismerési eljárások segítségével azonosítják a szövegben a fontos kifejezéseket és a közöttük lévő kapcsolatokat. Legyen a példamondatunk A Washington Post szombati híre szerint, a Katrina hurrikán pusztítását követő káosz miatt egyre többen, köztük New Orleans polgármestere, Ray Nagin is, Busht és a szövetségi kormányt okolják. Az információkinyerő szoftvereknek a mondatban azonosítaniuk kell Ray Nagint és Busht, mint személyeket, New Orleanst, mint helyszínt, szombatot, mint dátumot, a Washington Postot és a szövetségi kormányt pedig mint médiát (céget), illetve intézményt; további feladatuk a személyek, helyek és időpontok közti összefüggésekre való következtetés elvégzése is. Ez a módszer nagyban segítheti a felhasználókat a nagy adathalmazok gyors és hatékony feldolgozásában. Napjaink szövegbányász szoftverei mind tartalmazzák ezt a funkciót [154]. 359
368 9.6. EGYÉB SZÖVEGBÁNYÁSZATI FELADATOK Témakövetés A témakövető rendszerek felhasználói profil vagy érdeklődés alapján következtetnek a felhasználó számára érdekes más dokumentumokra. Jó példa erre a Yahoo! által ingyenesen üzemeltetett témakövető eszköz 12, amely a felhasználó által megadott kulcsszavak alapján értesítést küld, ha a témában új hír jelenik meg. A piacon lévő eszközök többsége csak kulcsszó alapú keresést végez, aminek következtében gyakran előfordul az az anomália, hogy a felhasználó eredeti érdeklődésétől különböző dokumentumokat kap. Például ha a text mining kifejezést adjuk meg kulcsszóként, akkor többször kapunk bányászattal, mint szövegbányászattal kapcsolatos híreket. Ennek kiküszöbölésére egyes fejlettebb témakövető szoftverek esetén a felhasználó által az érdeklődési körét a rendszer által karbantartott taxonómiából kiválasztott kategóriák segítségével határozhatja meg. Még intelligensebb módszerek pedig erre automatikusan következtetnek a felhasználó által látogatott oldalak és a klikkelési szokások alapján. Az üzleti világban is jól alkalmazható ez az eszköz. Lehetőséget ad például konkurens vagy saját cégek, ill. termékek figyelésére az írott elektronikus médiában. Hasonlóan fontos lehet bármely például orvosi, oktatási, tudományos szakmában a felhasználó szűkebb szakterületéről szóló információk naprakész követésében Fogalomtársítás A fogalomtársító (concept linkage) eszközök feladata, hogy dokumentumokban meglévő olyan közös fogalmakat azonosítson, amelyek esetleg a felhasználó elől hagyományos keresési módszerekkel rejtve lennének. Leginkább olyan területeken lehet hasznosan alkalmazni őket, mint például az orvostudomány, ahol a rendkívül nagymennyiségű szöveges dokumentum elolvasása vagy átböngészése lehetetlen feladat. Kedvező esetben a fogalomtársító eljárások olyan kapcsolatokat is felfedhetnek például betegségek és kezelési módok között ily módon, amiket az ember nem képes megtalálni. A fogalomtársító eszközök működését jól szemlélteti az a módszer, ahogy D. Swanson két egymástól bibliográfiailag távol álló, ám logikailag összefüggő kutatási terület összekapcsolásával azonosította a magnézium szerepét a migrén kialakulásában [201]. A kutató azokban a közlemények előforduló gyakori kifejezéseket vizsgálta, amelyek címükben a migrén szót tartalmazták. Az egyik ily módon azonosított kulcsszó a tovaterjedő kérgi gátlás volt. Ezután hasonló keresést végzett ebből a kifejezésből kiindulva, s így találta meg többek közt a magnézium elégtelenség terminust. A két fogalom közti tényleges összefüggést elemző kutatásaiban kimutatta, hogy a korábban még nem vizsgált magnézium elégtelenség a migrén kialakulásában komoly szerepet játszik
369 9. FEJEZET: SZÖVEGBÁNYÁSZAT 9.3. ábra. Az Informatik V Doc Miner szoftverének felhasználói felülette [154] A Swanson által használt módszert alkalmazó automatikus eszközök jól alkalmazhatók szövegbányászatban [202]. Várhatóan az ilyen felhasználások a közeljövőben nagyban segíthetik a orvosi felhasználókat új kezelési módok felfedezésében Szöveges információk vizualizálása Nagyméretű szöveges források/gyűjtemények esetén a vizuális hierarchiában vagy térképpel történő böngésző lehetőséggel kiegészített képi megjelenítés nagymértékben segítheti a felhasználót a keresett téma és a hozzá tartozó dokumentumok könnyebb azonosításában. A szöveges adathalmazok képi megjelenítését végzi az Informatik V DocMiner 13 terméke. Ennek segítségével a felhasználó interaktív tartalom elemzést végezhet a vizualizált adatokon. A böngészést nagyítás, skálázás és résztérképek készítésének lehetősége is támogatja Kérdés-megválaszolás Ez az alkalmazási terület már nagyrészt átfed a következő szakasz témájával, hiszen a kérdés-megválaszolásban (Question Answering QA) nagy szerepet játszanak a nyelvtechnológiai eszközök. A feladat általánosan természetes nyelvű kérdések többnyire természetes nyelven történő megválaszolása adatbázis vagy a világháló segítségével DocMINER/ 361
{simplecaddy code=1004}
{simplecaddy code=1004} Könyvünk az adatbányászat tevékenységének lépéseit részletesen bemutatva kívánja megismertetni az olvasót, azzal hogy milyen jellegű gazdasági, mérnöki, illetve tudományos problémák
Tartalom. Jó hogy jön Jucika, maga biztosan emlékszik még, hányadik oldalon van a Leszállás ködben.
Tartalom Jó hogy jön Jucika, maga biztosan emlékszik még, hányadik oldalon van a Leszállás ködben. Előszó 1. Az adatbányászatról általában 19 1.1. Miért adatbányászat? 21 1.2. Technológia a rejtett információk
The nontrivial extraction of implicit, previously unknown, and potentially useful information from data.
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs rendszerek Tanszék Adatelemzés intelligens módszerekkel Hullám Gábor Adatelemzés hagyományos megközelítésben I. Megválaszolandó
Gépi tanulás a gyakorlatban. Bevezetés
Gépi tanulás a gyakorlatban Bevezetés Motiváció Nagyon gyakran találkozunk gépi tanuló alkalmazásokkal Spam detekció Karakter felismerés Fotó címkézés Szociális háló elemzés Piaci szegmentáció analízis
Vezetői információs rendszerek
Vezetői információs rendszerek Kiadott anyag: Vállalat és információk Elekes Edit, 2015. E-mail: elekes.edit@eng.unideb.hu Anyagok: eng.unideb.hu/userdir/vezetoi_inf_rd 1 A vállalat, mint információs rendszer
Történet John Little (1970) (Management Science cikk)
Információ menedzsment Szendrői Etelka Rendszer- és Szoftvertechnológia Tanszék szendroi@witch.pmmf.hu Vezetői információs rendszerek Döntéstámogató rendszerek (Decision Support Systems) Döntések információn
Közigazgatási informatika tantárgyból
Tantárgyi kérdések a záróvizsgára Közigazgatási informatika tantárgyból 1.) A közbeszerzés rendszere (alapelvek, elektronikus árlejtés, a nyílt eljárás és a 2 szakaszból álló eljárások) 2.) A közbeszerzés
Számítógépes döntéstámogatás. Bevezetés és tematika
SZDT-01 p. 1/18 Számítógépes döntéstámogatás Bevezetés és tematika Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu Előadás SZDT-01 p. 2/18 SZDT-01
INFORMÁCI CIÓS ERŐFORRÁSOK ÉS RENDSZEREK
INFORMÁCI CIÓS ERŐFORRÁSOK ÉS INFORMÁCI CIÓS RENDSZEREK Milyen ismereteket sajátítunk tunk el e téma keretében? Adat Információ Tudás Az információ mint stratégiai erőforrás A vállalat információs rendszere
Vállalati információs rendszerek I, MIN5B6IN, 5 kredit, K. 4. A meghirdetés ideje (mintatanterv szerint vagy keresztfélében):
Követelményrendszer 1. Tantárgynév, kód, kredit, választhatóság: Vállalati információs rendszerek I, MIN5B6IN, 5 kredit, K 2. Felelős tanszék: Informatika Szakcsoport 3. Szak, szakirány, tagozat: Műszaki
Gazdasági informatika alapjai
PSZK Mesterképzési és Távoktatási Központ / H-1149 Budapest, Buzogány utca 10-12. / 1426 Budapest Pf.:35 II. évfolyam Név: Neptun kód: Kurzus: Tanár neve: HÁZI DOLGOZAT 2. Gazdasági informatika alapjai
TANTÁRGYI ÚTMUTATÓ. Szolgáltatás menedzsment. tanulmányokhoz
IV. évfolyam szakirány BA TANTÁRGYI ÚTMUTATÓ Szolgáltatás menedzsment tanulmányokhoz TÁVOKTATÁS Tanév (2014/2015) II. félév A KURZUS ALAPADATAI Tárgy megnevezése: Szolgáltatás menedzsment Tanszék: Tantárgyfelelős
MENEDZSMENT ALAPJAI Bevezetés
MENEDZSMENT ALAPJAI Bevezetés Dr. Gyökér Irén egyetemi docens 2012 ősz Jegyzetek, diasorok - ÜTI honlap http://www.uti.bme.hu/cgibin/hallgato/tantargyak.cgi?detail=true&tantargy_id=15035 Folyamatos számonkérés:
Mesterséges Intelligencia Elektronikus Almanach. Konzorciumi partnerek
Mesterséges Intelligencia Elektronikus Almanach Konzorciumi partnerek 1 Konzorcium Budpesti Mőszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Méréstechnika és Információs Rendszerek
Gépi tanulás és Mintafelismerés
Gépi tanulás és Mintafelismerés jegyzet Csató Lehel Matematika-Informatika Tanszék BabesBolyai Tudományegyetem, Kolozsvár 2007 Aug. 20 2 1. fejezet Bevezet A mesterséges intelligencia azon módszereit,
SZTE Eötvös Loránd Kollégium. 2. Móra György: Információkinyerés természetes nyelvű szövegekből
2010/2011 tavaszi félév SZTE Eötvös Loránd Kollégium 1. Dombi József: Fuzzy elmélet és alkalmazásai 2011. március 3. 19:00 2. Móra György: Információkinyerés természetes nyelvű szövegekből 2011. március
Dr. Sasvári Péter Egyetemi docens
A magyarországi vállalkozások Üzleti Intelligencia használatának vizsgálata Dr. Sasvári Péter Egyetemi docens II. IRI Társadalomtudományi Konferencia, 2014. április 25-26. Nové Zámky (Érsekújvár) Gymnázium
Feladataink, kötelességeink, önkéntes és szabadidős tevékenységeink elvégzése, a közösségi életformák gyakorlása döntések sorozatából tevődik össze.
INFORMATIKA Az informatika tantárgy ismeretkörei, fejlesztési területei hozzájárulnak ahhoz, hogy a tanuló az információs társadalom aktív tagjává válhasson. Az informatikai eszközök használata olyan eszköztudást
Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék
Keresés képi jellemzők alapján Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék Lusta gépi tanulási algoritmusok Osztályozás: k=1: piros k=5: kék k-legközelebbi szomszéd (k=1,3,5,7)
Adatbázis rendszerek. dr. Siki Zoltán
Adatbázis rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati személyzeti
Összeállította Horváth László egyetemi tanár
Óbudai Egyetem Neumann János Informatikai Kar Intelligens Mérnöki Rendszerek Intézet Intelligens Mérnöki Rendszerek Szakirány a Mérnök informatikus alapszakon Összeállította Horváth László Budapest, 2011
Számítógépes képelemzés 7. előadás. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék
Számítógépes képelemzés 7. előadás Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék Momentumok Momentum-alapú jellemzők Tömegközéppont Irányultáság 1 2 tan 2 1 2,0 1,1 0, 2 Befoglaló
Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.
Regresszió Csorba János Nagyméretű adathalmazok kezelése 2010. március 31. A feladat X magyarázó attribútumok halmaza Y magyarázandó attribútumok) Kérdés: f : X -> Y a kapcsolat pár tanítópontban ismert
Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP-4.1.2-08/1/A-2009-0010 A NÖVÉNYTERMESZTÉSI ÁGAZATOK ÖKONÓMIÁJA
Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP-4.1.2-08/1/A-2009-0010 A NÖVÉNYTERMESZTÉSI ÁGAZATOK ÖKONÓMIÁJA 11. Előadás Az üzleti terv tartalmi követelményei Az üzleti terv tartalmi követelményei
Vizuális adatelemzés - Gyakorlat. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
Vizuális adatelemzés - Gyakorlat Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Adatelemzés szerepe a rendszermodellezésben Lényeges paraméterek meghatározása
Alkalmazásokban. Dezsényi Csaba Ovitas Magyarország kft.
Tudásmodellezés Kereskedelmi Alkalmazásokban Dezsényi Csaba Ovitas Magyarország kft. Tudásmenedzsment Adat -> Információ -> Tudás Intézményi tudásvagyon hatékony kezelése az üzleti célok megvalósításának
A döntéstámogatás területén a 90-es évek főárama a tudásbázisú rendszerek fejlesztése. A tudásbázisú rendszer az első olyan döntéstámogató módszer, am
Fogalmakat is kezelni tudó számítógépes döntéstámogatás Starkné Dr. Werner Ágnes A döntéstámogatás területén a 90-es évek főárama a tudásbázisú rendszerek fejlesztése. A tudásbázisú rendszer az első olyan
A hierarchikus adatbázis struktúra jellemzői
A hierarchikus adatbázis struktúra jellemzői Az első adatbázis-kezelő rendszerek a hierarchikus modellen alapultak. Ennek az volt a magyarázata, hogy az élet sok területén első közelítésben elég jól lehet
S atisztika 1. előadás
Statisztika 1. előadás A kutatás hatlépcsős folyamata 1. lépés: Problémameghatározás 2. lépés: A probléma megközelítésének kidolgozása 3. lépés: A kutatási terv meghatározása 4. lépés: Terepmunka vagy
VEZETŐI SZÁMVITEL elmélet, módszertan
VEZETŐI SZÁMVITEL elmélet, módszertan 2016 Szerzők: Dr. Kardos Barbara Dr. Sisa Krisztina Andrea Dr. Szekeres Bernadett Dr. Veress Attila Lektor: Dr. Siklósi Ágnes ISBN 978 963 638 511 8 Kiadja a SALDO
DW 9. előadás DW tervezése, DW-projekt
DW 9. előadás DW tervezése, DW-projekt Követelmény felmérés DW séma tervezése Betöltési modul tervezése Fizikai DW tervezése OLAP felület tervezése Hardver kiépítése Implementáció Tesztelés, bevezetés
Értékesítések (összes, geográfiai -, ügyfelenkénti-, termékenkénti megoszlás)
Saját vállalkozás Értékesítések (összes, geográfiai -, ügyfelenkénti-, termékenkénti megoszlás) Piaci részesedés Haszonkulcs Marketing folyamatok Marketing szervezet Értékesítési/marketing kontrol adatok
Projektvezetői döntések támogatása webbányászattal
NETWORKSHOP 2008 2008. március 17-19. Dunaújváros, Dunaújvárosi Főiskola Projektvezetői döntések támogatása webbányászattal Bóta László Ph.D. hallgató (BME) Eszterházy Károly Főiskola, Eger BI (Business
Tudásalapú információ integráció
Tudásalapú információ integráció (A Szemantikus Web megközelítés és a másik irány) Tanszéki értekezlet, 2008. május 14. 1 Miért van szükségünk ilyesmire? WWW: (Alkalmazások) Keresés a weben (pl. összehasonlítás
Mit látnak a robotok? Bányai Mihály Matemorfózis, 2017.
Mit látnak a robotok? Bányai Mihály Matemorfózis, 2017. Vizuális feldolgozórendszerek feladatai Mesterséges intelligencia és idegtudomány Mesterséges intelligencia és idegtudomány Párhuzamos problémák
Szakterületi modell A fogalmak megjelenítése. 9. fejezet Applying UML and Patterns Craig Larman
Szakterületi modell A fogalmak megjelenítése 9. fejezet Applying UML and Patterns Craig Larman 1 Néhány megjegyzés a diagramokhoz Ez a tárgy a rendszer elemzésről és modellezésről szól. Noha például egy
Intelligens partner rendszer virtuális kórházi osztály megvalósításához
Intelligens partner rendszer virtuális kórházi osztály megvalósításához 1. Célkitűzések A pályázat célja egy virtuális immunológiai osztály kialakítása, amelynek segítségével a különböző betegségekkel
Gépi tanulás a gyakorlatban. Kiértékelés és Klaszterezés
Gépi tanulás a gyakorlatban Kiértékelés és Klaszterezés Hogyan alkalmazzuk sikeresen a gépi tanuló módszereket? Hogyan válasszuk az algoritmusokat? Hogyan hangoljuk a paramétereiket? Precízebben: Tegyük
A benchmarking fogalma
Benchmarking Dr. Koczor Zoltán 1 A fogalma Összevetésként használt szervezet Felhasznált erőforrások ESZKÖZÖK CÉLOK Belső folyamatszabályozás Dr. Koczor Zoltán 2 1 A célja Értékelnünk kell a jelenlegi
Szolgáltatás Orientált Architektúra a MAVIR-nál
Szolgáltatás Orientált Architektúra a MAVIR-nál Sajner Zsuzsanna Accenture Sztráda Gyula MAVIR ZRt. FIO 2009. szeptember 10. Tartalomjegyzék 2 Mi a Szolgáltatás Orientált Architektúra? A SOA bevezetés
Nagyméretű adathalmazok kezelése (BMEVISZM144) Reinhardt Gábor április 5.
Asszociációs szabályok Budapesti Műszaki- és Gazdaságtudományi Egyetem 2012. április 5. Tartalom 1 2 3 4 5 6 7 ismétlés A feladat Gyakran együtt vásárolt termékek meghatározása Tanultunk rá hatékony algoritmusokat
Számítógépes döntéstámogatás. Döntések fuzzy környezetben Közelítő következtetések
BLSZM-09 p. 1/17 Számítógépes döntéstámogatás Döntések fuzzy környezetben Közelítő következtetések Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu
Sikerünk kulcsa: az információ De honnan lesz adatunk? Palaczk Péter
Sikerünk kulcsa: az információ De honnan lesz adatunk? Palaczk Péter Bevezető az Oracle9i adattárházas újdonságaihoz Elemzési és vezetői információs igények 80:20 az adatgyűjtés javára! Adattárházak kínálta
Rendszer szekvencia diagram
Rendszer szekvencia diagram Célkitűzések A rendszer események azonosítása. Rendszer szekvencia diagram készítése az eseményekre. 2 1.Iteráció Az első igazi fejlesztési iteráció. A projekt kezdeti szakaszában
S atisztika 2. előadás
Statisztika 2. előadás 4. lépés Terepmunka vagy adatgyűjtés Kutatási módszerek osztályozása Kutatási módszer Feltáró kutatás Következtető kutatás Leíró kutatás Ok-okozati kutatás Keresztmetszeti kutatás
Statisztikai eljárások a mintafelismerésben és a gépi tanulásban
Statisztikai eljárások a mintafelismerésben és a gépi tanulásban Varga Domonkos (I.évf. PhD hallgató) 2014 május A prezentáció felépítése 1) Alapfogalmak 2) A gépi tanulás, mintafelismerés alkalmazási
Pécsi Tudományegyetem Közgazdaságtudományi Kar
Pécsi Tudományegyetem Közgazdaságtudományi Kar ÜZLETI TANÁCSADÓ szakirányú továbbképzési szak Az üzleti tanácsadás napjaink egyik kulcsfontosságú ágazata az üzleti szférában. A tercier szektor egyik elemeként
Témaválasztás, kutatási kérdések, kutatásmódszertan
Témaválasztás, kutatási kérdések, kutatásmódszertan Dr. Dernóczy-Polyák Adrienn PhD egyetemi adjunktus, MMT dernoczy@sze.hu A projekt címe: Széchenyi István Egyetem minőségi kutatói utánpótlás nevelésének
TANTÁRGYI ADATLAP I. TANTÁRGYLEÍRÁS
TANTÁRGYI ADATLAP I. TANTÁRGYLEÍRÁS 1 ALAPADATOK 1.1 Tantárgy neve TÉRINFORMATIKAI ELEMZÉSEK 1.2 Azonosító (tantárgykód) BMEEOFTA-J1 1.3 A tantárgy jellege kontaktórás tanegység 1.4 Óraszámok típus előadás
HELYZETELEMZÉS A TELEPHELYI KÉRDŐÍV KÉRDÉSEIRE ADOTT VÁLASZOK ALAPJÁN
2017/2018 Iskolánkban a hagyományos alapképzés mellett emelt óraszámú képzést folytatunk angolból. Idegen nyelvet és informatikát első osztálytól oktatunk. Elnyertük a Digitális iskola címet. Évek óta
TDK tájékoztató Gazdaságinformatika Intézeti Tanszék szeptember
TDK tájékoztató Gazdaságinformatika Intézeti Tanszék 2017. szeptember TDK témakörök és tanszéki kutatások, tájékoztató Tisztelt Hallgató, Tájékoztatjuk, hogy a meghirdetett témakörök csak tájékoztató jellegűek,
A szak specializációi
A szak specializációi Specializációk A specializációválasztás során a hallgatónak preferenciasorrendet kell megjelölnie, legalább két specializáció megadásával. A specializációkra történő besorolás a hallgatók
Az Országos kompetenciamérés (OKM) tartalmi kerete. a 20/2012. (VIII. 31.) EMMI rendelet 3. melléklete alapján
Az Országos kompetenciamérés (OKM) tartalmi kerete a 20/2012. (VIII. 31.) EMMI rendelet 3. melléklete alapján Az OKM tartalmi keret Célja: definiálja azokat a tényezőket és szempontrendszereket, amelyek
Elektronikus oktatástámogató rendszer bevezetésének tapasztalatai. Jókai Erika Vig Zoltán
Elektronikus oktatástámogató rendszer bevezetésének tapasztalatai Jókai Erika Vig Zoltán Előadásvázlat Előkészítési, tervezési szakasz Bevezetési szakasz Kutatási területek Moodle Eredményeink Terveink
10. modul: FÜGGVÉNYEK, FÜGGVÉNYTULAJDONSÁGOK
MATEMATIK A 9. évfolyam 10. modul: FÜGGVÉNYEK, FÜGGVÉNYTULAJDONSÁGOK KÉSZÍTETTE: CSÁKVÁRI ÁGNES Matematika A 9. évfolyam. 10. modul: FÜGGVÉNYEK, FÜGGVÉNYTULAJDONSÁGOK Tanári útmutató 2 MODULLEÍRÁS A modul
Vezetői információs rendszerek
Adatbányászás I. Adatbányászás Növekvő adatmennyiség egyre nehezebbé válik az adatokból a kívánt információ kinyerése. Új technika szükséges, amely lehetővé teszi, hogy megismerhetővé, kinyerhetővé váljon
Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén
Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén Dombi József Szegedi Tudományegyetem Bevezetés - ID3 (Iterative Dichotomiser 3) Az ID algoritmusok egy elemhalmaz felhasználásával
Számítógépes döntéstámogatás. Fogalmakat is kezelni tudó számítógépes döntéstámogatás A DoctuS rendszer
SZDT-07 p. 1/20 Számítógépes döntéstámogatás Fogalmakat is kezelni tudó számítógépes döntéstámogatás A DoctuS rendszer Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu
Big Data az adattárházban
Big Data az adattárházban A párbaj folytatódik? Néhány fontos Big Data projekt Cég Téma Adat Újfajta Mennyiség Saját adat? Típus Google Influenza Google I big I Előjelzés előjelzés Farecast Xoom Chicagoi
ALAPADATOK. KÉSZÍTETTE Balogh Gábor. A PROJEKT CÍME Hálózati alapismeretek
PROJEKTTERV 1 ALAPADATOK KÉSZÍTETTE Balogh Gábor A PROJEKT CÍME Hálózati alapismeretek ÖSSZEFOGLALÁS Az első órán a tanulók megismerkednek a következő témákkal: hálózati alapfogalmak, a hálózatok használatának
A visegrádi országok vállalati információs rendszerek használati szokásainak elemzése és értékelése
A visegrádi országok vállalati információs rendszerek használati szokásainak elemzése és értékelése KRIDLOVÁ Anita Miskolci Egyetem, Miskolc anitacska84@freemail.hu A vállalkozások számára ahhoz, hogy
AZ ORSZÁGOS KOMPETENCIAMÉRÉS EREDMÉNYEI 2016/2017-ES TANÉV
Iskolánkban a hagyományos alapképzés mellett emelt óraszámú képzést folytatunk angolból. Idegen nyelvet és informatikát első osztálytól oktatunk. Elnyertük a Digitális iskola címet. Évek óta Ökoiskola
TANTÁRGYI ÚTMUTATÓ. Alkalmazott számítástechnika. tanulmányokhoz
2. évfolyam szakirány BA TANTÁRGYI ÚTMUTATÓ Alkalmazott számítástechnika tanulmányokhoz TÁVOKTATÁS Tanév (2014/2015) 1. félév A KURZUS ALAPADATAI Tárgy megnevezése: Alkalmazott Számítástechnika Tanszék:
Méréselmélet MI BSc 1
Mérés és s modellezés 2008.02.15. 1 Méréselmélet - bevezetés a mérnöki problémamegoldás menete 1. A probléma kitűzése 2. A hipotézis felállítása 3. Kísérlettervezés 4. Megfigyelések elvégzése 5. Adatok
Döntéselőkészítés. I. előadás. Döntéselőkészítés. Előadó: Dr. Égertné dr. Molnár Éva. Informatika Tanszék A 602 szoba
I. előadás Előadó: Dr. Égertné dr. Molnár Éva Informatika Tanszék A 602 szoba Tárggyal kapcsolatos anyagok megtalálhatók: http://www.sze.hu/~egertne Konzultációs idő: (páros tan. hét) csütörtök 10-11 30
30 MB INFORMATIKAI PROJEKTELLENŐR
INFORMATIKAI PROJEKTELLENŐR 30 MB DOMBORA SÁNDOR BEVEZETÉS (INFORMATIKA, INFORMATIAKI FÜGGŐSÉG, INFORMATIKAI PROJEKTEK, MÉRNÖKI ÉS INFORMATIKAI FELADATOK TALÁKOZÁSA, TECHNOLÓGIÁK) 2016. 09. 17. MMK- Informatikai
Integrált gyártórendszerek. Ágens technológia - ágens rendszer létrehozása Gyakorlat
IGYR p. 1/17 Integrált gyártórendszerek Ágens technológia - ágens rendszer létrehozása Gyakorlat Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu IGYR
TANTÁRGYI ADATLAP I. TANTÁRGYLEÍRÁS
TANTÁRGYI ADATLAP I. TANTÁRGYLEÍRÁS 1 ALAPADATOK 1.1 Tantárgy neve ÉPÍTŐMÉRNÖKI INFORMATIKA 1.2 Azonosító (tantárgykód) BMEEOFTAT42 1.3 A tantárgy jellege kontaktórás tanegység 1.4 Óraszámok típus óraszám
Adatbányászati technikák (VISZM185) 2015 tavasz
Adatbányászati technikák (VISZM185) 2015 tavasz Csima Judit BME, VIK, Számítástudományi és Információelméleti Tanszék 2015. február 11. Csima Judit Adatbányászati technikák (VISZM185) 2015 tavasz 1 / 27
INFORMATIKA TANMENET SZAKKÖZÉPISKOLA 9.NY OSZTÁLY HETI 4 ÓRA 37 HÉT/ ÖSSZ 148 ÓRA
MINŐSÉGIRÁNYÍTÁSI ELJÁRÁS MELLÉKLET Tanmenetborító Azonosító: ME-III.1./1 Változatszám: 2 Érvényesség kezdete: 2013. 09. 01. Oldal/összes: 1/6 Fájlnév: ME- III.1.1.Tanmenetborító SZK- DC-2013 INFORMATIKA
BIG DATA ELEMZÉSEK LEHETŐSÉGEI
BIG DATA ELEMZÉSEK LEHETŐSÉGEI A KÖRNYEZETVÉDELMI MODELLEZÉSBEN Dr. Torma A. 2015.11.13. 2015/11/13 Dr. TORMA A. >> Széchenyi István Egyetem 2 Tartalom 1. A Big Data fogalma 2. Pár érdekes adat a Big Data
ADATTÁRHÁZ HATÉKONYSÁGNÖVELÉS, REDUNDANCIA CSÖKKENTÉS Frunza Zsolt ÜZLETI INTELLIGENCIA A JÖVŐ, AHOGY MI LÁTJUK
ADATTÁRHÁZ HATÉKONYSÁGNÖVELÉS, REDUNDANCIA CSÖKKENTÉS Frunza Zsolt ÜZLETI INTELLIGENCIA A JÖVŐ, AHOGY MI LÁTJUK TARTALOM 2 1. Miért válik a Redundancia Menedzsment egyre fontosabb kérdéssé? 2. Mit értünk
IV/1. sz. melléklet: Vállalati CRM, értékesítési terület funkcionális specifikáció
IV/1. sz. melléklet: Vállalati CRM, értékesítési terület funkcionális specifikáció 1. A követelménylista céljáról Jelen követelménylista (mint a GOP 2.2.1 / KMOP 1.2.5 pályázati útmutató melléklete) meghatározza
Hogyan lesz adatbányából aranybánya?
Hogyan lesz adatbányából aranybánya? Szolgáltatások kapacitástervezése a Budapest Banknál Németh Balázs Budapest Bank Fehér Péter - Corvinno Visontai Balázs - KFKI Tartalom 1. Szolgáltatás életciklus 2.
TARTALOMJEGYZÉK. TARTALOMJEGYZÉK...vii ELŐSZÓ... xiii BEVEZETÉS A lágy számításról A könyv célkitűzése és felépítése...
TARTALOMJEGYZÉK TARTALOMJEGYZÉK...vii ELŐSZÓ... xiii BEVEZETÉS...1 1. A lágy számításról...2 2. A könyv célkitűzése és felépítése...6 AZ ÖSSZETEVŐ LÁGY RENDSZEREK...9 I. BEVEZETÉS...10 3. Az összetevő
Intelligens adatelemzés
Antal Péter, Antos András, Horváth Gábor, Hullám Gábor, Kocsis Imre, Marx Péter, Millinghoffer András, Pataricza András, Salánki Ágnes Intelligens adatelemzés Szerkesztette: Antal Péter A jegyzetben az
Kővári Attila, BI projekt
Innovatív BI konferencia, 2011-11-22 Kővári Attila, BI projekt Az előadás bemutatja, milyen lehetőségeket és problémákat rejtenek magukban az önkiszolgáló BI rendszerek. Foglalkozik az ilyen rendszereknél
Hálózati elemzések az üzleti életben. Kovács Gyula Sixtep Kft.
Hálózati elemzések az üzleti életben Kovács Gyula Sixtep Kft. Hálózat kutatás rövid ismertetése Königsbergi hidak problémája Háttér: A probléma története, hogy a poroszországi Königsberg (most Kalinyingrád,
Területi elemzések. Budapest, 2015. április
TeIR Területi elemzések Felhasználói útmutató Budapest, 2015. április Tartalomjegyzék 1. BEVEZETŐ... 3 2. AZ ELEMZÉSBEN SZEREPLŐ MUTATÓ KIVÁLASZTÁSA... 4 3. AZ ELEMZÉSI FELTÉTELEK DEFINIÁLÁSA... 5 3.1.
SZAKDOLGOZATI TÉMAKÖRÖK
SZAKDOLGOZATI TÉMAKÖRÖK GAZDÁLKODÁSI ÉS MENEDZSMENT SZAKOS HALLGATÓK SZÁMÁRA 2013 Figyelem!!! A szakdolgozat készítésére vonatkozó szabályokat a hallgatónak a témát kijelölő kari sajátosságok figyelembe
Bevezetés a kvantum informatikába és kommunikációba Féléves házi feladat (2013/2014. tavasz)
Bevezetés a kvantum informatikába és kommunikációba Féléves házi feladat (2013/2014. tavasz) A házi feladatokkal kapcsolatos követelményekről Kapcsolódó határidők: választás: 6. oktatási hét csütörtöki
Idősorok elemzése. Salánki Ágnes
Idősorok elemzése Salánki Ágnes salanki.agnes@gmail.com 2012.04.13. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék 1 Idősorok analízise Alapfogalmak Komponenselemzés
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 0. A Wolfram Alpha tudásgép. https://www.wolframalpha.
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 0. A Wolfram Alpha tudásgép https://www.wolframalpha.com/ Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás
Dr. FEHÉR PÉTER Magyarországi szervezetek digitális transzformációja számokban - Tények és 1trendek
Dr. FEHÉR PÉTER Magyarországi szervezetek digitális transzformációja számokban - Tények és 1trendek 2 Változás sebessége A gazdasági átalakulás nehezen követi a technológiai fejlődést Technológiai változás
CARE. Biztonságos. otthonok idős embereknek CARE. Biztonságos otthonok idős embereknek 2010-09-02. Dr. Vajda Ferenc Egyetemi docens
CARE Biztonságos CARE Biztonságos otthonok idős embereknek otthonok idős embereknek 2010-09-02 Dr. Vajda Ferenc Egyetemi docens 3D Érzékelés és Mobilrobotika kutatócsoport Budapesti Műszaki és Gazdaságtudományi
Így kampányolunk mi. Hans Zoltán. Szolgáltatás Fejlesztés és Online Irányítás vezető. IBM-SPSS üzleti reggeli (Budapest) 2010.09.22.
Így kampányolunk mi Hans Zoltán Szolgáltatás Fejlesztés és Online Irányítás vezető IBM-SPSS üzleti reggeli (Budapest) 2010.09.22. LIFE INSURANCE PENSION INVESTMENT Tartalom AEGON Útkeresések Esettanulmány
Mesterséges Intelligencia Elektronikus Almanach
Mesterséges Intelligencia Elektronikus Almanach Dobrowiecki Tadeusz, Mészáros Tamás Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék MI Almanach a projekt
Fuzzy rendszerek és neurális hálózatok alkalmazása a diagnosztikában
Budapesti Műszaki és Gazdaságtudományi Egyetem Fuzzy rendszerek és neurális hálózatok alkalmazása a diagnosztikában Cselkó Richárd 2009. október. 15. Az előadás fő témái Soft Computing technikák alakalmazásának
Tudásalapú információ-kereső rendszerek elemzése és kifejlesztése
Tudásalapú információ-kereső rendszerek elemzése és kifejlesztése 1 Tudásalapú információ-kereső rendszerek elemzése és kifejlesztése Természetes nyelv feldolgozás 2 Tudásalapú információ-kereső rendszerek
Mérés és modellezés Méréstechnika VM, GM, MM 1
Mérés és modellezés 2008.02.04. 1 Mérés és modellezés A mérnöki tevékenység alapeleme a mérés. A mérés célja valamely jelenség megismerése, vizsgálata. A mérés tervszerűen végzett tevékenység: azaz rögzíteni
Nyilvántartási Rendszer
Nyilvántartási Rendszer Veszprém Megyei Levéltár 2011.04.14. Készítette: Juszt Miklós Honnan indultunk? Rövid történeti áttekintés 2003 2007 2008-2011 Access alapú raktári topográfia Adatbázis optimalizálás,
IV/8. sz. melléklet: Internetes megjelenés (vállalati portál) funkcionális specifikáció
IV/8. sz. melléklet: Internetes megjelenés (vállalati portál) funkcionális specifikáció 1. A követelménylista céljáról Jelen követelménylista (mint a GOP 2.2.1 / KMOP 1.2.5 pályázati útmutató melléklete)
PREDIKTÍV ANALITIKÁVAL A KORAI ISKOLAELHAGYÓK SZÁMÁNAK CSÖKKENTÉSÉÉRT
PREDIKTÍV ANALITIKÁVAL A KORAI ISKOLAELHAGYÓK SZÁMÁNAK CSÖKKENTÉSÉÉRT Horváth Ádám Divízióvezető Digitális Jólét Nonprofit Kft. Digitális Pedagógiai Módszertani Központ Nagy István EFOP-3.2.15-VEKOP-17-2017-00001
KÖVETKEZŐ GENERÁCIÓS NAGYVÁLLALATI TARTALOMKEZELŐ MEGOLDÁSOK Stratis Kft. / Autonomy üzleti reggeli / 2014.10.16. Mezei Ferenc üzletág-igazgató
KÖVETKEZŐ GENERÁCIÓS NAGYVÁLLALATI TARTALOMKEZELŐ MEGOLDÁSOK Stratis Kft. / Autonomy üzleti reggeli / 2014.10.16. Mezei Ferenc üzletág-igazgató Hasonló, mégis más Ez se rossz amíg ezt ki nem próbáltad!
Mezőgazdasági külső információs rendszerek fejlesztése
Mezőgazdasági külső információs rendszerek fejlesztése Pető István Szent István Egyetem, Gödöllő Gazdasági Informatika Tanszék I. Agrárinformatikai Nyári Egyetem, Gödöllő 2004. augusztus 25-27. Az előadás
Smart City Tudásbázis
Smart City Tudásbázis Projektpartner: Vezető partner és további projektpartnerek: TINA VIENNA (Vezető partner) Esetleg Bécs város kollégái és üzlettársai a kiválasztott tématerületeken Potenciális projektpartnerek
Önálló labor feladatkiírásaim tavasz
Önálló labor feladatkiírásaim 2016. tavasz (ezekhez kapcsolódó saját témával is megkereshetnek) Mészáros Tamás http://www.mit.bme.hu/~meszaros/ Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika
11. modul: LINEÁRIS FÜGGVÉNYEK
MATEMATIK A 9. évfolyam 11. modul: LINEÁRIS FÜGGVÉNYEK KÉSZÍTETTE: CSÁKVÁRI ÁGNES Matematika A 9. évfolyam. 11. modul: LINEÁRIS FÜGGVÉNYEK Tanári útmutató 2 A modul célja Időkeret Ajánlott korosztály Modulkapcsolódási
PROGRAMTERVEZŐ INFORMATIKUS ALAPKÉPZÉSI SZAK
PROGRAMTERVEZŐ INFORMATIKUS ALAPKÉPZÉSI SZAK 1. Az alapképzési szak megnevezése: programtervező informatikus (Computer Science) 2. Az alapképzési szakon szerezhető végzettségi szint és a szakképzettség
V/6. sz. melléklet: Táv- és csoportmunka támogatás funkcionális specifikáció
V/6. sz. melléklet: Táv- és csoportmunka támogatás funkcionális specifikáció 1. A követelménylista céljáról Jelen követelménylista (mint a GOP 2.2. 1 / KMOP 1.2.5 pályázati útmutató melléklete) meghatározza