arvostelija Assosiaatiosäännöt sekvensseissä Jarmo Hakala Vantaa 20.10.2005 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos



Samankaltaiset tiedostot
Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

Tutorial on Assignment 3 in Data Mining 2008 Association Rule Mining. Gyozo Gidofalvi Uppsala Database Laboratory

Assosiaatiosäännöt ja niiden etsintä datasta

Assosiaatiosääntöjen louhinnan tehostaminen

Department of Mathematics, Hypermedia Laboratory Tampere University of Technology. Roolit Verkostoissa: HITS. Idea.

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Esimerkkejä vaativuusluokista

ECDL Tietokannat. Copyright 2015 ECDL Foundation ECDL Tietokannat Sivu 1 / 7

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

Data Mining - The Diary

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö)

FYYSINEN SUUNNITTELU

Monihaku ja sähköiset aineistot tutuksi. Jyväskylän kaupunginkirjaston tiedonhaun koulutus

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Action Request System

Cantorin joukon suoristuvuus tasossa

Dynaaminen ohjelmointi ja vaikutuskaaviot

33. pohjoismainen matematiikkakilpailu 2019 Ratkaisut

arvostelija OSDA ja UDDI palveluhakemistoina.

10. Painotetut graafit

Liitosesimerkki Tietokannan hallinta, kevät 2006, J.Li 1

monitavoitteisissa päätöspuissa (Valmiin työn esittely) Mio Parmi Ohjaaja: Prof. Kai Virtanen Valvoja: Prof.

Tutki ja kirjoita -kurssi, s-2005

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

Kirjoja vai kirjallisuutta etsimässä? Kaunokirjallisuuden haku Melindasta käyttäjän näkökulma

Relevanttien sivujen etsintä verkosta: satunnaiskulut verkossa Linkkikeskukset ja auktoriteetit (hubs and authorities) -algoritmi

Paikkatieto ja assosiaatiosäännöt

Paikkatieto ja assosiaatiosäännöt. Referenssipiirre. Spatiaaliset assosiaatiosäännöt

Sekvenssihahmojen louhinta XML-dokumenteista

v 8 v 9 v 5 C v 3 v 4

a b c d

Suunnittelumallien käyttö ja web-navimallit

Algoritmit 1. Luento 9 Ti Timo Männikkö

Ohjelmoinnin peruskurssi Y1

XML-tutkimus Jyväskylän yliopistossa

Algoritmit 1. Luento 10 Ke Timo Männikkö

Pohjoismaisen geenipankin informaatiojärjestelmä on nimeltään SESTO (=Seed store) ja se sisältää tietoja lähes kaikista geenipankin omista

Relaatiomalli ja -tietokanta

Tehtävä 2: Säännölliset lausekkeet

Peräkkäishahmojen tunnistaminen webin käytön louhinnassa

Assosiaatiosääntöjen johtaminen epäyhtenäisellä minimituella

Käsiteanalyysi prosessina ja tarveanalyysi

2. Käsiteanalyysi ja relaatiomalli

Kielitieteellisten aineistojen käsittely

KÄSITEANALYYSI PROSESSINA JA TARVEANALYYSI

Liitosesimerkki. Esim R1 R2 yhteinen attribuutti C. Vaihtoehdot

Algoritmit 1. Luento 13 Ti Timo Männikkö

Fiction searching from an enriched library web service

Tulosten arviointi. tulosten arviointi. voimmeko luottaa saamiimme tuloksiin?

FUNKTIONAALIANALYYSIN PERUSKURSSI Johdanto

Algoritmi on periaatteellisella tasolla seuraava:

Määrittelydokumentti

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Tietotekniikka ei riitä palvelujen tuottavuus ratkaisee. Olli Martikainen

Luku 3. Listankäsittelyä. 3.1 Listat

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB

ProQuest Dissertations & Thesis: The Humanities and Social Sciences Collection

A* Reitinhaku Aloittelijoille

Ohjelmoinnin perusteet Y Python

Projektisuunnitelma. Projektin tavoitteet

Luonnolliset vs. muodolliset kielet

Reiluus. Maxmin-reiluus. Tärkeä näkökohta best effort -tyyppisissä palveluissa. Reiluuden maxmin-määritelmä

COCHRANE LIBRARY tietokannat. Merja Jauhiainen Työterveyslaitos Tietopalvelukeskus

