Funktsionaalsete seoste otsimine andmetes rakendatakse erinevates andmeanalĂŒĂŒsi valdkondades: andmebaaside haldamine, andmete puhastamine, andmebaaside pöördestseerimine ja andmete uurimine. Me oleme juba avaldanud teavet nende seoste kohta. Anastasia Biirsja ja Nikita Bobrov. Seekord jagab Anastasia â kĂ€esoleva aasta arvutiteaduse keskuse lĂ”petaja â selle töö arendamisest uurimisprojekti raames, mille ta kaitses keskuses.

Ălesande valik
Arvutiteaduse keskuses Ă”ppimise ajal hakkasin sĂŒvitsi uurima andmebaase, nimelt funktsionaalsete ja erinevate seoste otsimist. See teema oli seotud minu ĂŒlikooli kursusetööga, seega hakkasin kursusetöö kirjutamise ajal lugema artikleid erinevate andmebaaside seoste kohta. Kirjutasin sellest valdkonnast ĂŒlevaate â oma esimesi kirjutisi. Inglise keeles ja saatsin selle SEIM-2017 konverentsile. Olin vĂ€ga rÔÔmus, kui sain teada, et see vĂ”eti siiski vastu, ja otsustasin teemaga sĂŒvitsi minna. Kontseptsioon ise ei ole uus â seda on hakatud rakendama juba 90-ndatel, kuid ka praegu leidub sellel rakendust paljudes valdkondades.
Teise semestri jooksul keskuses alustasin teadusprojekti funktsionaalsete seoste otsimise algoritmide tĂ€iustamiseks. Tegin selle kallal koostööd Peterburi Riikliku Ălikooli doktorandi Nikita Bobroviga JetBrains Researchi baasil.
Funktsionaalsete seoste leidmise arvutustöö keerukus
Peamine probleem on arvutustöö keerukus. VĂ”imalike minimaalsete ja ebatavaliste seoste arv on piiratud ĂŒlevalt niisuguse vÀÀrtusega.
, kus
â tabeli atribuutide arv. Algoritmide tööaeg sĂ”ltub mitte ainult atribuutide arvust, vaid ka ridade arvust. 90-ndatel aastatel suudsid tavapĂ€rased personaalarvutid funktsionaalsete seoste otsimise algoritmid töödelda andmesarju, mis sisaldasid kuni 20 atribuuti ja kĂŒmneid tuhandeid ridasid, mitme tunni jooksul. Kaasaegsed algoritmid, mis töötavad mitme tuumaga protsessoritel, tuvastavad seosed andmesarjades, mis koosnevad sadadest atribuutidest (kuni 200) ja sadadest tuhandetest ridadest, ligikaudu sama ajaga. Siiski on see ebapiisav: selline aeg on enamikus reaalsetes rakendustes vastuvĂ”etamatu. SeetĂ”ttu töötasime vĂ€lja lĂ€henemisviise olemasolevate algoritmide kiirendamiseks.
Partitsioonide ristumiseks mÔeldud vahemÀlustruktuurid
Esimese töö osas töötasime vÀlja vahemÀlus hoidmise skeemid algoritmide klassile, mis kasutavad partisioonide ristmeetodit. Partisioon atribuudile esindab kogumit loetelu, kus iga loetelu sisaldab ridade numbreid, mis omavad sarnaseid vÀÀrtusi antud atribuudile. Iga sellist loetelu nimetatakse klastriks. Paljud kaasaegsed algoritmid kasutavad partisioone, et mÀÀratleda, kas sÔltuvus on olemas vÔi mitte, jÀrgides just seda lemmat: SÔltuvus
on olemas, kui
. Siin
tĂ€histatakse partisioon ja kasutatakse mĂ”iste partisiooni suurus - klastrite arvu mÀÀratlemiseks. Partitsioone kasutavad algoritmid, kui sĂ”ltuvus puruneb, lisavad vasakule poole sĂ”ltuvuse tĂ€iendavad atribuudid, mille jĂ€rel nad arvutavad selle ĂŒle, tehes partisioonide ristamise operatsiooni. Sellist operatsiooni nimetatakse spetsialiseerimiseks. Kuid oleme mĂ€rganud, et partisioonid sĂ”ltuvuste jaoks, mis jÀÀvad alles alles pĂ€rast mitmeid spetsialiseerimise ringe, vĂ”ivad olla aktiivselt taaskasutatud, mis vĂ”ib mĂ€rkimisvÀÀrselt vĂ€hendada algoritmide tööaega, kuna ristamisoperatsioon on kulukas.
SeetÔttu pakkusime vÀlja heuristiku, mis pÔhineb Shannon'i entropial ja Ginny ebakindlusel, samuti meie meetril, mille me nimetasime Tagasi Entroopiaks. See on vÀike muudatus Shannon'i entropiast ja kasvab koos andmekogu ainulaadsuse suurenemisega. Pakutud heuristika nÀeb vÀlja jÀrgmine:

