Fra data til kunnskap
Data Mining eller datagruvedrift er et nytt fagfelt innen informatikk hvor målet er å oppdage ny kunnskap i store datamengder. Metodene som er utviklet kombinerer teknikker fra kunstig intelligens, databasesystemer og statistikk.
Torgeir Dingsøyr
De siste årene har det blitt stadig lettere og vanligere å lagre og håndtere store mengder data. Lagringsmedier som hard-disker og tape-stasjoner har fått større og større kapasitet, og det har kommet nye medier som C
D-rom. Dette har gjort at prisen for å lagre data er lav. Å håndtere store datamengder har blitt enklere med ny databaseteknologi, og med språk for å søke i datamengder, som Structured Query Language (SQL). Å dig
italisere data går fort med utstyr som scannere og samplere, for å overføre bilder og lyd.
Dette har ført til at offentlig forvaltning, bedrifter og organisasjoner sitter på store datamengder. Databaser for seismiske da
ta fra oljesektoren kan inneholde flere milliarder bytes med data. I USA har supermarkedkjeden Wal-Mart en database hvor de registrerer 20 millioner transaksjoner per dag. NASAs Earth Observing System vil generere rundt 50 gigabyte med bildedata hver time
når systemet kommer i drift rundt tusenårsskiftet. Internet inneholder ekstremt store mengder data, som er representert på en felles måte (språket Hypertext Markup Language, HTML).
Umulig å analysere for mennesker
Hva skal vi så med disse dataene? Tidligere
ble dataene analysert for hånd -- eksperter i et felt kunne
trekke ut informasjon ved å se mønstre i data, eller lage
statistiske distribusjoner for å test hypoteser. Måten
data hentes ut av databasene på er ved å gjøre
spørringer, med enkle spørsmål, typisk i
språket SQL. Da er det mulig å få svar på
spørsmål som "hvor mye lønn betalte vi ut i juli"
gjennom et språk som likner på engelsk. Men mennesker kan
ikke tolke data når de har hundrevis eller tusenvis av
dimensjoner. Statistikk-verktøy håndterer ofte ikke
større datamengder enn du får plass til i minnet på
en datamaskin. Du kan ikke formulere en spørring i SQL hvis du
ikke vet hva du vil finne ut, eller hvordan du skal gå fram for
å gjøre det. Hvis en bank vil vite om en transaksjon er
gjort av kriminelle kan de ikke gjør det med et SQL-søk
i en database.
Store datamengder er samlet opp uten at de
egentlig blir brukt til å få innsikt i et
problemområde, eller for å ta avgjørelser. For
eksempel må du fylle ut et utall skjemaer, levere bilder og kopi
av passet for å få oppholdstillatelse i
Frankrike. Databasene som bygges i Frankrike er et eksempel på
databaser som bare opererer i skrivemodus -- der dataene aldri eller
sjeleden brukes til noe. Datakvaliteten kan også være lav,
fordi lite blir kontrollsjekket, siden fokus bare er på
data-innsamling.
Søk etter uventede sammenhenger
Data Mining er et forsøk på
å aktivt bruke data som er samlet inn, og som ved å
kombinere fagfeltene databasesystemer, kunstig intelligens og
statistikk, søker i store datamender for å finne uventede
mønstre, regler, klassifiseringer av data, eller se trender. En
Data Mining algoritme kan finne "uvanlige mønstre" av
transaksjoner i en bank, som kan være gjort av kriminelle. Et
annet banalt eksempel kan bære å oppdage at det er en
sammenheng mellom salg av øl, treningsdrakter og potetgull
på Obs! ved å analysere kassa-lapper. Det kan du
også oppdage ved å skrive et søk i SQL om "hvor
mange som kjøper treningsdrakter kjøper også
øl og potetgull", men da må du allerede ha en mistanke om
at det kan være en sammenheng.
Selve algoritmene som brukes
kalles Data Mining algoritmer, men hele prosessen som går
på å oppdage kunnskap fra databaser, det vil si også
å filtrere dataene, fjerne støy, kikke på dataene
manuelt for å se etter uregelmessigheter, og å tolke
kunnskapen som kommer fra Data Mining algoritmene, kalles Knowledge
Discovery in Databases.
Klassifiering, gruppering, summering
Hva er det så vi gjør som
får store datamengder til å bli summert opp som kunnskap?
Det finnes mange forskjellige typer algoritmer for Data
Mining. Metodene kan deles inn i fire grupper, som har forskjellig
funksjon og resultat. For å beskrive metodene definerer vi en
database som en matrise der kolonnene står for forskjellige
variable, og radene er data som er samlet inn i en enhet, for eksempel
data som er samlet inn for en person som i den fiktive databasen
under:
NAVN |
ALDER |
VEKT |
BLODTRYKK |
HØYDE |
KJØNN |
KREFT |
Heidi |
26 |
68 |
140 |
184 |
KVINNE |
NEI |
Ole |
28 |
80 |
130 |
176 |
MANN |
NEI |
Line |
40 |
73 |
135 |
166 |
KVINNE |
JA |
Jens |
35 |
63 |
140 |
170 |
MANN |
NEI |
Algoritmene vil operere på disse
dataene og prøve å trekke slutninger etter forskjellige
metoder, som: Klassifisering -- å lære en funksjon fra
data, som grupperer data inn i en eller flere grupper som er definert
på forhånd. Det kan være å generere en
funksjon som sier om en person har høy eller lav risiko for
å få kreft, for å kunne si om vedkommende bør
ta en tur til legen eller ikke. I eksempelet over kan funksjonen
være "sannsynligheten for å få kreft er alder pluss
vekt delt på 1000".
En annen metode er å gruppere
data som er rimelig like i grupper. Det kan være interessant
å se hvilke grupper av befolkningen som har høy risiko
for å få kreft. Blir menn gruppert i en gruppe og kvinner
i en annen? Har alder mye å si for hvilken gruppe folk havner
i?
Kanskje vi kan si noe om årsaken til at de får
kreft, eller hva som gjør at de har en høyere
sannsynlighet for kreft, dersom vi finner hvilke faktorer som
gjør at dataene blir gruppert sammen. En tredje metode er
å lage summeringer -- kompakte beskrivelser av data. Et enkelt
eksempel kan være å finne gjennomsnittlige vekt for
kvinner, og et mål på hvor mye vekten varierer. Det kan
også innebære å visualisere data og å oppdage
avhengigheter mellom variabler. En siste metode er å
prøve å finne forandringer i data fra tidligere
målte verdier, eller fra noen normerte eller forventede
verdier. I eksempelet kan det være å finne "unormale"
mennesker ved å se på forskjellene mellom høyden og
vekten til personene og "normale" verdier.
De forskjellige
metodene kan brukes i kombinasjon, men det er i øyeblikket
svært få kommersielle verktøy som håndterer
alle steg i prosessen med å oppdage ny kunnskap. De fleste
programmer er på forskningsstadiet, og krever mye mennesklig
vurdering for å behandle dataene før og etter Data
Mining-delen.
Skulle vi bruke språket SQL for å
analysere dataene over, ville det begrense seg til å
spørre om enkle ting, som "hvor mange kvinner over førti
får kreft", eller "hva er gjennomsnittlig vekt til de som
får kreft".
De
fleste koner er kvinner
Det
er viktig å kontrollere kunnskapen vi får av en Data
Mining algoritme. Resultatene kan komme på grunn av støy
i dataene, eller på grunn av at dataene rett og slett ikke
måler prosessen du ønsker å vite noe om. I
eksempelet over er det lite trolig at du kan finne om en person har
høy risiko for å få kreft bare utfra
målingene av alder, kjønn, vekt, høyde og
blodtrykk.
Resultatene kan også være helt trivielle,
det er for eksempel liten vits i å oppdage at "de fleste koner
er kvinner".
Bruk av metodene reiser også en del etiske
spørsmål om bruk av data. Ved hjelp av Data Mining er det
mulig for et firma å finne ut hvilke kundegrupper som med
størst sannsynlighet vil kjøpe et produkt. Hvis disse
dataene kobles med kjøpsmønsteret til enkeltkunder vil
for eksempel salg per telefon kunne bli svært effektivt. Men det
er neppe en utvikling som folk vil sette pris på. Å
avlytte et stort antall telefoner vil være mye lettere ved hjelp
av tenkikkene over -- spesielt når teknologien for å
overføre mennesklig tale til tekst blir moden om noen
år. Det vil da være mulig å finne folk som har
"uvanlige" telefonsamtaler, eller prater om spesiele emner, som for
eksempel myndighetene ikke liker. Datasystemet til Schengen --
Schengen Information System vil lagre en rekke opplysninger om
personer, som navn, kjønn, statsborgerskap, og om en person
ansees for å være voldelig eller ikke. Schengen-landene
vil trolig aktivt bruke metodene over for å oppdage og avverge
"trusler" som kan komme.
For å kontrollere flyten av data internasjonalt har OECD definert en del prinsipper for bruk av data og flyt av databaser, som gjelder kontroll av innsamling av persondata, datakvalitet, og at datainnsamling bør h
a en spesifikk hensikt.
Det er ganske sikkert at metodene som er beskrevet over kommer til å være i bruk hos de fleste bedrifter, organisasjoner, og offentlige etater som sitter på store datamengder innen noen års tid. Men fagf
eltet er ennå ganske umodent, og det kreves stor forskningsinnsats for å håndtere store nok datamengder, kunne gjøre analyser fort nok, og kunne få resultatene ut i en form som er forståelig for mennesker. Forhåp
entligvis vil utvikingen i fagfeltet føre til at databasene får data av høyere kvalitet, som gir grunnlag for bedre analyser. I et miljø der maskinene gjør tallknusing og forarbeid, og mennesker vurderer, kontrollerer og
bruker resultatene.
Torgeir Dingsøyr skriver for tiden diplomoppgave innen kunstig intelligens ved Universite Dauphine i Paris. Han har e-post adresse: dingsoyr@ceremade.dauphine.fr
Go back.
Updated 06.08.1998, dingsoyr@idi.ntnu.no