Mohrin-Mascheronin lause kolmiulotteisessa harppi-viivaingeometriassa

Stabiloivat synkronoijat ja nimeäminen

Ontologiakirjasto ONKI-Paikka

Algoritmit 1. Luento 10 Ke Timo Männikkö

PN-puu. Helsinki Seminaari: Tietokannat nyt HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, tentin päiväys, oma nimesi, syntymäaikasi ja nimikirjoituksesi.

eage maisterivalinnan hakukohteen akateemisen arvioijan koulutus

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

Harjoitustehtävät, syys lokakuu Helpommat

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

JOHDATUS TEKOÄLYYN TEEMU ROOS

FETAL FIBROBLASTS, PASSAGE 10

Algoritmit 2. Luento 8 To Timo Männikkö

Hankintaesityksen tekeminen EBSCOhost Collection Managerissa

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Samanaikaisuuden hallinta Snapshot Isolationin avulla

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

203 Asetetaan neliöt tasoon niin, että niiden keskipisteet yhtyvät ja eräiden sivujen välille muodostuu 45 kulma.

Algoritmit 1. Luento 5 Ti Timo Männikkö

Graafin 3-värittyvyyden tutkinta T Graafiteoria, projektityö (eksakti algoritmi), kevät 2005

Helsingin seitsemäsluokkalaisten matematiikkakilpailu Ratkaisuita

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

A-osio. Ilman laskinta. MAOL-taulukkokirja saa olla käytössä. Maksimissaan tunti aikaa. Laske kaikki tehtävät:

Metatieto mihin ja miten? Juha Hakala Helsingin yliopiston kirjasto

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python


EU-rikollisia koskevien tietojen laadun parantaminen

Johdatus rakenteisiin dokumentteihin

Luento 2: Tiedostot ja tiedon varastointi

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

Avoimen lähdekoodin kaksitasokielioppikääntäjä

Matriisit ja vektorit Matriisin käsite Matriisialgebra. Olkoon A = , B = Laske A + B, , 1 3 3

811120P Diskreetit rakenteet

Luento 7. June 3, 2014

proc glm data = ex61; Title2 "Aliasing Structure of the 2_IV^(5-1) design"; model y = A B C D E /Aliasing; run; quit;

8 Joukoista. 8.1 Määritelmiä

1. a) Laadi suoraviivaisesti kyselyä vastaava optimoimaton kyselypuu.

Transkriptio:

