Assosiaatiosäännöt ja niiden etsintä datasta Wilhelmiina Hämäläinen 6. helmikuuta 2007 1 Mitä on tiedon louhinta? Tiedonlouhinnan (Data mining) tavoitteena on löytää kiinnostavia hahmoja datasta. hahmo=osittaismalli (kuvaa vain osan datasta) vs. (globaali) malli=kuvaa koko dataa esim. Useimmat opiskelijat, jotka ovat hyviä Tietorakenteissa, ovat hyviä myös Laskennateoriassa. Ei kerro mitään opiskelijoista, jotka huonoja Tietorakenteissa. Juuret tilastotieteessä (erit. Exploratory data analysis) ja koneoppimisessa (Machine learning). Menetelmiä algoritmiikasta ja tietokannoista. Nykyisin alan asiantuntijat puhuvat mieluummin tietämyksen muodostuksesta (Knowledge discovery, KDD), joka on laajempi prosessi: 1. Understanding domain 2. Preprocessing data 3. Discovering patterns 4. Postprocessing results 5. Application (3. askel = varsinainen data mining) 1
Data mining vs. Machine learning Klassisia eroja: Data mining Machine learning Oletus: Data ensisijaista, ei sisällä Data on allaolevan mallin välttämättä mitään tuottamaa rakennetta Tavoite: Löytää kaikki kiinnostavat Oppia yksi malli, jolla voidaan hahmot, jotka kuvaavat dataa ennustaa tulevaisuuden tapahtumia Mallit: Yksinkertaisia malleja tai Melko monimutkaisia, globaaleja paikallisia hahmoja malleja Korostus: Koko KDD prosessi Vain oppimisaskel Datan alkuperä: Usein jonkun toisen projektin Valittu kyseistä tehtävää sivutuotteena varten (opetusjoukko) Datan määrä: Valtavan suuria, jopa miljoonia Vain satoja tai tuhansia rivejä. rivejä Nykyisin raja hämärtynyt! Käyttävät samoja mallinnusparadigmoja, mutta eri tavoite: DM: datan kuvaus, uuden informaation löytyminen ML: globaalin mallin oppiminen ennustustarkoituksiin Ennemmin kannattaisi puhua deskriptiivisestä ja prediktiivisestä mallinnuksesta! 2
2 Notaatiot A Attribuutin eli muuttujan nimi Dom(A) Attribuutin arvoalue. Esim. Dom(A 1 ) = {0, 1}. A i = a i Attribuutin arvo R = {A 1,..., A k } Relaatioskeema kertoo attribuuttien nimet. Näihin liittyvät arvoalueet Dom(A 1 ),..., Dom(A k ). t = [t(a 1 ), t(a 2 ),..., t(a k )] Monikko eli rivi, joka kiinnittää attribuuttien arvot. t(a i ) = a i Attribuutin A i arvo monikossa t. r = {t 1,..., t n } Relaatio, joukko rivejä skeeman R mukaan. r Dom(A 1 )... Dom(A k ). r = n Relaation koko, sen rivien lukumäärä. m(a i = a i ) Rivien lukumäärä, joilla A i = a i. Ts. (A i = a i ):n absoluuttinen frekvenssi. P (A i = a i ) = m(a i=a i ) (A n i = a i ):n suhteellinen frekvenssi relaatiossa, sen estimoitu todennäköisyys. Huom! Assosiaatiosäännöissä tarkastelemme usein attribuuttijoukkoa X R, X = {A i1, A i2,...a il }, l k. A i1 = a i1,..., A il = a vastaa loogista konjunktiolauseketta, jossa kukin A ij = a ij on propositio (pilkku vastaa konjunktiota ). Nyt m(a i1 = a i1,..., A il = a il ) = {t r t(a i1 ) = a i1... t(a il ) = a il }. Huom.2: Jos kaikki attribuutit ovat binaarisia ts. Dom(A i ) = {0, 1} i = 1,..., k, voimme käyttää loogisia merkintöjä A (A = 1) ja A (A = 0). 3 Assosiaatiosäännöt Muotoa Asiakkaat, jotka ostavat olutta ja makkaraa, ostavat yleensä myös sinappia olevia osittaisriippuvuuksia. Alkujaan [AIS93], hyvä esitys [Toi96] Määritelmä 1 (Assosiaatiosääntö) Olkoon R joukko kategorisia muuttujia ja r R:n mukainen relaatio. Olkoon X = {X 1,..., X l } R ja Y R, Y / X. Merkitään arvokombinaatiota (X 1 = x 1 ),..., (X l = x l ), x i Dom(X i ), X = x:llä. Tällöin säännön (X = x) (Y = y) kondenssi on cf(x = x Y = y) = P (X = x, Y = y) P (X = x) 3 = P (Y = y X = x)
ja sen frekvenssi on fr(x = x Y = y) = P (X = x, Y = y). Annettuna raja-arvot min cf, min fr [0, 1], sääntö (X = x) (Y = y) on assosiaatiosääntö r:ssä, jos (i) cf(x = x Y = y) min cf, ja (ii) fr(x = x Y = y) min fr. Ehto (i) edellyttää, että sääntö on tarpeeksi vahva ja ehto (ii), että se on tarpeeksi yleinen. Huom! Kun kaikki attribuutit ovat binäärisiä eikä olla kiinnostuneita attribuuttien negaatioita, merkitään sääntöä (X 1 = 1, X 2 = 1,..., X l = 1) Y = 1 usein lyhyesti X 1 X 2... X l Y. Esimerkki 1 Olkoon TKTL:n kurssisuoritustietokannassa 1000 opiskelijaa. Löydämme assosiaatiosäännön 90% opiskelijoista, jotka ovat suorittaneet Tiedonlouhinta-kurssin, on suorittanut myös Opetusteknologia-kurssin. Säännön kondenssi on siis 0.90. Jos vain 10 oppilasta 1000:sta on suorittanut Tiedonlouhinta-kurssin, on 9 suorittanut Opetusteknologia-kurssin ja sääntö hyvin harvinainen (frekvenssillä 9/1000 = 0.009). Jos sen sijaan 600 oppilasta on suorittanut Tiedonlouhintakurssin, on 540 oppilasta suorittanut myös Opetusteknologia-kurssin, mikä on jo merkittävä havainto (frekvenssillä 540/1000 = 0.54). Täytyy siis huomioida sekä säännön yleisyys (frekvenssi) että voimakkuus (kondenssi)! Huom.2! Tietokantojen yhteydessä puhutaan usein funktionaalisista riippuvuuksista, joita merkitään samaan tapaan X Y. Funktionaalinen riippuvuus merkitsee kuitenkin eri asiaa: X Y on funktionaalinen riippuvuus relaatiossa r jos ja vain jos t 1 [Y ] = t 2 [Y ] kaikilla t 1, t 2 r, joilla t 1 [X] = t 2 [X]. Riippuvuus pätee kaikkien X:n ja Y :n arvojen välillä. Riippuvuutta vastaa siis joukko assosiaatiosääntöjä! (Jos X = 1, Y = 1 ja X ja Y binäärisiä, niin kaksi sääntöä: X = 0 Y = y 1 ja X = 1 Y = y 2, missä y 1, y 2 {0, 1}.) Kunkin säännön kondenssi on aina cf = 1, mutta frekvenssistä ei olla kiinnostuneita. 4
4 Sovelluksia 4.1 Ostoskoridatan analyysi Assosiaatiosääntöjen tunnetuin sovellus on asiakkaiden ostotottumusten analysointi ostoskoridatasta. Tulosten perusteella kauppias voi esim. päättää, miten tuotteet kannattaa sijoitella kaupassa. Ostoskoridatan attribuutit A 1,..., A k ovat tuotenimiä. Koska tuotteita on valtavasti, voi k olla useita tuhansia. Kukin A i on binaarinen: tuote joko esiintyy ostoskorissa tai ei esiinny. Relaation rivit vastaavat ostoskoreja (kokoelma tuotteita, jotka on maksettu kassalla). Data on hyvin harvaa! Usein alle 5% ostoskorin attribuuteista on 1-arvoisia. Tavallisesti tutkitaan vain korissa esiintyviä tuotteita, ei niistä puuttuvia (joita on valtavasti!) Samaan tapaan voi analysoida esim. opintosuoritusrekisteristä kurssien välisisä osittaisriippuvuuksia ( suositukset, missä järjestyksessä suorittaa kursseja) tai etsiä tekstistä yhdessä esiintyviä sanoja (kukin lause vastaa riviä ja sana attribuuttia). Huom! Omissa kokeiluissasi voit käyttää esim. weka-ohjelmaa [Wek]. 4.2 Assosiaatiosäännöt luokittelun apuna Luokittelusääntö on assosiaatiosääntö X = x C = c, missä C on luokkamuuttuja. Esimerkki 2 Mushroom-datajoukossa [NHBM98] jokainen sieni on luokiteltu joko syötäväksi (edible) tai myrkylliseksi (poisonous). Muut attribuutit kuvaavat mm. sienen hatun muotoa, pintaa ja väriä, varren muotoa, renkaiden lukumäärää jne. Joukosta löytyvät mm. seuraavat luokittelusäännöt: Odor=none,Gill-size=broad,Stalk-shape=tapering Edible f r = 0.31, cf = 1.00 Odor=none,Gill-size=broad,Stalk-surface-above-ring=smooth Edible f r = 0.33, cf = 0.97 5
Bruises=false,Population=several Poisonous f r = 0.31, cf = 0.92 Luokittelussa käytettävä päätöspuu (decision tree on vanhempi keksintö (ks. esim. [Mit97][52-80], [HMS02][343-347]), mutta voidaan kuvata joukkona assosiaatiosääntöjä. Esimerkki 3 Ohjelmointi1-kurssin harjoitustehtävät on jaettu kolmeen ryhmään: A=Ohjelmoinnin perusrakenteet B=Silmukat ja taulukot C=Appletit Kussakin ryhmässä opiskelija on saanut joko vähän (little) tai paljon (lot) pisteitä. Näiden perusteella on pyritty ennustamaan kurssin lopputulokset F R1 {0, 1} ts. läpäiseekö opiskelija kurssin. B lot little FR1=1 little A lot FR1=0 little C lot FR1=0 FR1=1 Rule Freq. Conf. B = lot F R1 = 1 73/125=0.58 0.92 B = little A = little F R1 = 0 12/125=0.10 0.86 B = little A = lot C = little F R1 = 0 18/125=0.14 0.60 B = little A = lot C = lot F R1 = 1 2/125=0.02 1.00 Huom! Päätöspuu on globaali malli! Ei voida aettaa minimifrekvenssiä, sillä katettava kaikki mahdolliset tapaukset. 6
Päätöspuun oppimiseen omat algoritmit (esim. C4.5 [Qui93]). Varoitus: Päätöspuut tuottavat epäluotettavia tuloksia, ellei mallia ole opittu tarpeeksi suuresta datajoukosta (useita tuhansia rivejä, riippuen attribuuttien lkm:stä ja arvoalueiden koosta). Monia päätöspuun hyvyysmittoja sovellettu assosiaatiosääntöjen kiinnostavuuden arviointiin. Huom! Assosiaatiosääntöjä voi käyttää apuna myös Bayes-verkon rakenteen määrittelyssä tai niiden avulla voi suorittaa suoraan luokittelua (huomioiden myös frekvenssit) [LHM98]. 4.3 Kokonaistodennäköisyysjakauman johtaminen Säännöllisistä joukoista voi johtaa datan kokonaistodennäköisyysjakauman. Idea [PMS00]: 1. säännölliset joukot muodostavat joukon eheysehtoja 2. käydään läpi kaikki yhteensopivat kokonaistodennäköisyysjakaumat ja valitaan se, jolla maksimientropia Raskas algoritmi! Toimii vain, kun attribuuttien lukumäärä suhteellisen pieni. 5 Assosiaatiosääntöjen etsintä Tavallisesti assosiaatiosäännöt etsitään kahdessa vaiheessa 1 : 1. Etsitään kaikki säännölliset joukot (frequent sets) X = x, X R, joilla fr(x = x) min fr. 2. Käydään läpi kaikki säännölliset joukot X = x ja testataan kaikilla (X i = x i ) ( X i X, x i Dom(X i )), onko cf((x 1 = x 1 ),..., (X i 1 = x i 1 ), (X i+1 = x i+1 ),..., (X l = x l ) (X i = x i )) min cf. 1Muistutus: attribuuttien arvokombinaatiota X 1 = x 1,..., X l = x l merkittiin X = x:lla 7
5.1 Apriori-algoritmi Säännölliset joukot voidaan löytää klassisella Apriori-algoritmilla (ks. tarkemmin esim. [Toi96]). kehitetty alkujaan ostoskoridatalle oletus: binääridataa, eikä attribuuttien negaatioista olla kiinnostuneita. tehokas kun hyvin harvaa dataa, mutta ei toimi tiheällä datalla Idea: etsitään ensin säännölliset yhden attribuutin joukot, sitten näiden pohjalta kaikki säännölliset kahden attribuutin joukot, jne. Haussa hyödynnetään frekvenssin monotonisuutta! Jos joukko X on frekventti, myös kaikki Y X ovat frekventtejä. Jos jokin Y X ei ole frekventti, ei X voi olla frekventti. A B C D AB AC AD BC CD BD ABC ABD ACD BCD ABCD 5.2 Laskennallinen vaativuus Laskenta on hyvin raskasta, jos tutkimme myös negaatiot tai jos attribuutit ovat moniarvoisia! 8
Jos kaikilla attribuuteilla X i R, i = 1,..., k, on v arvoa, niin pahimmillaan voi olla (1 + v) k frekventtiä arvokombinaatiota (frekventtiä joukkoa). Jos v = 2 ja emme ole kiinnostuneita negaatioista, on säännöllisiä joukkoja maksimissaan 2 k = 2 8 = 256. Esimerkkejä säännöllisten joukkojen maksimilukumääristä: k v Rajoitus S-joukkojen lkm 8 2 Ei negaatioita 2 8 = 256 8 2 3 8 = 6561 8 3 4 8 = 65536 20 2 Ei negaatioita 2 2 0 = 1048576 20 2 3 2 0 > 3.48 10 9 Assosiaatiosääntöjen muodostus säännöllisistä joukoista paljon kevyempää: Säännöllisestä joukosta X, X = l voi muodostaa maksimissaan l erilaista assosiaatiosääntöä. 5.3 Laajennokset Apriorista erilaisia variaatioita, jotka esim. hyödyntävät erilaisia tietorakenteita välitulosten tehokkaaseen talletukseen. Käytännössä ei isoja eroja! Apriori-algoritmi soveltuu sellaisenaan myös negaatioita sisältävien joukkojen sekä moniarvoisista attribuuteista koostuvien joukkojen etsintään. Rajoitus: laskennallinen raskaus! Numeerinen data on ensin diskretoitava jollain tavalla ks. esim. [RS01, SA96] Disjunktioita sisältävät säännöt esim. Henkilö, joka ostaa olutta tai siideriä, ostaa yleensä myös tupakkaa tai Lääke A aiheuttaa tavallisesti pahoinvointia tai huimausta kiinnostavia mutta vaikeita etsiä! (ks. esim. [NCJK01]) Ongelma: frekvenssin monotonisuusominaisuus ei päde disjunktioille! Joukko A B on aina frekventti, jos A tai B on frekventti. Ei-frekventin joukon lisäys saattaa kuitenkin kasvattaa kondenssia ja tuottaa kiinnostavia sääntöjä. 9
Esim. Laske sääntöjen A C, B C ja (A B) C frekvenssit ja kondenssit annetusta relaatiosta! Rivien lukumäärä on n = 100. X m(x) A, B, C 10 A, B, C 0 A, B, C 10 A, B, C 0 A, B, C 10 A, B, C 20 A, B, C 40 A, B, C 10 6 Kiinnostavien sääntöjen valinta Apriorin ongelma: kaikilla säännöllisillä joukoilla sama minimifrekvenssi riippumatta attribuuttien lukumäärästä. Jos min fr liian pieni, löytyy valtavasti triviaaleja sääntöjä. Jos min fr suuri, ei löydetä spesifejä sääntöjä, vaikka olisivat tilastollisesti merkittäviä. Kuinka valita kiinnostavat tai tilastollisesti merkittävät säännöt?? Kiinnostavuus on subjektiivinen ominaisuus! Useita heuristisia mittoja kiinnostavien sääntöjen valitsemiseen. Mitat perustuvat yleensä säännön frekvenssiin ja kondenssiin (valitsevat assosiaatiosäännöt, joilla suuri frekvenssi ja poikkeuksellisen suuri/pieni kondenssi). (ks. esim. [RBA99]) Tilastollisten merkittävyystestien ongelma: DM:ssa testataan systemaattisesti kaikki mahdolliset säännöt. Jos merkittävyystaso esim. 0.01 ja testataan 1000 sääntöä, niin löydetään keskimäärin 10 virheellisesti merkittävää sääntöä. 6.1 Informaatioteoreettiset mitat Mutual information (ks. esim. [DHS00][632]) I(X, Y ) mittaa, kuinka paljon informaatiota muuttujat X ja Y jakavat. Jos X ja Y ovat riippumattomia, ei X sisällä lainkaan informaatiota Y :stä ja päinvastoin, ja I(X, Y ) = 0. 10
Jos X ja Y ovat identtiset, ne jakavat kaiken informaation. Määritelmä 2 (Mutual information) Olkoon R joukko attribuutteja ja X R ja Y R kategorisia muuttujia. X:n ja Y :n mutual information on I(X, Y ) = Σ x Σ y P (X = x, Y = y) log P (X = x, Y = y) P (X = x)p (Y = y). Huom! Saman voi ilmaista ekvivalentisti entropian avulla: missä H(Z) on Z:n entropia: H(Z) = z Dom(Z) I(X, Y ) = H(X) + H(Y ) H(X, Y ), P (Z = z) log P (Z = z) = z Dom(Z) P (Z = z) log Jos X ja Y jakavat kaiken informaation, on I(X, Y ) = H(X) = H(Y ). 1 P (Z = z). Säännön X Y J-mitta [SG92] on sääntöjen X Y and X Y informaatiosisältöjen summa. (Muistutus: P ( Y X) = 1 P (Y X)) [ P (Y X) J(X Y ) = P (X) P (Y X) log + P ( Y ) log P (Y ) = fr(x Y ) log cf(x Y ) fr(y ) + fr(x Y ) log ] P ( Y X) = P ( Y ) cf(x Y ) fr( Y ) Huomioi sekä säännön että sen komplementtisäännön frekvenssin että kondenssin! Alkujaan luokittelusäännöille toimiiko yhtä hyvin assosiaatiosäännöillä? 6.2 χ 2 -mitta Assosiaatiosäännöt voidaan pistää kiinnostavuusjärjestykseen niiden χ 2 -arvojen perusteella [BMS97]. Säännön X Y χ 2 -arvo on χ 2 = 1 1 (m(x = i, Y = j) m(x = i)m(y = j)/n) 2 i=0 j=0 m(x = i)m(y = j)/n 11
Rajoitus: frekvenssien oletusarvojen tulee olla riittävän suuria, jotta esioletukset täyttyisivät. Esim. ostoskoridata liian harvaa! Ongelma: Mittaa X:n ja Y :n välistä riippuvuutta, mutta assosiaatiosäännöt ovat osittaisriippuvuuksia. Ei välttämättä havaita kiinnostavaa sääntöä, jos pätee vain tiettyjen arvojen välillä? Ehdotus: huomioidaan vain sääntöä vastaava termi Viitteet (m(x,y ) m(x)m(y )/n)2 m(x)m(y )/n. [AIS93] R. Agrawal, T. Imielinski, and A.N. Swami. Mining association rules between sets of items in large databases. In P. Buneman and S. Jajodia, editors, Proceedings of the 1993 ACM SIGMOD International Conference on Management of Data, pages 207 216, Washington, D.C., 2628 1993. [BMS97] S. Brin, R. Motwani, and C. Silverstein. Beyond market baskets: Generalizing association rules to correlations. In J. Peckham, editor, Proceedings ACM SIGMOD International Conference on Management of Data, pages 265276. ACM Press, 1997. [DHS00] R.O. Duda, P.E. Hart, and D.G. Stork. Pattern Classication. Wiley-Interscience Publication, New Yor, 2nd edition, 2000. [HMS02] D. Hand, H. Mannila, and P. Smyth. Principles of Data Mining. MIT Press, Cambridge, Massachussetts, USA, 2002. [LHM98] B. Liu, W. Hsu, and Y. Ma. Integrating classication and association rule mining. In Proceedings of Fourth International Conference on Knowledge Discovery and Data Mining (KDD- 98), pages 8086. AAAI Press, 1998. [Mit97] T.M. Mitchell. Machine Learning. McGraw-Hill Companies, New York, NY, USA, 1997. [NCJK01] A.A. Nanavati, K.P. Chitrapura, S. Joshi, and R. Krishnapuram. Mining generalised disjunctive association rules. In Proceedings of the tenth International Conference on Information and Knowledge Management (CIKM'01), pages 482489, New York, NY, USA, 2001. ACM Press. [NHBM98] D.J. Newman, S. Hettich, C.L. Blake, and C.J. Merz. UCI repository of machine learning databases, 1998. http://www.ics. uci.edu/~mlearn/mlrepository.html. 12
[PMS00] [Qui93] [RBA99] [RS01] [SA96] [SG92] [Toi96] [Wek] D. Pavlov, H. Mannila, and P. Smyth. Probabilistic models for query approximation with large sparse binary data sets. In Proceedings of the 16th Conference on Uncertainty in Articial Intelligence (UAI'00), pages 465472, San Francisco, CA, USA, 2000. Morgan Kaufmann Publishers Inc. J.R. Quinlan. C4.5: programs for machine learning. Morgan Kaufmann, 1993. Jr. R.J. Bayardo and R. Agrawal. Mining the most interesting rules. In Proceedings of the fth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD'99), pages 145154, New York, NY, USA, 1999. ACM Press. R. Rastogi and K. Shim. Mining optimized support rules for numeric attributes. Information Systems, 26(6):425444, 2001. R. Srikant and R. Agrawal. Mining quantitative association rules in large relational tables. In H.V. Jagadish and I.S. Mumick, editors, Proceedings of the 1996 ACM SIGMOD International Conference on Management of Data, pages 112, Montreal, Quebec, Canada, 4-6 1996. P. Smyth and R.M. Goodman. An information theoretic approach to rule induction from databases. IEEE Transactions on Knowledge and Data Engineering, 4(4):301316, 1992. H. Toivonen. Discovery of Frequent Patterns in Large Data Collections. PhD thesis, Department of Computer Science, University of Helsinki, 1996. Weka3. Data mining software in java. http://www.cs.waikato. ac.nz/ml/weka/. Retrieved 1.1. 2006. 13