Siin
â hiljuti arvutatud partisiooni ainulaadsuse aste
, vaid
on unikalsuse mÀÀra median, mis kehtib ĂŒksikutele omadustele. Unikalsuse mÔÔdikutena on proovitud kĂ”iki kolme ĂŒlaltoodud mÔÔdikut. Samuti on mĂ€rgata, et heuristikasse kuuluvad kaks modifikaatorit. Esimene nĂ€itab, kui lĂ€hedal on praegune partitsioon algsele vĂ”tmele, ja vĂ”imaldab rohkem neid partitsioone vahemĂ€lus hoida, mis on kaugel potentsiaalsest vĂ”tmest. Teine modifikaator vĂ”imaldab jĂ€lgida vahemĂ€lu kasutamist, edendades seelĂ€bi suuremate partitsioonide lisamist vahemĂ€llu, kui ruumi on vaba. Selle ĂŒlesande edukas lahendamine vĂ”imaldas kiirendada algoritmi PYRO 10-40% sĂ”ltuvalt andmestikust. Tuleb mĂ€rkida, et algoritm PYRO on selles valdkonnas kĂ”ige edukam.
Alloleval pildil on nĂ€ha ettepanekut heuristika rakendamise tulemused vĂ”rreldes pĂ”hiettekandega, mis pĂ”hineb mĂŒndi viskamisel. X telg on logaritmiline.

Alternatiivne viis partitsioonide salvestamiseks
K seejĂ€rel pakkusime vĂ€lja alternatiivse viisi partitsioonide salvestamiseks. Partitsioonid esindavad klastrite komplekti, milles igaĂŒhes on salvestatud tuplike numbrid, millel on sama vÀÀrtus teatud omadustes. Need klastrid vĂ”ivad sisaldada pikki jĂ€rjestusi tuplite numbri, nĂ€iteks kui tabelis on andmed jĂ€rjestatud. SeetĂ”ttu pakkusime partitsioonide salvestamiseks tihendamisstrateegiat, nimelt vÀÀrtuste intervallide hoidmine partitsioonide klastri sees:
$$display$$pi(X) = {{underbrace{1, 2, 3, 4, 5}_{Esimene~intervall}, underbrace{7, 8}_{Teine~intervall}, 10}}\ downarrow{Tihendamine}\ pi(X) = {{underbrace{$, 1, 5}_{Esimene~intervall}, underbrace{7, 8}_{Teine~intervall}, 10}}$$display$$
See meetod suutis vÀhendada algoritmi TANE ajaloo kÀigus mÀlutarbimist 1 kuni 25%. Algoritm TANE on klassikaline algoritm funktsionaalsete sÔltuvuste otsimiseks, mis kasutab oma töös partitsioone. Praktika raames valiti just algoritm TANE, kuna intervallide salvestamise rakendamine oli sellel palju lihtsam kui nÀiteks PYRO, et hinnata, kas pakutud lÀhenemine töötab. Saadud tulemused on esitatud alloleval pildil. X telg on logaritmiline.

Konverents ADBIS-2019
2019. aasta septembris esitasin oma uuringu tulemuste pĂ”hjal artikli 23. Euroopa andmebaaside ja teabe sĂŒsteemide konverentsil (ADBIS-2019) mĂ€rkis Bernhard Thalheim, kes on andmebaaside valdkonnas silmapaistev isik, et minu uurimistöö tulemused moodustasid aluse minu magistritööle matemaatika ja mehhaanika erialal SPbGU-s. Sellest tulenevalt viidi mĂ”lemad pakutud lĂ€henemisviisid (vahemĂ€lu ja kompressioon) ellu mĂ”lemas algoritmis: TANE ja PYRO. Uuringute tulemused nĂ€itasid, et pakutud lĂ€henemisviisid on universaalsed, kuna mĂ”lema algoritmi puhul mĂ”lema lĂ€henemise korral tĂ€heldati mĂ€rgatavat mĂ€lu tarbimise vĂ€henemist ja oluliselt lĂŒhenenud algoritmide tööaega.
Allikas: habr.com