hyväksymispäivä arvosana arvostelija Assosiaatiosäännöt sekvensseissä Jarmo Hakala Vantaa 20.10.2005 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Tiivistelmä Assosiaatiosäännöt sekvensseissä on Jarmo Hakalan Vantaalla syksyllä 2005 laatima kaksitoistasivuinen tutkielma, joka tarkastelee toistuvien sekvenssihahmojen löytämisongelmaa ja analysoi kahdentyyppisiä algoritmeja ongelman ratkaisemiseksi. Tutkielma kuuluu luokkaan H.3.3 Tiedonhaku ja jäljitys (Information Search and Retrieval ACM:n tietojenkäsittelytieteen luokitusjärjestelmässä ACM Computing Classication System (1998). Tutkielmassa vertailtavista algoritmeista SPADE-algoritmi päihittää Apriori-algoritmin johdokset etenkin siksi, että se pystyy löytämään kaikki pitkätkin sekvenssihahmot, kun taas Apriorialgoritmin johdokset soveltuvat ainoastaan lyhyiden hahmojen etsimiseen.

i Sisältö 1 Johdanto 1 2 Toistuvat sekvenssihahmot 2 2.1 Määrälliset assosiaatiosäännöt.................. 2 2.2 Sekvenssihahmosääntöjen määritelmä.............. 3 2.3 Mihin sekvenssihahmoja tarvitaan?............... 6 3 Hahmojen tunnistus 7 3.1 Apriori-algoritmi......................... 7 3.2 SPADE-algoritmi......................... 9 3.3 Arviointia............................. 10 4 Yhteenveto 10

1 Johdanto Sekvenssihahmojen löytäminen suurista sekvenssitietokannoista on tärkeä tiedon löytämisen ja louhinnan ongelma. Monia eri toimialoja, kuten esimerkiksi vähittäiskauppaa ja telekommunikaatiosektoria, hyödyttävät sovellukset käyttävät toistuvia sekvenssihahmoja tiedon louhintaan. Kun esimerkiksi asiakkaan ostoskoritietoja sisältävissä tietokannoissa jokainen tietosekvenssi (sekvenssi = jono peräkkäisiä tapahtumia) vastaa asiakkaan tekemiä ostoksia, ovat sekvenssihahmot käyttökelpoisia tulevien asiakkaiden ostokäyttäytymisten ennustamisessa. Web-palvelimet generoivat suuria määriä lokitietoa päivittäin hankkimalla sivukäyntisekvenssejä jopa miljoonilta käyttäjiltä. Kun toistuvia sekvenssihahmoja pystytään löytämään Web-lokeista, on esimerkiksi mahdollista luoda paremmin hyperlinkitetty rakenne korreloivien sivujen välillä [GRS99]. Tämän tutkielman toisessa luvussa perehdytäänkin assosiaatiosääntöjen määritelmän kautta sekvenssihahmojen määritelmään ja edelleen sekvenssihahmojen käytön hyödyllisyyteen. Tutkielman kolmannessa luvussa tutustutaan kahteen erilaiseen algoritmiin, Apriori-algoritmiin sekä SPADE-algoritmiin. Sekvenssihahmoja pyrittiin löytämään vuoteen 1997 asti pääasiallisesti Apriori-algoritmiin perustuvilla algoritmijohdoksilla, kunnes Mohammed J. Zaki esitteli SPADE-algoritmin [Zak97]. SPADE-algoritmilla pystytään löytämään kaikki pitkätkin toistuvat hahmot - ja vielä hyvin tehokkaasti, mihin taas Apriori-algoritmin johdoksilla ei ole kyetty. 1

2 Toistuvat sekvenssihahmot Tässä luvussa paneudutaan toistuvien sekvenssihahmojen (frequent sequence patterns) maailmaan. Ensimmäisessä aliluvussa Määrälliset assosiaatiosäännöt annetaan määrällisen assosiaatiosäännön määritelmä sekä määritellään ongelma lyhyesti. Seuraavassa aliluvussa Sekvenssihahmosääntöjen määritelmä annetaan kattavat esimerkit sekvenssihahmosäännöistä, matemaattinen määritelmä sekä määritellään ongelma lyhyesti. Kolmas aliluku Mihin sekvenssihahmoja tarvitaan? perustelee sekvenssihahmojen tarpeen. 2.1 Määrälliset assosiaatiosäännöt Esimerkki määrällisestä assosiaatiosäännöstä (quantitative association rule): 30 % olutta sisältävistä ostoksista sisältää myös vaippoja, ja 2 % kaikista ostoksista sisältää näitä molempia artikkeleita. Esimerkki säännön tuesta (support): '2 leipää, 3 olutta, 1 pkt vaippoja' tukee alijoukkoa '1-3 leipää, 1-5 olutta'. Olkoon I = {i 1, i 2,, i m } attribuuttien joukko. Tarkoittakoon P positiivisten kokonaislukujen joukkoa ja I V joukkoa I P. Pari x, v I V tarkoittaa attribuuttia x, jolla on assosiaatioarvo (associated value) v. Olkoon I R joukko { x, l, u I P P l u, jos x on määrällinen attribuutti; l = u, jos x on luokitteleva attribuutti }. Kolmikko x, l, u I R tarkoittaa siis joko määrällistä attribuuttia x, jolla on intervallissa [l, u] arvo tai luokittelevaa attribuuttia x, jolla on arvo l. Kolmikkoa (triple) x, l, u I R kutsutaan yksiköksi (item). Millä tahansa X I R, attribuutit(x) tarkoittavat joukkoa {x x, l, u X}. [AgS96b] Olkoon D tietokantataulu, missä jokainen tietue R on attribuuttien arvo- 2

joukko siten, että R I V. Jokainen tietue sisältää kunkin attribuutin vain kerran. Tällöin tietue R tukee X I R, jos x, l, u X( x, q R siten, että l q u). Määrällinen assosiaatiosääntö on ilmaus X Y, missä X I R, Y I R, ja attribuutit(x) attribuutit(y )=. Sääntö X Y pitää tietuejoukossa D luottamuksella (condence) c jos c% tietueista joukossa D, jotka tukevat joukkoa X tukevat myös joukkoa Y. Säännöllä X Y on tuki s tietokantataulussa D, jos s% D:n tietueista tukee X Y. [AgS96b] Määrällisten assosiaatiosääntöjen louhintaongelma on löytää kaikki ne määrälliset assosiaatiosäännöt, joilla on tuki ja luottamus suurempi kuin käyttäjän määrittelemä minimituki (minsup) ja minimiluottamus (minconf ). 2.2 Sekvenssihahmosääntöjen määritelmä Esimerkkinä sekvenssihahmosta voidaan ajatella seuraavaa: 5 % asiakkaista osti vuoden sisään ensin kirjan 'Sormuksen ritarit', sitten kirjan 'Kaksi tornia' ja sitten kirjan 'Kuninkaan paluu'. Vaikka joku asiakas ostaisi muitakin kirjoja näiden kirjojen välissä, sisältää sen asiakkaan tietosekvenssi myös edellä mainitun sekvenssihahmon. Sekvenssihahmojen elementit saavat myös olla yksiköiden joukkoja, esimerkiksi Kirjaostotapahtumaa 'Sormuksen ritarit' ja 'Kaksi tornia' seurasi kirjaostotapahtuma 'Kuninkaan paluu' ja 'Hobitit'. Kuitenkin sekvenssihahmoelementin kaikkien yksiköiden on löydyttävä tietosekvenssin transaktioista, jotta hahmoa voidaan tukea [AgS96a]. Olkoon I = {i 1, i 2,, i m } eri attribuuttien joukko, jota myös kutsutaan yksiköksi. Yksikköjoukko (itemset) on epätyhjä järjestämätön yksiköiden kokoelma. Sekvenssi on kasvavassa järjestyksessä oleva lista yksikköjoukkoja. Yksikköjoukko i on {i 1, i 2,, i k }, missä i j on yksikkö. Yksikköjoukko, jossa on k yksikköä on k-yksikköjoukko. Sekvenssillä α tarkoitetaan jonoa (α 1 α 2 3

α n ), missä sekvenssielementti α j on yksikköjoukko. Sekvenssiä, jossa on k yksikköä (k = j α j ), kutsutaan k-sekvenssiksi. Esimerkiksi (B AC) on 3-sekvenssi. Yksikkö voi esiintyä ainoastaan kerran kussakin yksikköjoukossa, mutta se voi esiintyä useita kertoja sekvenssin eri yksikköjoukoissa [Zak97]. Sekvenssi α 1 = (α 1 α 2 α n ) on toisen sekvenssin β = (β 1 β 2 β m ) alisekvenssi (merkitään α β), jos kaikille x N (N = 1,..., n)on olemassa indeksi j x M siten, että a x b j x ja mille tahansa x, y N, jos x < y, niin j x < j y. Esimerkiksi sekvenssi (B AC D) on sekvenssin (AB E ACE BE DE) alisekvenssi, koska sekvenssielementit B AB, AC ACD ja D DE. Toisaalta sekvenssi (AB E) ei ole sekvenssin (ABE) alisekvenssi eikä päinvastoin [Zak97]. Oletetaan, että asiakkaalla C ei ole enempää kuin yksi transaktio (esimerkiksi ostotapahtuma), jolla on sama aikaleima. Tällöin transaktioaikaa voidaan käyttää transaktion tunnuksena. Oletetaan myös, että lista asiakastransaktioita lajitellaan transaktioajan mukaan. Täten asiakkaan transaktiolista on itsessään sekvenssi, ns. asiakassekvenssi. Tietokanta D koostuu useasta sellaisesta asiakassekvenssistä. Asiakassekvenssin C sanotaan sisältävän sekvenssin α, jos α on asiakassekvenssin C alisekvenssi. Sekvenssin α tuki (toistuvuus) on kaikkien niiden asiakkaiden osuus, jotka sisältävät tämän sekvenssin (Kaava 1). Sekvenssi on toistuva, jos fr(α, D) minsup. Toistuvien k-sekvenssien joukko merkitään F k1 [Zak97]. ja kaikkien toistuvien sekvenssien joukko F = k F k fr(α, D) = {C D C contains α} D Kaava 1. Sekvenssin toistuvuus [Zak97]. 4

Ajatellaan tietokantaa (Taulukko 1), jossa on kahdeksan yksikköä, yksiköstä A yksikköön H, neljä asiakasta ja kaiken kaikkiaan 10 transaktiota. Kahdella asiakkaalla eli 50 %:n minimituella saadaan seuraavat toistuvat sekvenssit (jokaisen sekvenssin tuki on hakasulkeissa): F 1 = {(A)[4], (B)[4], (D)[2], (F )[4]} F 2 = {(AB)[3], (AF )[3], (B A)[2], (BF )[4], (D A)[2], (D B)[2], (D F )[2], (F A)[2]} F 3 = {(ABF )[3], (BF A)[2], (D BF )[2], (D B A)[2], (D F A)[2]} F 4 = {(D BF A)[2]} Löydettyjä sekvenssejä voidaan käyttää sääntöjen löytämiseen ja eri sekvenssiyksiköiden suhteiden kuvaamiseen. Esimerkiksi sekvenssi (BF ) löytyy neljältä asiakkaalta, kun taas (ABF ) kolmelta asiakkaalta. Eli jos BF löytyy yhdessä, on 75 %:n todennäköisyys, että myös A löytyy. Tällöin säännöllä (BF ) (BF A) on 75 %:n luottamus. Yksinkertaisella algoritmilla (Algoritmi 1) voidaan luoda kaikki ne säännöt, kunhan tiedetään ne sekvenssit, joilla on tietty minimiluottamus [Zak97]. Asiakastunnus Transaktioaika Yksikot 1 10 CD 1 15 ABC 1 20 ABF 1 25 ACDF 2 15 ABF 2 20 E 3 10 ABF 4 10 DGH 4 20 BF 4 25 AGH Taulukko 1. Tietokantataulu [Zak97]. 5

1)RuleGen(F, minconf ): 2) for all frequent sequences β F do 3) for all subsequences α β do 4) conf = fr(β)/fr(α); 5) if (conf minconf ) then 6) output the rule α β, and conf Algoritmi 1. Algoritmi sääntöjen luomiseen [Zak97]. Kun tavalliset assosiaatiosäännöt kuvaavat pelkästään transaktion sisäisiä hahmoja (yksikköjoukkoja), sekvenssihahmojen kohdalla assosiaatiosäännöt merkitsevät myös transaktioiden välisten hahmojen eli sekvenssien löytämistä. Tällöin kaikkien toistuvien sekvenssien joukko on kaikkien toistuvien yksikköjoukkojen ylijoukko [Zak97]. Sekvenssihahmojen louhintaongelmana on löytää kaikki sekvenssihahmot, joilla on käyttäjän määrittelemä minimituki. Hahmon tuki on hahmon sisältävien tietosekvenssien prosenttiosuus tietokannassa [AgS96a]. 2.3 Mihin sekvenssihahmoja tarvitaan? Vähittäiskaupan asiakkaan tiettynä ajanjaksona tekemistä ostoksista voidaan muodostaa tietosekvenssi. Tietosekvenssistä saa irti mm. sen, minkä tuotteen B asiakkaat tyypillisesti ostavat ostettuaan ensin tuotteen A. Tällöin sekvenssihahmot ovat käyttökelpoisia tulevien asiakkaiden ostokäyttäytymisten ennustamisessa. Web-palvelimet generoivat suuria määriä lokitietoa päivittäin hankkimalla sivukäyntisekvenssejä jopa miljoonilta käyttäjiltä. Kun toistuvia sekvenssihahmoja pystytään löytämään Web-lokeista, on esimerkik- 6

