Odjek krampova u informacijskim sustavima

Rudarenje podataka

Odjek krampova u informacijskim sustavima

Piše: Siniša Pavlović

Kraj devetnaestog stoljeća. Kalifornija. Skupine marljivih ljudi prokopavaju brda u nadi da će naći grumen zlata i obogatiti se…. Početak dvadeset i prvog stoljeća. Informacijski sustavi kompanija i institucija. Skupine marljivih ljudi kopaju i obrađuju gomile podataka u nadi da će pronaći zakonitost koja će njihovim tvtkama omogućiti bolje poslovanje i donijeti prednost na tržištu…

Svi mi koji se imalo bavimo informacijskim sustavima svjedoci smo stalnog porasta količine podataka, kako u kvantitativnom, tako i u kvalitativnom smislu. Transakcijski sustavi neumorno zapisuju kojekakve podatke o dokumentima, kupcima, događajima i ostalim stvarima, te se postavlja pitanje mogu li se iz tih podataka izvući kakva saznanja koja nisu očigledna na prvi pogled, već su zakopana duboko u transakcijama?

Odgovor na to pitanje je svakako potvrdan. Do sada su se u tu svrhu koristile matematičke i statističke metode, a u novije vrijeme su im se pridružile i metode stojnog učenja (eng. machine learning) tvoreći tako disciplinu poznatu kao rudarenje podataka ili data mining. Tako danas kompanije primjenom metoda rudarenja podataka pokušavaju dobiti odgovore na pitanja poput kako privući nove klijente, kako izbjeći rizične klijente, kako proširiti lepezu proizvoda i usluga koje koriste postojeći klijenti, zbog čega nas klijenti napuštaju, kako bolje odrediti ciljnu skupinu za marketinšku kampanju i mnoga druga.

Kako cijela priča funkcionira?

Najvažnija karika u lancu, uz podatke, svakako su kompetentni data mining analitičari. Oni moraju dobro poznavati kako metodologiju data mininga, programiranje i transakcijske podatke tako i poslovanje kompanije u općem smislu. Proces započinje preciznim određivanjem cilja analize, iza čega slijedi izvlačenje sirovih podaka iz transakcijskih baza i/ili skladišta podataka. Slijedi procjena kvalitete sirovih podataka kao što je procjena relevantnosti atributa koji sudjeluju u analizi, njihova čistoća, eliminacija ekstremnih vrijednosti i slično. S obzirom na cilj analize i prirodu podataka određuje se i odgovarajuća data mining metoda (neuronska mreža, stabla odlučivanja, asocijativna pravila, nelinearna regresija…), te se podaci čiste i transformiraju na način da odgovaraju cilju i metodi. Ono što se na kraju dobije je skup pojedinih slučajeva (recimo da se želi proučiti ponašanje klijenata na bankomatima, tada se slučajevi sastoje od podataka o bankomatu, o klijentu, vremenu i vrsti transakcije itd…). Moguće je isto tako podatke oblikovati u vremenske serije i vršiti analize na njima.

Kad su podaci jednom pripremljeni za analizu onda započinje proces tzv. uzorkovanja podataka (eng. sampling). O čemu se tu radi? Stvar je u tome da se podaci trebaju podijeliti u dva dijela: skup podataka za učenje i skup podataka za testiranje. Oni moraju biti sličnih karakteristika, ali obuhvaćati različite pojedinačne slučajeve. Postoje mnogi algoritmi za uzorkovanje, a među popularnijima su cross-validation i bootstrap.

Kad je izvršen proces uzorkovanja podataka pristupa se konstruiranju modela primjenom data mining metode nad skupom podataka za učenje. To je posao koji obavlja algoritam i na to troši puno vremena i procesne snage, tako da nije rijetkost da analitičari tijekom dana pripremaju podatke, a proces učenja ostavljaju noćnim obradama. Proces učenja, matematički generalno gledajući, više-manje izgleda kao inteligentno pretraživanje velikog prostora stanja u potrazi za optimumom i zasniva se na metodama indukcije. Vizualno to izgleda kao jedna brojka na zaslonu monitora koja pokušava postati što veća ili što manja (ovisno o metodi). Nema tu nikakve spektakularne grafike.

Testiranje modela

