Assosiaatiosäännön oppiminen tai assosiaatiosääntöhaku on sääntöihin perustuva menetelmä oppimiskoneille, jotka voivat löytää kiinnostavia suhteita tietokannan muuttujien välillä . Ehdotetaan menetelmää tietokannasta löydettyjen vahvojen sääntöjen luomiseksi käyttämällä joitain kiinnostavuuden mittareita [1] . Tämä sääntöihin perustuva lähestymistapa luo myös uusia sääntöjä, kun enemmän dataa jäsennetään. Lopullisena tavoitteena on riittävän suuren datajoukon ansiosta auttaa konetta jäljittelemään ihmisen piirteiden poimimista ja luoda kyky löytää abstrakteja assosiaatioita uudesta luokittelemattomasta tiedosta [2] .
Rakesh Agrawal, Tomasz Imelinsky ja Arun Swami [3] esittivät tiukkojen sääntöjen käsitteeseen perustuvia assosiaatiosääntöjä havaitakseen mallit tuotteiden välillä suurissa tapahtumissa supermarkettien myyntipistejärjestelmien tallentamien tietojen osalta. Esimerkiksi supermarketien myyntitiedoista löytyvä sääntö {sipuli, peruna} => { hampurilainen } voi tarkoittaa, että jos asiakas ostaa sipulia ja perunaa yhdessä, hän ostaa todennäköisemmin myös hampurilaisen. Tällaista tietoa voidaan käyttää pohjana markkinointitoimenpiteitä koskeville päätöksille, kuten promootiohinnoittelulle tai tuotesijoittelulle .
Yllä olevan markkinakorianalyysiesimerkin lisäksi assosiaatiosääntöjä käytetään nyt monilla muilla aloilla, mukaan lukien verkkolouhinta , tunkeutumisen havaitseminen , jatkuva valmistus . Toisin kuin peräkkäisen kuvion havaitseminen , assosiaatiosäännön oppiminen ei yleensä ota huomioon elementtien järjestystä tapahtuman sisällä tai transaktioiden välillä.
tapahtumatunnus | maito | leipää | öljy | olut | vaipat |
---|---|---|---|---|---|
yksi | yksi | yksi | 0 | 0 | 0 |
2 | 0 | 0 | yksi | 0 | 0 |
3 | 0 | 0 | 0 | yksi | yksi |
neljä | yksi | yksi | yksi | 0 | 0 |
5 | 0 | yksi | 0 | 0 | 0 |
Agrawalin, Imelinskyn ja Swamin [4] alkuperäisen määritelmän mukaisesti assosiaatiosääntöjen löytämisen ongelma asetetaan seuraavasti:
Olkoon joukko binaarisia attribuutteja , joita kutsutaan objekteiksi .
Olkoon joukko tapahtumia, nimeltään tietokanta, annettu .
Jokaisella tapahtumalla on yksilöllinen tapahtumatunnus (numero) ja se koostuu osajoukosta kohteita .
Sääntö määritellään lomakkeen implikaatioksi :
, missä .
Agrawalin, Imelinskyn, Swamin [4] artikkelissa sääntö on määritelty vain joukon ja yhden kohteen välillä .
Mikä tahansa sääntö koostuu kahdesta eri objektijoukosta, jotka tunnetaan myös nimellä objektijoukko ja , jossa sitä kutsutaan ensimmäiseksi operandiksi tai vasemmaksi puolelle ja on toinen operandi tai oikea puoli .
Havainnollistaaksemme konseptia, käytetään pientä esimerkkiä supermarketin alueelta. Objektijoukko I on maito, leipä, voi, olut, vaipat ja yllä olevassa taulukossa on pieni objekteja sisältävä tietokanta, jossa arvo 1 tarkoittaa kohteen läsnäoloa vastaavassa tapahtumassa ja arvo 0 poissaoloa tapahtuman kohteen.
Esimerkki supermarketin säännöstä olisi {voi, leipä} => {maito}, mikä tarkoittaa, että jos ostetaan voita ja leipää, asiakas ostaa myös maitoa.
Huomautus: Tämä esimerkki on erittäin pieni. Käytännön sovelluksissa sääntö on täytettävä muutamassa sadassa tuhannessa tapahtumassa ennen kuin se katsotaan tilastollisesti merkittäväksi, ja tietokannat sisältävät usein tuhansia tai miljoonia tapahtumia.
Kiinnostavan säännön valitsemiseksi kaikkien mahdollisten sääntöjen joukosta käytetään rajoituksia erilaisille merkityksellisyyden ja mielekkyyden mittareille. Tunnetuimmat rajoitukset ovat tuen ja luottamuksen vähimmäiskynnys.
Antaa olla joukko objekteja, olla assosiaatiosääntö ja olla tietyn tietokannan tapahtumien joukko.
Tuki on mitta siitä, kuinka usein objektijoukko löytyy tietokannasta.
Asetuksen tuki vastaan on määritelty joukon sisältävän tietokannan tapahtumien määrän suhteeksi tapahtumien kokonaismäärään.
Esimerkissämme tietojoukolla X={olut, vaipat} on tuki, koska se löytyy 20 %:sta kaikista tapahtumista (1/5 tapahtuma). Funktioargumentti on joukko ennakkoehtoja ja siksi siitä tulee rajoittavampi laajeneessaan (toisin kuin kattavampi) [5] .
Luottamus on mitta siitä, kuinka usein sääntö pitää paikkansa.
Säännön luottamusarvo tapahtumajoukkoa vastaan on sekä joukon että joukon sisältävien tapahtumien lukumäärän ja setin sisältävien tapahtumien lukumäärän suhde .
Luottamus määritellään seuraavasti:
Esimerkiksi säännöllä {voi, leipä} => {maito} on tietokantaluottamus, mikä tarkoittaa, että 100 %:ssa voita ja leipää koskevista tapahtumista sääntö on totta (100 %:ssa tapauksista, joissa voita ja leipää ostetaan, maito on myös ostettu).
Huomaa, mitä X- ja Y-objektien tukeminen tarkoittaa. Tämä on hieman hämmentävää, koska ajattelemme yleensä tapahtumien todennäköisyyksiä , emme objektijoukkoja. Voimme kirjoittaa uudelleen todennäköisyydeksi , missä ja ovat tapahtumat, jotka tapahtuma sisältää joukkoja ja vastaavasti. [6]
Luottamus voidaan ymmärtää ehdollisen todennäköisyyden arviona , todennäköisyydellä löytää säännön oikea puoli transaktioissa, koska tapahtumat sisältävät säännön vasemman puolen [5] [7] .
Hissi sääntö määritellään seuraavasti:
tai havaitun tuen suhde tapahtuman odotettuun arvoon , jos X ja Y olisivat riippumattomia . Esimerkiksi säännössä {maito, leipä} => {voi} on hissi .
Jos säännön hissi on 1, tämä tarkoittaa, että vasemman puolen tapahtuma on riippumaton oikean puolen tapahtumasta. Jos kaksi tapahtumaa ovat riippumattomia, niistä ei voida vetää sääntöä.
Jos nousu > 1, tämä kertoo meille, missä määrin tapahtumat liittyvät toisiinsa, ja tekee näistä säännöistä mahdollisesti hyödyllisiä tulosten ennustamisessa tulevissa tietojoukoissa.
Jos nosto < 1, se tarkoittaa, että esineet vaihtavat toisiaan. Tämä tarkoittaa, että yhden kohteen läsnäolo vaikuttaa negatiivisesti toisen kohteen läsnäoloon ja päinvastoin.
Noston arvossa otetaan huomioon sekä säännön luotettavuus että yleistiedot [5] .
Säännön varmuus määritellään .
Esimerkiksi sääntö {maito, leipä} => {voi} on varma , ja se voidaan ymmärtää sen odotetun esiintymistiheyden suhdelukuna, jonka X esiintyy ilman Y:tä (toisin sanoen frekvenssi, jonka sääntö ennustaa väärin), jos X ja Y olisivat riippumaton ja havaittu väärin ennustusaste. Tässä esimerkissä luottamusarvo 1,2 osoittaa, että sääntö {maito, leipä} => {voi} on väärin 20 % useammin (1,2 kertaa useammin), jos X:n ja Y:n välinen yhteys oli puhdas sattuma.
Assosiaatiosääntöjen edellytetään yleensä täyttävän käyttäjän määrittämän vähimmäistuen ja käyttäjän määrittämän vähimmäisluottamuksen. Yhteyssäännön luominen on yleensä jaettu kahteen vaiheeseen:
Toinen vaihe on yksinkertainen ja selkeä, kun taas ensimmäinen vaihe vaatii enemmän huomiota.
Kaikkien toistuvien joukkojen löytäminen tietokannasta on vaikeaa, koska se edellyttää kaikkien mahdollisten joukkojen (olioyhdistelmien) löytämistä. Mahdollisten joukkojen joukko on boolen yli ja sillä on koko (paitsi tyhjä joukko , joka ei ole kelvollinen joukko). Vaikka Boolen koko kasvaa eksponentiaalisesti objektien määrän myötä , tehokas haku on mahdollista käyttämällä ylhäältä alas -tukisulkemisominaisuutta [4] (kutsutaan myös antimonotonisuudesta [ 8] ), joka varmistaa, että usein esiintyvälle joukolle kaikki sen osajoukkoja esiintyy myös usein, ja siksi ne eivät voi olla usein esiintyvän joukon harvinaisia osajoukkoja. Tätä ominaisuutta käyttämällä tehokkaat algoritmit (esim. Apriori [9] ja Eclat [10] ) voivat löytää kaikki usein esiintyvät joukot.
Assosiaatiosääntökonseptista tuli suosittu Agrawal, Imelinsky, Swamy [3] vuonna 1993 julkaisemassa artikkelissa , jolla oli Google Scholarin mukaan yli 18 000 lainausta elokuuhun 2015 mennessä ja joka on yksi siteeratuimmista julkaisuista tiedon louhinnan alalla ( etsi malleja tietokannoista). Kuitenkin, mitä nykyään kutsutaan "assosiaatiosäännöiksi", otettiin käyttöön jo vuonna 1966 julkaistussa asiakirjassa [11] , joka koski GUHA-järjestelmää, yleistä data-analyysimenetelmää, jonka ovat kehittäneet Piotr Gajek ym. [12] .
Vuoden 1989 (noin) alussa vähimmäistuen ja varmuuden etsimiseen kaikkien assosiaatiosääntöjen etsimiseen käytettiin Feature Based Modeling -järjestelmää , joka löytää kaikki säännöt, joilla on arvoja ja jotka ovat suurempia kuin käyttäjän määrittämät rajat [ 13] .
Luottamuksen lisäksi on ehdotettu muitakin sääntöjen kiinnostavuuden mittareita. Joitakin suosittuja toimenpiteitä:
Tan, Kumar ja Srivasthana [19] sekä Hasler [6] ovat esittäneet ja vertailleet useita muita mittareita . Sellaisten tekniikoiden löytäminen, joilla voidaan mallintaa sitä, mitä käyttäjä tietää (ja käyttää sitä kiinnostuksen mittana), on tällä hetkellä aktiivinen tutkimustrendi nimeltä "Subjektiivinen kiinnostus".
Eräs assosiaatioiden havaitsemisen tavanomaisen lähestymistavan rajoituksista on, että kun etsit suuren määrän mahdollisia assosiaatioita yhdistettävien objektien joukkoa varten, on suuri riski löytää suuri määrä satunnaisia assosiaatioita. Nämä ovat objektikokoelmia, jotka esiintyvät yhdessä odottamattoman usein tiedoissa, mutta puhtaasti sattumalta. Oletetaan esimerkiksi, että tarkastelemme 10 000 objektin joukkoa ja etsimme sääntöä, joka sisältää kaksi objektia vasemmalla puolella ja yhden objektin oikealla puolella. Tällaisia sääntöjä on noin 1 000 000 000 000. Jos käytämme tilastollista riippumattomuustestiä , jonka taso on 0,05, tämä tarkoittaa, että on vain 5% mahdollisuus hyväksyä sääntö ilman assosiaatiota. Jos oletetaan, että yhdistyksiä ei ole, meidän pitäisi silti odottaa löytävämme 50 000 000 000 sääntöä. Tilastollisesti luotettava assosiaatioiden havaitseminen [20] [21] hallitsee tätä riskiä, ja useimmissa tapauksissa vähentää riskiä löytää satunnainen assosiaatio käyttäjän määrittämälle merkitsevyystasolle .
Monia algoritmeja on ehdotettu assosiaatiosääntöjen luomiseksi.
Muutamia algoritmeja tunnetaan hyvin, Apriori , Eclat ja FP-Growth, mutta ne tekevät vain puolet työstä, koska ne on suunniteltu löytämään usein esiintyviä objektijoukkoja. Vielä yksi askel on otettava sen jälkeen, kun usein esiintyvät joukot on löydetty tietokannasta.
Apriori-algoritmi [9] käyttää leveys-ensin hakustrategiaa objektien laskemiseen ja käyttää ehdokkaiden luontifunktiota, joka perustuu ylhäältä alas -tukisulkemisominaisuuteen.
Eclat [10] -algoritmi (tai ECLAT, sanoista Equivalence Class Transformation ) on syvyys-ensimmäinen hakualgoritmi , joka perustuu asetettuun leikkauspisteeseen. Algoritmi soveltuu sekä sarja- että rinnakkaissuoritukseen paikallisilla parannusominaisuuksilla [22] [23] .
FP-algoritmi on suunniteltu tunnistamaan usein esiintyviä kuvioita [24] .
Ensimmäisellä kerralla algoritmi laskee esineiden (attribuutti-arvo-parien) esiintymisen joukoissa ja tallentaa ne "otsikkotaulukkoon". Toisella läpikäynnillä algoritmi rakentaa FP-puurakenteen lisäämällä esiintymiä. Kunkin esiintymän objektit on järjestettävä laskevassa järjestyksessä niiden esiintymistiheyden mukaan joukossa, jotta puu voidaan käsitellä nopeasti. Jokaisessa tapauksessa objektit, jotka eivät saavuta vähimmäiskynnystä, hylätään. Jos monilla esiintymillä on yhteisiä useimmin tavattuja objekteja, FP-puu tarjoaa korkean pakkauksen lähellä puun juurta.
Pääjoukon LOB-kasvupakkauksen tämän version rekursiivinen käsittely määrätään suoraan sen sijaan, että luotaisiin ehdokkaita ja sitten tarkistettaisiin koko kantaa vastaan. Kasvu alkaa otsikkotaulukon alaosasta etsimällä kaikki esiintymät, jotka vastaavat annettuja ehtoja. Uusi puu luodaan alkuperäisestä puusta johdetuilla luvuilla, jotka vastaavat attribuutista riippuvien esiintymien joukkoa, ja kukin solmu saa aliarvojensa summan. Rekursiivinen kasvu pysähtyy, kun enää ei ole objekteja, jotka täyttävät vähimmäistuen kynnyksen, ja työ jatkuu alkuperäisen FP-puun otsikoiden jäljellä olevien elementtien parissa.
Kun rekursiivinen prosessi on valmis, kaikki suuret objektijoukot, joilla on pienin peitto, löydetään ja assosiaatiosäännön luominen alkaa [25] .
AprioriDP [26] käyttää dynaamista ohjelmointia usein esiintyvien objektijoukkojen analysoinnissa. Toimintaperiaate on ehdokassukupolven eliminointi kuten FP-puussa, mutta algoritmi muistaa tukilaskurit ei puussa, vaan tietyssä rakenteessa.
Kontekstipohjainen assosiaatiosäännön hakualgoritmiCBPNARM on vuonna 2013 kehitetty algoritmi, joka etsii asiaan liittyviä sääntöjä kontekstin perusteella. Algoritmi käyttää kontekstimuuttujaa, jonka perusteella oliojoukon tukiarvo muuttuu ja tämän säännön perusteella siirretään sääntöjoukkoon.
Solmujoukkoon perustuvat algoritmitFIN [27] , PrePost [28] ja PPV [29] ovat kolme solmujoukkoon perustuvaa algoritmia. He käyttävät FP-puun koodauksen solmuja edustamaan objektijoukkoja ja tukevat syvyys-ensimmäistä hakustrategiaa löytääkseen usein esiintyviä objektijoukkoja "risteyttämällä" solmujoukot.
GUHA-menetelmän ASSOC-menettelyGUHA on yleinen data-analyysitekniikka, jolla on teoreettinen perusta [30] .
ASSOC-proseduuri [31] on GUHA-menetelmä, joka etsii yleisiä assosiaatiosääntöjä käyttämällä nopeita bittijonotoimintoja . Tällä menetelmällä paljastetut assosiaatiosäännöt ovat yleisempiä kuin Apriori-menetelmällä saadut, esimerkiksi "objektit" voidaan yhdistää sekä konjunktiolla että disjunktiolla, eikä säännön vasemman ja oikean puolen välinen suhde ole rajoitettu vähimmäistuki- ja luottamusarvojen asettamiseen kuten Apriori-menetelmässä. — voidaan käyttää mielivaltaista kiinnostuksen kohteiden yhdistelmää.
Hae OPUSOPUS on tehokas säännönhakualgoritmi, joka, toisin kuin monet vaihtoehdot, ei vaadi monotonisuus- tai antimonotonisuusrajoituksia, kuten tukiminimi [32] . OPUS-haku on suositun Magnum Opus -yhdistyksen hakukoneen ydintekniikka.
On kuuluisa tarina yhdistyssääntöjen löytämisestä, tämä on tarina "oluesta ja vaipoista". Näennäisesti jossain supermarketin ostokäyttäytymisen tarkastelussa havaittiin, että vaippoja ostavat ostajat (luultavasti nuoret) ostavat usein myös olutta. Tämä novelli on tullut suosittu esimerkkinä siitä, kuinka odottamattomia assosiaatiosääntöjä voi löytää jokapäiväisestä tiedosta. On monia mielipiteitä siitä, kuinka totta tarina on [33] . Daniel Powers sanoi: [33]
Vuonna 1992 Thomas Blishock, Teradata Corporationin vähittäiskaupan konsultointiryhmän johtaja , laati analyysin 1,2 miljoonasta "markkinakorista" (eli yhden asiakkaan ostoista) noin 25 Oscon apteekista. Tietokantakyselyitä on kehitetty korien ominaisuuksien selvittämiseksi. Analyysi "osoitti, että välillä 17.00-19.00 ostajat ostavat olutta ja vaippoja." Oscon apteekkipäälliköt EIVÄT käyttäneet tuotteiden asettamista lähemmäs toisiaan hyllyille saadakseen oluen ja vaipan sidoksen.
Multi-Relation Association Rules ( MRAR ) ovat assosiaatiosäännöt, joissa jokaisella objektilla voi olla useita linkkejä . Nämä suhteet osoittavat epäsuoria suhteita entiteettien välillä. Harkitse seuraavaa monen assosiaatiosääntöä, jossa ensimmäinen termi koostuu kolmesta ihmissuhteesta asuu , lähellä ja kosteassa : "Kaksi, jotka asuvat paikassa, joka on lähellä kaupunkia, jossa on kostea ilmasto ja ovat alle 20-vuotiaita => heidän terveytensä on hyvä." Tällaiset assosiaatiosäännöt voidaan johtaa RDBMS-tiedoista tai Internetin semanttisesta tiedosta [34] .
Kontekstipohjaiset yhdistämissäännöt ovat eräänlaisia assosiaatiosääntöjä. Väitetään, että nämä säännöt ovat tarkempia assosiaatiosääntöjen analyysissä ja toimivat ottamalla huomioon piilevän muuttujan, jota kutsutaan kontekstimuuttujaksi, joka muuttaa lopullista assosiaatiosääntöjen joukkoa kontekstimuuttujien arvojen mukaan. Esimerkiksi ostoskorien suuntautuminen markkinakorianalyysissä heijastaa outoja tuloksia kuun alussa. Tämä voi johtua kontekstista, kuten palkanlaskennasta kuun alussa [35] .
Kontrastioppiminen onassosiatiivisenoppimisen tyyppi. Kontrastioppiminenkäyttää sääntöjä, joiden jakautuminen alajoukkojen välillä eroaa merkittävästi [36] [37] .
Painotettu luokkaoppiminen on toisenlainen assosiatiivinen oppiminen, jossa luokille voidaan antaa painotuksia , jotta voidaan keskittyä tiettyihin tiedon louhintatulosten kannalta tärkeisiin kysymyksiin.
Korkean asteen kuvioiden etsintä helpottaa monimutkaisen reaalimaailman datan luontaisten korkean asteen kuvioiden tai assosiaatiotapahtumien erottamista [ 38] .
K-optimaalisen kuvion havaitseminen tarjoaa vaihtoehdon tavanomaiselle assosiaatiosäännön oppimismenetelmälle, jossa jokaisen kuvion vaaditaan esiintyvän usein tiedoissa.
Approximate Frequent Itemset louhinta on heikompi versio Frequent Itemset louhinnasta, joka sallii joidenkin kohteiden joidenkin rivien olevan yhtä suuri kuin 0 [39] .
Generalized Association Riles - hierarkkinen luokitus
Kvantitatiivinen assosiaatiosäännöt – kategorinen ja määrällinen tieto [ 40] [41] .
Interval Data Association säännöt - sisältävät tiedot jaettuna aikaväleihin, esimerkiksi ikä 5 vuoden välein .
Sekvenssimallin louhinta etsii osasekvenssit ovat yhteisiä useammalle kuin minsup - sekvenssille tietokannasta, jossa käyttäjä asettaa minsup-arvon. Sekvenssi on järjestetty luettelo tapahtumista [42] .
Subspace Clustering , erityinen korkeadimensionaalinen dataklusterointi, perustuu monissa tapauksissa myös ylhäältä alas -sulkemisominaisuuteen tietyissä klusterimalleissa [43] .
Warmr toimitetaan osana ACE-dataanalyysipakettia. Järjestelmä mahdollistaa assosiaatiosääntöjen oppimisen ensimmäisen asteen relaatiosäännöille [44] .
Deng ZH, Wang Z. Uusi nopea pystysuuntainen menetelmä toistuvien kuvioiden louhintaan // International Journal of Computational Intelligence Systems. - 2010. - Osa 3 , numero. 6 .
Koneoppiminen ja tiedon louhinta | |
---|---|
Tehtävät | |
Opettajan kanssa oppimista | |
ryhmäanalyysi | |
Mittasuhteiden vähentäminen | |
Rakenteellinen ennustaminen | |
Anomalian havaitseminen | |
Piirrä todennäköisyysmallit | |
Neuroverkot | |
Vahvistusoppiminen |
|
Teoria | |
Lehdet ja konferenssit |
|