si mahdollista luoda paremmin hyperlinkitetty rakenne korreloivien sivujen välillä [GRS99]. Sekvenssihahmosovellukset ovat hyödyllisiä myös muilla toimialoilla, kuten telekommunikaatiosektorilla (esimerkiksi hälytysdiagnoosi) ja lääketiedesektorilla (esimerkiksi sairautta edeltävien oireiden tunnistaminen) [Zak97]. 3 Hahmojen tunnistus Tässä luvussa esitellään kaksi algoritmia, joita on vuosien saatossa käytetty hahmojen louhintaan. Ensimmäisessä aliluvussa Apriori-algoritmi annetaan pseudokoodi Apriori-algoritmille, josta on tehty useita muunnelmia erilaisten hahmojen louhintaongelmien ratkaisemiseksi. Toisessa aliluvussa SPADEalgoritmi esitellään algoritmi, joka pystyy tekemään tehokkaan sekvenssihaun ja lisäksi löytämään kaikki pitkätkin hahmot - toisin kuin Apriorialgoritmin johdokset. Viimeisessä aliluvussa Arviointia tutkielman tekijä pohtii ja vertailee esiteltyjä algoritmeja. 3.1 Apriori-algoritmi Monet hahmonlouhinta-algoritmit ovat Apriori-algoritmin (Algoritmi 2.) muunnoksia. Apriori-algoritmi löytää hahmot etsimällä toistuvia yksikköjoukkoja. Toistuva yksikköjoukko on niiden yksikköjen joukko, jotka löytyvät jostain tietokannan tietueesta ja jotka täyttävät tietyt käyttäjän määrittelemät ehdot. Apriori-algoritmi suorittaa alhaalta ylös etenevän haun, jossa jokainen yksittäinen toistuva yksikköjoukko luetellaan [AgS94]. 7