Model koji se dobije treba provjeriti, odnosno ocijeniti i upravo tome služi skup podataka za testiranje. Ako ocjena nije zadovoljavajuća proces se ponavlja, bilo da se uzimaju drugačiji početni parametri algoritma za učenje, bilo da se radi drugačija transformacija podataka. Dobiveni model isto je tako neintuitivan i neslikovit i potrebno mu je tumačenje (obično se dobije kakav niz koeficijenata ili stablasta struktura podataka i slično). Takvi se modeli onda pretvaraju u ljudima razumljiviji oblik i koriste se dalje u procesu odlučivanja. Isto tako, takvi modeli se koriste za zadaću klasificiranja, odnosno prepoznavanja kojoj klasi slučajeva pripada novi slučaj koji nije korišten prilikom procesa učenja.

Dobar primjer Data mininga je konstrukcija modela za prepoznavanje rizičnih klijenata. Iz postojeće baze gdje se točno zna za svakog klijenta da li pripada u rizičnu ili nerizičnu skupinu, procesom treniranja sastavimo model. U tom modelu možemo vidjeti koji su to elementi po kojima prepoznajemo klasu rizičnosti, ali isto tako prema tom modelu možemo sastaviti aplikaciju koja ocjenjuje novopridošlog klijenta za kojeg ne znamo unaprijed gdje spada.

Ovo je, naravno, tek grubi pogled na cijelu priču. U praksi, onaj tko se želi baviti ovim područjem mora solidno baratati matematičkom i statističkom aparaturom. Slijedi kratak pregled popularnijih data mining metoda proizašlih iz područja strojnog učenja.

Stabla odlučivanja

Stabla odlučivanja su metoda kod koje je model organiziran kao stablasta struktura podataka gdje svaki čvor odgovara na neko pitanje. Recimo prvi čvor pita da li su klijentovi prihodi veći od 7000 kn, te ovisno o odgovoru vodi do druga dva čvora gdje se nalaze nova pitanja i tako sve do kraja, kad se konačno dobija odgovor. Sjetimo se primjera sa rizičnim klijentima. Na listovima stabla odluživanja o rizičnim klijentima nalaze se odgovori rizičan i nerizičan. Postoji više različitih algoritama za konstruiranje stabla odlučivanja, i uglavnom se zasnivaju na tzv. dobitku informacija (eng. information gain) od svakog potencijalnog čvora na njegovom skupu podataka. Dobitak informacije računa se preko teorije entropije, te se izabire čvor sa najvećim dobitkom, a onda se proces rekurzivno ponavlja.

Asocijativna pravila i klasteriranje

Asocijativna pravila imaju opći oblik “ako atribut1=vrijednost1 i atribut2=vrijednost2 onda atribut3=vrijednost3”. Cilj analize dobiti je, pojednostavljeno rečeno, što manji broj pravila koji opisuju što veći broj slučajeva. Naravno, koji je pravi omjer odlučuje analitičar. Asocijativna pravila opisuju međusobne veze atributa i njihovih vrijednosti i za razliku od stabla odlučivanja, nije važno kojim redoslijedom primjenjujemo pravila.

Cilj klasteriranja je formiranje grupa slučajeva (klastera) sa zajedničkim osobinama. Postoje algoritmi koji formiraju unaprijed određeni broj grupa, kao i oni kod kojih taj broj nije specificiran. Ova se metoda rijetko koristi kao ciljna metoda, već prije služi kao metoda za “ispitivanje terena” i upoznavanje analitičara sa podacima.

Neuronske mreže – tajna crne kutije

Ova je metoda vrlo dojmljivog naziva inspirirana primjerima iz prirode. Iako ima na stotite raznih arhitektura neuronskih mreža, ovdje će samo biti riječi o najpopularnijoj arhitekturi: višeslojnom perceptronu. Ova mreža je organizirana u tri ili više slojeva neurona (ulazni, skriveni i izlazni), gdje podaci putuju u jednom smjeru. Svaki neuron je zapravo neovisna logička jedinica koja prima informacije u obliku podražaja na svojim receptorima koji imaju različit nivo značaja (ovisno o težinskom koeficijentu), te u skladu s tim podražaje jačaju ili slabe (biolozi poznaju inhibicijske i ekscitacijske veze među neuronima). Ukoliko je suma svih podražaja veća od praga osjetljivosti neurona onda neuron ispaljuje impuls na izlazu koji služi kao ulazni impuls neuronima u slijedećem sloju.

