Bruk av klyngeanalyse for å utforske store datasett
Så, du har fått ansvaret for klessalget på årets loppemarked, og du ser utover de 50 sekkene med klær som har blitt levert inn. Sikkert mange T-skjorter og olabukser, men det kan også være alt fra hullete sokker til ballkjoler i sekkene. Det er nesten umulig å få oversikt, men likevel skal du forsøke å stille ut alt på en ryddig måte, slik at det er lett å finne frem i den overfylte gymsalen.
Dette er et ganske godt bilde på utfordringen Arkivverket står overfor når vi skal hente ut og strukturere informasjon fra ukjente datasett.
Et helt konkret eksempel: Vi er i gang med å bruke maskinlæring for å hente ut informasjon fra gamle sesjonsskjemaer. Disse har kun vært tilgjengelig på papir, men vi ønsker å kunne hente ut opplysninger fra skjemaene slik at de kan brukes digitalt. Foreløpig har vi skannet 1,4 millioner skjemaer, men dette arbeidet pågår fortsatt.
For å hente ut opplysningene fra de skannede skjemaene, trenger vi å vite hvor på skjemaet de ulike opplysningene – navn, fødselsdato, helseopplysninger o.l. – står. Hvis alle skjemaene hadde vært like kunne, vi laget én kunstig intelligens-modell som hentet ut de ulike opplysningene ut ifra posisjon på skjemaet. Men det ble raskt klart at sesjonsskjemaene kunne ha ganske forskjellig oppsett. Hvor mange varianter av skjemaene finnes? Hvilke varianter er vanlige? Finnes det helt irrelevante dokumenter i samlingen, som ikke har noe å gjøre med sesjon? Er noen skjemaer skannet opp ned? Det ville være en uoverkommelig oppgave å få oversikt over dette ved å gå manuelt gjennom alle skjemaene, og det er her klyngeanalyse kommer inn i bildet.
Klyngeanalyse – på engelsk «clustering» – er en teknikk innen maskinlæring som brukes til å finne grupper av objekter som er like hverandre (i vårt tilfelle sesjonsskjemaer) i et datasett. Dette kan brukes til å identifisere mønstre og sammenhenger i dataene. Klyngeanalyse kan brukes i mange forskjellige sammenhenger, for eksempel innen markedsføring, medisin og finans.
For å forstå hvordan klyngeanalyse fungerer, kan vi gå tilbake til loppemarked-eksempelet: Vi ønsker å sortere klærne etter f.eks. farge og størrelse. Vi kan gjøre dette ved å se på egenskapene (features) til hvert klesplagg (farge og størrelse) og gruppere dem sammen basert på disse egenskapene. På samme måte kan klyngeanalyse brukes til å gruppere objekter i et datasett basert på deres egenskaper.
For å utføre klyngeanalyse trenger vi først et datasett med objekter og deres egenskaper. Deretter bruker vi en algoritme til å finne grupper av objekter som er like hverandre. Algoritmen kan variere avhengig av hvilken type klyngeanalyse som utføres.
En vanlig type klyngeanalyse er k-means-klynging. Denne algoritmen deler objektene inn i k antall grupper basert på vektorer for objektene, generert fra egenskapene deres. Algoritmen starter med å velge k antall tilfeldige sentroider (midtpunkter) i datasettet. Deretter beregner den avstanden mellom hvert objekt og hver sentroid, og plasserer hvert objekt i den gruppen som har den nærmeste sentroiden. Deretter beregner algoritmen gjennomsnittet av alle objektene i hver gruppe, og bruker dette som den nye sentroiden for gruppen. Prosessen gjentas til sentroidene ikke lenger endrer seg.
Etter å ha kjørt en slik klyngeanalyse, har vi et ganske godt bilde av datasettet, men det er ikke alltid algoritmen finner fornuftige egenskaper ved objektene. For eksempel kan samme skjematype bli plassert i to ulike klynger fordi de de har forskjellig farge. Men det er tross alt enklere å gå gjennom et lite sett med klynger for å sjekke om de er fornuftige, enn å gå gjennom en million objekter.
Når klyngeanalysen er gjort kan vi bruke klyngene som grunnlag for å definere klasser og deretter trene en klassifiseringsalgoritme som kan gruppere nye skjemaer i disse klassene. Når disse operasjonene er gjort, har vi et mye bedre bilde av hva slags jobb vi står overfor. Vi vet hvor mange skjemaer som finnes, hva slags skjemaer som det kan lønne seg å fokusere på og hvilke man kan vente med – eller til og med ignorere. Dette er et viktig grunnlag for neste trinn, arbeidet med å hente ut informasjon slik at den blir digitalt tilgjengelig.
Dersom du ønsker å ta kontakt utover bloggen, kan du også sende en e-post til [email protected].