1) L={large 1-itemsets}: 2) for (k = 2; L k 1 ; k + +) do begin 3) C k = apriori-gen (L k 1 ); // New candidates 4) forall transactions t D do begin 5) C t = subset (C k, l); //Candidates contained in l 6) forall candidates c C t do 7) c.count++; 8) end 9) L k = (c C k c.count minsup) 10) end 11) Answer = k L k; Algoritmi 2. Apriori-algoritmi (määrällisten hahmojen löytämiseen) [AgS94]. Apriori-algoritmista on sen esittelyn jälkeen tehty useita eri muunnelmia. Aprioriin perustuvat hahmonlouhinta-algoritmit on suurimmaksi osaksi luotu toimimaan tietokannoissa, joissa pisimmät hahmot ovat kuitenkin suhteellisen lyhyitä. Pitkiä hahmoja voivat olla esimerkiksi eri kyselyjen tulokset, kanta-asiakkaan pitkän aikavälin ostoksia kuvaavat myyntitapahtumat sekä DNA:n ja proteiinianalyysin biologiset tiedot. Monilla luokitelluilla tietojoukoilla saattaa olla pitkiä hahmoja, koska ne sisältävät useita toistuvia yksiköitä, ja tietueiden pituudet ovat keskiarvoiltaan suuria. Koska tutkimukset ovat osoittaneet, että Aprioriin perustuvat algoritmit ovat riittämättömiä pitkien hahmojen tietojoukoille [Bay98], on niille alettu kehittää parempia algoritmeja. Apriori-algoritmi perustuu siihen, että toistuvien yksikköjoukkojen kaikki alijoukot ovat myös toistuvia. Eli jos halutaan tuottaa toistuva yksikköjouk- 8