Problem modela baziranih na neuronskim mrežama je određivanje odgovarajućih vrijednosti za težinske koeficijente i pragove osjetljivosti. Postojeći algoritmi rješavaju taj problem traženjem lokalnog minimuma u nelinearnom prostoru pri čemu im nesebično pomažu dobri stari Gauss i Newton. Najpopularniji algoritmi su Error-Backpropagation i Quickprop. Drugi problem sa neuronskim mrežama je taj što znanje u njima nije deskriptivno, odnosno ne da se pretočiti u ljudima čitljiv oblik, pa ih treba promatrati kao crne kutije što je ujedno i razlog zašto nisu prihvatljive u mnogim slučajevima kada je opis dobivenog znanja od velike važnosti i kada analitičari zapravo žele dobiti odgovor na pitanje na koji način je mreža došla do rezultata. Ostale arhitekture neuronskih koje valja spomenuti su kohonenove mreže, hopfieldova mreža, radial basis function mreža i wizard arhitektura.

Genetski algoritmi

Genetski algoritmi su još jedna “prirodoslovna” metoda, a inspirirani su evolucijskim teorijama. Informacije su sadržane u genima jedinki unutar populacije. Pri tom postoji tzv. fitness funkcija koja zapravo izračunava točnost informacija u genima s obzirom na skup podataka za učenje. Samo najuspješnije jedinke jedne generacije preživljavaju. Njihovi geni se križaju, mutiraju, selektiraju itd, odnosno na njima se primjenjuju operacije nad genima te se tako formira slijedeća generacija u kojoj opet preživljavaju samo najsposobnije jedinke. Proces se ponavlja sve dok neke jedinke ne dostignu zadovoljavajući nivo fitness funkcije. Ova se metoda, kao i klasteriranje, rijetko koristi kao ciljna metoda, te je većina analitičara smatra metodom optimizacije i koristi u procesu konstuiranja modela drugih metoda. Dosta popularna kombinacija je učenje neuronskih mreža korištenjem genetskih algoritama, gdje su jedinke neuronske mreže, a njihovi geni su težinski koeficijenti i pragovi osjetljivosti neurona i pri čemu je fitness funkcija zapravo uspješnost klasificiranja pojedine neuronske mreže nad skupom podataka za učenje. Tako samo najsposobnije mreže preživljavaju.

Rezoniranje na bazi slučajeva (eng. case based reasoning)

Ova metoda (zove se još i memory based reasoning) spada u skupinu tzv. lazy learning metoda, koje ne idu za tim da stvore model u kojemu je izvedeno znanje iz skupa uzoraka za učenje, već sam skup koriste kao model. Ova metoda gleda na podatke kao točke u multidimenzionalnom prostoru gdje je svaka dimenzija jedan atribut. Novi slučaj koji želimo klasificirati smješta se u takav multidimenzionalni prostor, te se gledaju njegovi najbliži susjedi i na taj način donosi odluka o odgovoru.

Ima naravno još puno drugih metoda: bayesove mreže, analiza potrošačke košarice (eng. market basket analysis), analiza veza (eng. link analysis) i mnoge druge, ali ih je nemoguće sve i navesti u jednom članku, a kamoli opisati. No valja spomenuti da se u posljednje vrijeme pojavilo nešto literature o data mining problematici na hrvatskom jeziku. Primjer takve knjige je i nedavno izašla knjiga “Poslovna Inteligencija” u izdanju Masmedie autora dr. sc. Željka Paniana i mr. sc. Gorana Klepca, a u kojem su dosta detaljno opisane pojedine metode data mininga, kao i primjeri iz prakse.

Što se alata za data mining tiče, postoje mnogi kvalitetni komercijalni alati poput SAS-a ili SPSS-a, a i svi vodeći proizvođači baza podataka ugradili su neke data mining algoritme kao sastavni dio svojih baza. Ipak, stručnjaci kažu da se najbolji rezultati postižu putem vlastitih rješenja pisanih u programskim jezicima opće namjene podržanim odgovarajućim bibliotekama data mining metoda. Dobar primjer za to je hrvatski ogranak RBA koji za analizu koristi open source programski jezik Python proširen sa Orange modulom koji u sebi sadrži sve što je potrebno i za najzahtjevnije analize.

Data mining je još relativno mlada djelatnost i tek doživljava svoj puni zamah. Za očekivati je da će se pojaviti povećana potreba za data mining analitičarima u većim poduzećima i institucijama. Dakle, sad je pravo vrijeme za uzeti knjige i krampove u šake i polako početi. (S.P.)