Šiuolaikinis duomenų paieškos algoitmas PoMFS Studentas: [PK04A] J. Litvinenko <uickl@gmail.com> Panešimo vadovas: Doc. R. Tumasonis Vilnius 2005
Anotacia Šioe konfeencioe aš noėčiau pistatyti duomenų paieškos PoMFS algoitmą i pincipingai nauą technologią spendimų piėmimo sitye - Data Mining. Panešimas paemtas Doc. Romano Tumasonio mokslinių dabų - Analitiniai duomenų gavimo būdai šiuolaikinėse infomacinėse sistemose visuma. 1. Kas ya Data Mining technologia? Data Mining galima intepetuoti kaip - intelektualus duomenų masyvų analizavimas i eikalingas anksčiau nežinomiems, netivialiems i paktiškai naudingiems duomenims paieškai. Specifika taikoma šiuolaikiniams analitinėms sistemoms: Duomenų kiekis ya neibotas, Duomenys ya skitingų tipų (tekstine, kiekine) Rezultatas tui būti aiškus Panaudoti algoitmai tui būti efektyvus i papasti. Data Mining pagindas tipinių šablonų paieška. Vienas iš populiaiausių duomenų analizavimo algoitmų ya GSP (Geneated Sequence Patten), is pateikiamas palyginimui su PoMFS. 2. Data Mining technologios panaudoimo sitis Veslo spendimai Šiuolaikiniame pasaulye teisingo spendimo piėmimas ya ne tik svabus bet i lemiantis faktoius, klaidos ya penelyg bangus malonumas kaip smulkiems veslininkams taip i taptautiniams kopoacioms. Rizikingos i ne kuo nepagistos finansines opeacios įmonėms dažniausiai tampa kastų. Taigi Data Mining koncepcia potencialiai ya naudinga inkos analitikams, įmones vadovams ų konkuentinėe kovoe. Panaudoant Data Mining technologią galima atsakyti, pavyzdžiui, į sekančius klausimus: Kokias pekes pasiūlyti einamaam pikėui? Kokia tikimybė, kad duota pikėų gupė sueaguos į pateiktą eklamą? A galima pasiinkti optimalią stategią, vykdant pikimo-padavimo opeacias vetybinių popieių bižoe? A galima išduoti bankui keditą nuodytam klientui? Kaip pognozuoti didžiausią telefoninių a elektos tinklų apkovimą? Dėl ko atsianda podukcios bokas? Moksline veikla. Žmonių mokslinėe veikloe ya sukaupta daug duomenų: žmogaus genų baze, visokiausių gamtos eiškinių tyimai.
3. Ryšiai tap Data Mining tiiamų obektų. Data Mining išskiia keletą standatinių yšių tap obektų: Asociacia Įvykių seka Klasifikavimas Klasteizavimas Pognozė Asociacia egzistuoa ei keletas eiškinių ya tapusavį suišti. Apie įvykių seką galima kalbėti tada, kai egzistuoa laike suišti įvykiai, pavyzdžiui: žmogus įsigya paduotuvėe fotoapaatą, tai po kuio laiko is gįžta į paduotuvę pakeisti maitinimo elementų? Klasifikavimo pagalba ištiiami požymiai apibūdinantys gupę, kuiai piklauso kažkuis obektas. Gupės au tui būti žinomos i tik tada galima sufomuluoti taisyklių inkinį. Klasteizacia skiiasi nuo klasifikacios tuo, kad gupės iš anksto nėa žinomos os fomuoamos dinamiškai. Pognozės fundamentas duomenų bazėe saugoma istoinė infomacia i eigu galima suasti šabloną atsispindintį eiškinių keitimo dinamiką, tai ya tikimybę pognozuoti ateities sistemos būseną. 4. GSP (Geneated Sequence Patten) algoitmas Pastebėkime, kad eigu seka ya dažna, tai visi os posekiai taip pat ya dažni. Pavyzdžiui, ei seka AABA ya dažna, tai visi įmanomi posekiai A, B, AA, AB, BA, AAB i ABA ya dažni taip pat. Remiantis šiuo faktu, galime dayti išvadą, kad, ei seka tui nos viena ne dažną posekį, tai i visa seka igi ya ne dažna. Be to, ei seka ya ne dažna,tai visos i os sugeneuotos nauos sekos bus igi ne dažnos. Pimiausia mes tikinsime pimoo lygmens sekas. Jų tuėsime m. Po pimoo lygmens analizės, geneuoami antoo lygmens sekos-kandidatai (sekos ilgis 2). Tuėsime m 2 sekas, tokias kaip (i 1 i 1, i 1 i 2,, i 1 i m, i 2 i 1,, i 2 i m,, i m i 1,, i m i m ). Tačiau os ne visos bus tikinamos. Remiantis pieš tai buvusio (pimoo) lygmens analizės ezultatais, nustatysime kuiose sekose ya ne dažni posekiai. Tokių sekų mes netikinsime. Paanalizuokime pavyzdį. Takime pagindinė seka S ya tokia: S = ABCCCBBCABCABCABCBABCCCABCAABABCABC (1) Mes sakysime, kad posekis ya dažnas tada i tik tada, kai is pasiodo sekoe S ne mažiau kaip 4 katus, t.y minimalus dažnumas (min_sup) ya lygus 4. Visos pimoo lygmens sekos ya dažnos (ž. 2 lentelę). Remiantis šiomis sekomis, geneuoamas antas lygmuo (ž. 3 lentelę). Po antoo lygmens patikinimo geneuoamas tečias lygmuo (ž. 4 lentelę).
Pimas lygmuo 2 lentelė. Lygmuo Seka Dažnumas A dažna? 1 A 10 + 1 B 13 + 1 C 13 + Antas lygmuo 3 lentelė. Lygmuo Seka A tikiname? Dažnumas A dažna? 2 AA + 1-2 AB + 9 + 2 AC + 0-2 BA + 2-2 BB + 1-2 BC + 9 + 2 CA + 6 + 2 CB + 2-2 CC + 4 + Tečias lygmuo 4 lentelė. Lygmuo Seka A tikiname? Dažnumas A dažna? 3 ABA - - - 3 ABC + 8 + 3 ABB - - - 3 BCA + 5 + 3 BCB - - - 3 BCC + 2-3 CAB + 5 + 3 CAA - - - 3 CAC - - - 3 CCA + 1-3 CCB - - - 3 CCC + 2 - Mes netikinsime šešias nauas tečioo lygmens sekas: ABA, ABB, BCB, CAA, CAC, CCB (ž. 3 lentelę), kadangi ose ya nedažni posekiai iš pieš tai buvusio (antoo) lygmens. Ketvitoo lygmens visos nauos sekos tuės nedažnus posekius, vadinasi bus igi ne dažnos. Todėl laikysime, kad algoitmas baigė dabą. Suastos dažnos sekos ya šios: A, B, C, AB, BC, CA, CC, ABC, BCA, CAB. 5. Tikimybinis dažnų sekų nustatymo algoitmas PoMFS (pobabilistic algoithm fo mining fequent sequences) Nauasis tikimybinis dažnų sekų nustatymo algoitmas emiasi šiomis statistinėmis pagindinės sekos chaakteistikomis: elemento pasiodymo tikimybe sekoe, tikimybe, kad vienas elementas eis po kito, atstumo vidukio tap dvieų elementų pagindinėe sekoe. Pagindinė algoitmo idėa ya tokia: 1) tikimybinės chaakteistikos apibūdina elementų pozicias pagindinėe sekoe; 2) emiantis šiomis chaakteistikomis, geneuoama naua, žymiai tumpesnė modelinė seka C ~. 3) naua seka analizuoama GSP algoitmu (aba kokiu nos kitu tiksliu algoitmu); 4) gauti GSP algoitmu dažni posekiai modelinėe sekoe, bus dažni posekiai i pagindinėe sekoe. Pažymėkime:
V ( i ) 1) P( i ) = ya elemento i pasiodymo tikimybė pagindinėe sekoe, ku i L, = 1,..., m. VS Čia L={i 1, i 2,..., i m } ya aibė sudayta iš m skitingų elementų. V ( i ) ya elemento i pasiodymo tikimybė pagindinėe sekoe S; VS ya sekos ilgis. Pastebėkime, kad P ( ) = 1. m = 1 2) P ( i iv ) ya sąlyginė tikimybė, kad elementas i v pasiodys po elemento i, ku i, iv L,, v = 1,..., m. m Pastebėkime, kad P ( i ) = 1 visiems = 1,..., m. v= 1 i v 3) D ( i iv ) ya atstumas tap elemento i i i v, ku i, iv L,, v = 1,..., m. Kitais žodžiais, D ( i iv ) ya skaičius elementų tap i i pimoo suasto i v, ieškant nuo i iki pagindinės sekos pabaigos, ku D ( i iv ) savye tui i v. Atstumas tap dvieų kaimyninių elementų sekoe ya lygis vienam. 4) A ) ya atstumų vidukių matica. Jos elementai ya šie: a v = Aveage ( D( i iv ), i, iv L),, v = 1,..., m. Visos šios chaakteistikos gaunamos vieną katą pežiūėus pagindinę seką. Remiantis šiomis chaakteistikomis, mes sudaome žymiai tumpesnę modelinę seką C ~, kuios ilgis bus lygus l. Pažymėkime os elementus c, = 1,..., l. Modelinė seka C ~ tuės visus elementus iš L: i L, = 1,..., m. Kiekvienam os elementui c, apibėžkime skaitinę chaakteistiką Q ( i, c ), = 1,..., l, = 1,..., m. Padžioe Q ( i, c ) ya matica su nulinėmis eikšmėmis, kuios bus nustatytos po statistinės pagindinės sekos analizės. Papildome algoitmą da viena funkcia ρ ( c, a ). Ši funkcia padidina chaakteistikų Q ( i, c ) eikšmes vienetu. Pimasis elementas c 1 modelinėe sekoe C ~ ya iš L, i nustatomas pagal maksimalią eikšmę max( P ( i )), i L. Pagal c 1 ya aktyvuoama funkcia ρ ( c1, a1 ) Q( i,1 + a1 ) = Q( i,1 + a1 ) + 1, = 1,..., m. Likę elementai c, = 2,...,l, ya paenkami šiuo būdu. Takime, kad noime nustatyti -ąį elementą c modelinėe sekoe C ~. Spendimas, kuis simbolis iš L bus painktas į elementą c, nustatomas po paskaičiavimo max( Q ( i, c )), i L. Jeigu tam tikiems p i t, mes gauname, kad Q i, c ) = Q( i, c ), tada elementas i ( p t c bus painktas pagal maksimalią eikšmę sąlyginių tikimybių, t.y. max( P( c( 1) ip), P( c( 1) it )) : c = ip, eigu P( c( 1) ip ) > P( c( 1) it ), i c = it eigu P( c( 1) i p ) < P( c( 1) it ). Jeigu os ya lygios, t.y. P( c( 1) ip ) = P( c( 1) it ), tada c bus painktas nustatant max( P ( ip ), P( it )). Po c eikšmės pasiinkimo, aktyvuoama funkcia ρ ( c, a ) Q( i, + a ) = Q( i, + a ) + 1. Visi šie veiksmai bus atliekami visiems = 2,...,l. Tokiu būdu mes gauname modelinę seka C ~, kui ya žymiai mažesnė už mūsų naginėamą pagindinę seką. Modelinė seka analizuoama GSP algoitmu i tokiu būdu mes ženkliai sumažiname laiko sąnaudas. Panaginėkime pieš tai buvusiame pavyzdye seką (1) L={A, B, C}, i.e. m=3, i 1 = A, i2 = B, i3 = C. Sekos VS=35, t.y seka sudayta iš 35 elementų. Po vieno sekos patikinimo mes apskaičiuoame tikimybines chaakteistikas: 10 12 13 P ( A) = 0.2857, P ( B) = 0. 3429, P ( C) = 0. 3714, P ( A A) = 0. 1, 35 35 35 P ( A B) = 0.9, P ( A C) = 0, P ( B A) 0. 1667, P ( B B) = 0. 0833, P ( B C) 0.7500, P ( C A) 0. 4615, P ( C B) = 0. 1538, P ( C C) 0. 3077.
Atstumų vidukių matica A ) 4 lentelė A B C A 3.58 1.10 2.50 B 2.64 2.91 1.42 C 2.33 2.25 2.67 Pasiinkime modelinės sekos C ~ ilgį, kuis bus lygus l=8. Padžioe seka C ~ ya tuščia i Q ( i, ) = 0, = 1,...,l, = 1,..., m : R 1 2 3 4 5 6 7 8 A 0 0 0 0 0 0 0 0 B 0 0 0 0 0 0 0 0 C 0 0 0 0 0 0 0 0 Modelinė seka C ~ - - - - - - - - Pimasis elementas C ~ ya gaunamas apskaičiuoant maksimalią P i ) eikšmę. Mūsų pavyzdye bus aidė C, t.y. c 1 = C. Peskaičiuoame Q( i, c1 ), = 1, 2, 3, pasinaudous atstumų vidukiais. Situacia bus tokia: R 1 2 3 4 5 6 7 8 A 0 0 1 0 0 0 0 0 B 0 0 1 0 0 0 0 0 C 0 0 0 1 0 0 0 0 Modelinė seka C ~ C Pasiinkime c 2. Visos tys eikšmės Q( i, c1 ), = 1,2, 3, ya vienodos i lygios 0. Tada c 2 bus nustatyta pagal maksimalią elementų pasiodymo tikimybių eikšmę.. Max(P(C A), P(C B), P(C C)=P(C A)= 0.4615. Vadinasi c 2 = A. Peskaičiuoame Q( i, c2), = 1,2, 3, pasinaudodami atstumų vidukiais. Situacia bus tokia: 1 2 3 4 5 6 7 8 A 0 0 1 0 0 1 0 0 B 0 0 2 0 0 0 0 0 C 0 0 0 1 1 0 0 0 Modelinė seka C ~ C A Kiti tys žingsniai pavaizduoti žemiau: 1 2 3 4 5 6 7 8 A 0 0 1 0 0 2 0 0 B 0 0 2 0 0 1 0 0 C 0 0 0 1 2 0 0 0 Modelinė seka C ~ C A B 1 2 2 3 4 4 6 7 A 0 0 1 0 0 3 0 0 B 0 0 2 0 0 2 0 0 C 0 0 0 1 2 0 1 0 Modelinė seka C ~ C A B C ( c
1 2 3 4 5 6 7 8 A 0 0 1 0 0 3 1 0 B 0 0 2 0 0 2 1 0 C 0 0 0 1 2 0 1 1 Modelinė seka C ~ C A B C C Rezultate gauname tokią modelinę seką C ~ = CABCCABC. GSP algoitmu nustatome, kad dažniausia posekė modelinėe sekoe ya ABC, kai minimalus dažnumas lygus 2. Kita dažna seka ya seka CAB. Pagindinėe sekoe (1), posekės ABC dažnis lygus 8, o sekos CAB 5. Tačiau seka BCA, kuios dažnis lygus 5, nenustatyta i paasta. Viena iš tokių paadimo piežasčių gali būti pe tumpas painktas modelinės sekos ilgis. Ekspeimentiniai ezultatai Tikimybinis dažnų sekų nustatymo algoitmas ya palyginamas su GSP algoitmu. Mes sugeneavome tekstą iš 100000 aidžių (1000 eilučių, kuiose ya po 100 simbolių). L={A, B, C}, t.y. m=3, i 1 = A, i2 = B, i3 = C. Į šį tekstą mes įdėome labai dažnai pasikatoančią seka ABBC. Ši seka pasikatoa 20 katų vienoe eilutėe. Kiti 20 simbolių painkti atsitiktiniu būdu. Pimiausia ištyėme šią pagindinę seką (100000 simbolių) GSP algoitmu. Rezultatai paodyti Pav. 1 i Pav. 2. Aptasime ezultatus, kuiuos gavome su PoMFS algoitmu. PoMFS sugeneavo šią modelinę seką C ~, kuios ilgis l=40: C ~ = BBCABBCABBCABBCABBCABBCABBCABBCABBCABBCA Ši modelinė seka buvo išnaginėta GSP algoitmu su šiais minimaliais dažnumais (Ms): 8, 9, 10, 11, 12, 13 i 14. Rezultatai pavaizduoti Paveiksle 1 i Paveiksle 2. Paveikle1 sulygintas astų dažnų sekų kiekis tap GSP i PoMFS algoitmų. Pav. 2 sulyginamas sugaištas laikas tap GSP i PoMFS algoitmų. Pav. 1 mes matome, kad esant sąlyginai nedideliam minimaliam dažnumui (mažesniam nei 1500) GSP algoitmas suado žymiai daugiau dažnų posekių nei PoMFS. Tačiau esant didesniam minimaliam dažnumui (nuo 2500 iki 6000) ezultatai gaunami apytiksliai vienodi. Tačiau, ei mes sulygintumėme sugaištą laiką tap dvieų algoitmų, mes pastebėtumėme, kad PoMFS algoitmas analizuoa seką žymiai geičiau. Vadinasi galime padayti išvadą, kad PoMFS algoitmas ya efektyvus (žymiai mažesnės laiko sąnaudos), esant sąlyginai dideliam minimaliam dažnumui. Dažnos sekos 350 300 250 200 150 100 GSP Ms 8 Ms 9 Ms 10 Ms 11 Ms 12 Ms 13 Ms 14 50 0 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 6500 7000 7500 Minimalus dažnumas GSP algoitmui pagindinėe sekoe 1 Paveikslas Rastų dažnų sekų kiekio tap GSP i PoMFS algoitmų sulyginimas (minimalus dažnumas PoMFS ya lygus Ms=8,, 14)
300 250 Laikas (s) 200 150 100 GSP Ms 8 50 0 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 6500 7000 7500 Minimalus dažnumas GSP algoitmui pagindinėe sekoe 2 Paveikslas GSP i PoMFS laiko sąnaudų sulyginimas (minimalus dažnumas PoMFS lygus Ms=8)