ko, jonka pituus on l, pitää myös tuottaa kaikki 2 l alijoukkoa. Tällainen eksponentiaalinen monimutkaisuus rajoittaa Apriori-tyyppisten algoritmien käytön ainoastaa lyhyisiin hahmoihin [Bay98]. 3.2 SPADE-algoritmi SPADE-algoritmissa (Sequential Pattern Discovery using Equivalence classes) käytetään tietokantaformaattina vertikaalista listaa. Siinä jokaiseen sekvenssiin liitetään lista objekteista sekä aikaleimoista. Kaikki toistuvat sekvenssit pystytään luettelemaan yksinkertaisilla tilapäisillä listojen liitoksilla (tai leikkauksilla). Verkkotietorakennetta käytetään alkuperäisen hakutilan (verkon) hajottamiseksi pienempiin palasiin (aliverkkoihin). Aliverkot voidaan prosessoida itsenäisesti keskusmuistissa. Tällainen lähestymistapa vaatii tavallisesti vain kolme tietokannan läpikäyntiä; tai vain yhden läpikäynnin, jos informaatiota on esiprosessoitu (tämä minimoi I/O-kustannuksia). Jokaisen aliverkon toistuvien sekvenssien luettelemiseksi on olemassa kaksi erilaista hakustrategiaa, leveyssuuntainen (breadth-rst) tai syvyyssuuntainen haku (depth-rst) [Zak01]. SPADE-algoritmi on melko monimutkainen, joten tässä tutkimuksessa sivuutetaan sen perusteellisempi esittely. Tarkemmat vaiheet on selvitetty M.J. Zakin artikkelissa [Zak01]. SPADE-algoritmilla löydetään kaikki toistuvat sekvenssit tavallisesti vain kolmella tietokannan läpikäymisellä. Lisäksi SPADE-algoritmilla on erinomaiset skaalautuvuusominaisuudet suhteessa asiakkaiden määriin, transaktioiden määriin per asiakas, transaktion kokoon ja mahdollisiin maksimaalisen kokoisiin toistuviin sekvensseihin [Zak97]. SPADE ei ainoastaan minimoi I/O-kustannuksia vähentämällä tietokannan läpikäyntejä, vaan myös mini- 9

moi laskentakustannuksia käyttämällä tehokasta hakukaavaa [Zak01]. Tutkimusten mukaan SPADE-algoritmi löi ilmestyessään edellä mainittujen ominaisuuksiensa ansiosta kaikki siihen mennessä ilmestyneet Apriori-algoritmiin perustuneet algoritmit [Zak97]. 3.3 Arviointia Apriori-algoritmiin perustuvat hahmonlouhinta-algoritmit, kuten esimerkiksi Agrawalin ja Srikantin kehittämä GSP-algoritmi, ovat käyttökelpoisia silloin, kun tietokannan hahmot ovat lyhyitä eikä algoritmin tehokkuus näyttele tärkeää roolia louhintatyössä. Nykyisin kuitenkin tarvitaan tehokkaita algoritmeja laajojen tietokantojen läpikäyntiin sekä sitä, että algoritmin pitää pystyä luomaan analysoitavat tietosekvenssit pitkistäkin hahmoista, esimerkiksi biotekniikan alueella. Näihin vaatimuksiin ei Apriori-algoritmin johdoksilla ole kyetty vastaamaan, mutta kylläkin SPADE-algoritmilla. SPADEalgoritmilla pystytään käymään läpi suuria tietokantoja hyvin tehokkaasti ja lisäksi se kykenee käsittelemään kaikenkokoiset hahmot. 4 Yhteenveto Esimerkki sekvenssihahmosta on: 0.5 % Akateemisen kirjakaupan asiakkaista osti vuosina 2003-2004 ensin kirjan 'Sormuksen ritarit', sitten sekä kirjan 'Kaksi tornia' että 'Kuninkaan paluu'. Tällaisen sekvenssihahmon löytäminen edesauttaa kirjakaupan markkinointikampanjoita ja on apuna myös tilausten suunnittelussa. Kun sekvenssihahmojen pituudet muodostuvat pitkiksi, ei niitä pystytä löytämään Apriori-algoritmin avulla. SPADE-algoritmilla pystytään kaikki tois- 10

tuvat tietosekvenssit löytämään tavallisesti kolmella tietokannan läpikäymisellä. Tässä suhteessa se on ylivoimainen Apriori-algoritmin johdoksiin verrattuna. Tulevaisuuteen jää sen asian tutkiminen, löytyisikö SPADE-algoritmiin tehokkaita muunnelmia, joilla toistuvien tietosekvenssien löytämiseen vaadittaisiin vain kaksi tietokannan läpikäyntiä. 11

Viitteet [AgS94] Agrawal, R., Srikant, R., Fast Algorithms for Mining Association Rules. Proceedings of the twentieth International Conference on Very Large Data Bases (VLDB) 1994. [AgS96a] Agrawal, R., Srikant, R., Mining Sequential Patterns: Generalizations and Performance Improvements. Proceedings of the fth International Conference on Extending Database Technology: Advances in Database Technology table of contents. 3-17. 1996. [AgS96b] Agrawal, R., Srikant, R., Mining Quantitative Association Rules in Large Relational Tables. SIGMOD '96 6/96, Montreal, Canada. [Bay98] Bayardo Jr., R.,.Eciently Mining Long Patterns from Database. Proceedings of the 1998 ACM-SIGMOD International Conference on Management of Data, 85-93. [GRS99] Garofalakis, M., Rastogi, R., Shim, K., SPIRIT: Sequential Pattern Mining with Regular Expression Constraints. Conference on Information and Knowledge Management. Proceedings of the eleventh international conference on Information and knowledge management 1999. [Zak97] Zaki, M., Fast Mining of Sequential Patterns in Very Large Databases. Techical Report 668. The University of Rochester, New York, November 1997. [Zak01] Zaki, M., SPADE: An Ecient Algorithm for Mining Frequent Sequences. Machine Learning vol 42, 31-60, 2001. 12